{-# OPTIONS_GHC -fno-warn-orphans #-}
module Pandora.Paradigm.Structure.Some.Binary where
import Pandora.Core.Functor (type (>), type (>>>), type (>>>>>), type (<))
import Pandora.Core.Interpreted (run, unite, (<~))
import Pandora.Pattern.Semigroupoid ((.))
import Pandora.Pattern.Category ((<--), (<---), (<----), (<-----), (-->))
import Pandora.Pattern.Kernel (constant)
import Pandora.Pattern.Functor.Covariant (Covariant ((<-|-), (<-|---)))
import Pandora.Pattern.Functor.Traversable (Traversable ((<-/-)))
import Pandora.Pattern.Functor.Bindable (Bindable ((=<<), (==<<), (=====<<)))
import Pandora.Pattern.Transformer.Liftable (lift)
import Pandora.Pattern.Transformer.Lowerable (lower)
import Pandora.Pattern.Object.Chain (Chain ((<=>)))
import Pandora.Paradigm.Algebraic.Product ((:*:) ((:*:)), type (<:*:>), (<:*:>), attached)
import Pandora.Paradigm.Algebraic.Exponential ((&), (.:..))
import Pandora.Paradigm.Algebraic.Functor ((<-*---), (-------*), extract, empty, void)
import Pandora.Paradigm.Primary.Auxiliary (Vertical (Up, Down), Horizontal (Left, Right))
import Pandora.Paradigm.Primary.Object.Ordering (order)
import Pandora.Paradigm.Primary.Functor.Exactly (Exactly (Exactly))
import Pandora.Paradigm.Primary.Functor.Maybe (Maybe (Just, Nothing))
import Pandora.Paradigm.Primary.Transformer.Construction (Construction (Construct))
import Pandora.Paradigm.Controlflow.Effect.Transformer ((:>), wrap)
import Pandora.Paradigm.Inventory.Ability.Gettable (get)
import Pandora.Paradigm.Inventory.Some.State (State, change, current)
import Pandora.Paradigm.Inventory.Some.Store (Store (Store))
import Pandora.Paradigm.Inventory.Some.Optics (Lens, Obscure, view, primary)
import Pandora.Paradigm.Inventory (zoom, overlook)
import Pandora.Paradigm.Structure.Modification.Nonempty (Nonempty)
import Pandora.Paradigm.Structure.Ability.Morphable (Morphable (Morphing, morphing), premorph, Morph (Into, Lookup, Key), lookup)
import Pandora.Paradigm.Structure.Ability.Substructure (Substructure (Substance, substructure), Segment (Tree, Root, Branch, Ancestors, Children), Location (Focused), sub)
import Pandora.Paradigm.Structure.Ability.Slidable (Slidable (Sliding, slide))
import Pandora.Paradigm.Structure.Interface.Stack (push, pop)
import Pandora.Paradigm.Structure.Interface.Zipper (Zipper, Zippable (Breadcrumbs, fasten, unfasten))
import Pandora.Paradigm.Structure.Modification.Prefixed (Prefixed)
import Pandora.Paradigm.Structure.Some.List (List)
import Pandora.Paradigm.Schemes (TT (TT), T_U (T_U), P_Q_T (P_Q_T), type (<::>))
type Binary = Maybe <::> Construction (Maybe <:*:> Maybe)
instance Morphable (Into Binary) (Construction (Maybe <:*:> Maybe)) where
type Morphing (Into Binary) (Construction (Maybe <:*:> Maybe)) = Binary
morphing :: (<::>) (Tagged ('Into Binary)) (Construction (Maybe <:*:> Maybe)) a
-> Morphing ('Into Binary) (Construction (Maybe <:*:> Maybe)) a
morphing = Construction (Maybe <:*:> Maybe) a
-> TT
Covariant Covariant Maybe (Construction (Maybe <:*:> Maybe)) a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Construction (Maybe <:*:> Maybe) a
-> TT
Covariant Covariant Maybe (Construction (Maybe <:*:> Maybe)) a)
-> ((<::>)
(Tagged ('Into Binary)) (Construction (Maybe <:*:> Maybe)) a
-> Construction (Maybe <:*:> Maybe) a)
-> (<::>)
(Tagged ('Into Binary)) (Construction (Maybe <:*:> Maybe)) a
-> TT
Covariant Covariant Maybe (Construction (Maybe <:*:> Maybe)) a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (<::>) (Tagged ('Into Binary)) (Construction (Maybe <:*:> Maybe)) a
-> Construction (Maybe <:*:> Maybe) a
forall k (mod :: k) (struct :: * -> *).
Morphable mod struct =>
(Tagged mod <::> struct) ~> struct
premorph
instance Chain k => Morphable (Lookup Key) (Prefixed Binary k) where
type Morphing (Lookup Key) (Prefixed Binary k) = (->) k <::> Maybe
morphing :: (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> Morphing ('Lookup 'Key) (Prefixed Binary k) a
morphing (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
struct = case TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a))
-> ((<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a))
-> (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Prefixed Binary k a
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (Prefixed Binary k a
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a))
-> ((<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> Prefixed Binary k a)
-> (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> Prefixed Binary k a
forall k (mod :: k) (struct :: * -> *).
Morphable mod struct =>
(Tagged mod <::> struct) ~> struct
premorph ((<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a))
-> (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<::>) (Tagged ('Lookup 'Key)) (Prefixed Binary k) a
struct of
(Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a)
Nothing -> (((->) k :. Maybe) >>> a)
-> TT Covariant Covariant ((->) k) Maybe a
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT ((((->) k :. Maybe) >>> a)
-> TT Covariant Covariant ((->) k) Maybe a)
-> (((->) k :. Maybe) >>> a)
-> TT Covariant Covariant ((->) k) Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \k
_ -> Maybe a
forall a. Maybe a
Nothing
Just Construction (Maybe <:*:> Maybe) (k :*: a)
tree -> (((->) k :. Maybe) >>> a)
-> TT Covariant Covariant ((->) k) Maybe a
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT ((((->) k :. Maybe) >>> a)
-> TT Covariant Covariant ((->) k) Maybe a)
-> (((->) k :. Maybe) >>> a)
-> TT Covariant Covariant ((->) k) Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \k
key ->
k
key k -> k -> Ordering
forall a. Chain a => a -> a -> Ordering
<=> (k :*: a) -> k
forall a b. (a :*: b) -> a
attached (Construction (Maybe <:*:> Maybe) (k :*: a) -> k :*: a
forall (t :: * -> *) a. Extractable t => t a -> a
extract Construction (Maybe <:*:> Maybe) (k :*: a)
tree) Ordering -> (Ordering -> Maybe a) -> Maybe a
forall a b. a -> (a -> b) -> b
& Maybe a -> Maybe a -> Maybe a -> Ordering -> Maybe a
forall a. a -> a -> a -> Ordering -> a
order
(Maybe a -> Maybe a -> Maybe a -> Ordering -> Maybe a)
-> Maybe a -> Maybe a -> Maybe a -> Ordering -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- a -> Maybe a
forall a. a -> Maybe a
Just (a -> Maybe a) -> a -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
--> (k :*: a) -> a
forall (t :: * -> *) a. Extractable t => t a -> a
extract ((k :*: a) -> a) -> (k :*: a) -> a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
--> Construction (Maybe <:*:> Maybe) (k :*: a) -> k :*: a
forall (t :: * -> *) a. Extractable t => t a -> a
extract Construction (Maybe <:*:> Maybe) (k :*: a)
tree
(Maybe a -> Maybe a -> Ordering -> Maybe a)
-> Maybe a -> Maybe a -> Ordering -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- k
-> TT
Covariant Covariant (Construction (Maybe <:*:> Maybe)) ((:*:) k) a
-> Maybe a
forall a1 (mod :: a1) key (struct :: * -> *) a2.
Morphed ('Lookup mod) struct ((->) key <::> Maybe) =>
key -> struct a2 -> Maybe a2
lookup @Key k
key (TT
Covariant Covariant (Construction (Maybe <:*:> Maybe)) ((:*:) k) a
-> Maybe a)
-> (Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant Covariant (Construction (Maybe <:*:> Maybe)) ((:*:) k) a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> Maybe a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
forall (t :: * -> *) (t' :: * -> *) a.
((t :. t') >>> a) -> TT Covariant Covariant t t' a
TT @Covariant @Covariant (Construction (Maybe <:*:> Maybe) (k :*: a) -> Maybe a)
-> ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a))
-> Maybe a
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=<< TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (Lens Binary (Construction (Maybe <:*:> Maybe) (k :*: a)) (k :*: a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (i :: * -> *) source target.
Lens i source target -> source -> i target
view (Lens Binary (Construction (Maybe <:*:> Maybe) (k :*: a)) (k :*: a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a))
-> Lens
Binary (Construction (Maybe <:*:> Maybe) (k :*: a)) (k :*: a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Left 'Branch) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Left 'Branch) structure
sub @(Left Branch) (Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a))
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Construction (Maybe <:*:> Maybe) (k :*: a)
tree)
(Maybe a -> Ordering -> Maybe a) -> Maybe a -> Ordering -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- k
-> TT
Covariant Covariant (Construction (Maybe <:*:> Maybe)) ((:*:) k) a
-> Maybe a
forall a1 (mod :: a1) key (struct :: * -> *) a2.
Morphed ('Lookup mod) struct ((->) key <::> Maybe) =>
key -> struct a2 -> Maybe a2
lookup @Key k
key (TT
Covariant Covariant (Construction (Maybe <:*:> Maybe)) ((:*:) k) a
-> Maybe a)
-> (Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant Covariant (Construction (Maybe <:*:> Maybe)) ((:*:) k) a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> Maybe a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
forall (t :: * -> *) (t' :: * -> *) a.
((t :. t') >>> a) -> TT Covariant Covariant t t' a
TT @Covariant @Covariant (Construction (Maybe <:*:> Maybe) (k :*: a) -> Maybe a)
-> ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a))
-> Maybe a
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=<< TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> (k :*: a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (Lens Binary (Construction (Maybe <:*:> Maybe) (k :*: a)) (k :*: a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (i :: * -> *) source target.
Lens i source target -> source -> i target
view (Lens Binary (Construction (Maybe <:*:> Maybe) (k :*: a)) (k :*: a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a))
-> Lens
Binary (Construction (Maybe <:*:> Maybe) (k :*: a)) (k :*: a)
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Right 'Branch) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Right 'Branch) structure
sub @(Right Branch) (Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a))
-> Construction (Maybe <:*:> Maybe) (k :*: a)
-> TT
Covariant
Covariant
Maybe
(Construction (Maybe <:*:> Maybe))
(k :*: a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Construction (Maybe <:*:> Maybe) (k :*: a)
tree)
instance Chain key => Morphable (Lookup Key) (Prefixed < Construction (Maybe <:*:> Maybe) < key) where
type Morphing (Lookup Key) (Prefixed < Construction (Maybe <:*:> Maybe) < key) = (->) key <::> Maybe
morphing :: (<::>)
(Tagged ('Lookup 'Key))
((Prefixed < Construction (Maybe <:*:> Maybe)) < key)
a
-> Morphing
('Lookup 'Key)
((Prefixed < Construction (Maybe <:*:> Maybe)) < key)
a
morphing ((<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
-> Construction (Maybe <:*:> Maybe) (key :*: a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run ((<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
-> Construction (Maybe <:*:> Maybe) (key :*: a))
-> ((<::>)
(Tagged ('Lookup 'Key))
((Prefixed < Construction (Maybe <:*:> Maybe)) < key)
a
-> (<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a)
-> (<::>)
(Tagged ('Lookup 'Key))
((Prefixed < Construction (Maybe <:*:> Maybe)) < key)
a
-> Construction (Maybe <:*:> Maybe) (key :*: a)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (<::>)
(Tagged ('Lookup 'Key))
((Prefixed < Construction (Maybe <:*:> Maybe)) < key)
a
-> (<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
forall k (mod :: k) (struct :: * -> *).
Morphable mod struct =>
(Tagged mod <::> struct) ~> struct
premorph -> Construct key :*: a
x ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a)
xs) = (((->) key :. Maybe) >>> a)
-> TT Covariant Covariant ((->) key) Maybe a
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT ((((->) key :. Maybe) >>> a)
-> TT Covariant Covariant ((->) key) Maybe a)
-> (((->) key :. Maybe) >>> a)
-> TT Covariant Covariant ((->) key) Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \key
key ->
key
key key -> key -> Ordering
forall a. Chain a => a -> a -> Ordering
<=> (key :*: a) -> key
forall a b. (a :*: b) -> a
attached key :*: a
x Ordering -> (Ordering -> Maybe a) -> Maybe a
forall a b. a -> (a -> b) -> b
& Maybe a -> Maybe a -> Maybe a -> Ordering -> Maybe a
forall a. a -> a -> a -> Ordering -> a
order
(Maybe a -> Maybe a -> Maybe a -> Ordering -> Maybe a)
-> Maybe a -> Maybe a -> Maybe a -> Ordering -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- a -> Maybe a
forall a. a -> Maybe a
Just (a -> Maybe a) -> a -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (key :*: a) -> a
forall (t :: * -> *) a. Extractable t => t a -> a
extract key :*: a
x
(Maybe a -> Maybe a -> Ordering -> Maybe a)
-> Maybe a -> Maybe a -> Ordering -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- key
-> (<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
-> Maybe a
forall a1 (mod :: a1) key (struct :: * -> *) a2.
Morphed ('Lookup mod) struct ((->) key <::> Maybe) =>
key -> struct a2 -> Maybe a2
lookup @Key key
key ((<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
-> Maybe a)
-> (Construction (Maybe <:*:> Maybe) (key :*: a)
-> (<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a)
-> Construction (Maybe <:*:> Maybe) (key :*: a)
-> Maybe a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
forall (t :: * -> *) (t' :: * -> *) a.
((t :. t') >>> a) -> TT Covariant Covariant t t' a
TT @Covariant @Covariant (Construction (Maybe <:*:> Maybe) (key :*: a) -> Maybe a)
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a)) -> Maybe a
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
==<< forall e r. Gettable (Obscure Lens) => Getting (Obscure Lens) e r
forall k (i :: k) e r. Gettable i => Getting i e r
get @(Obscure Lens) (Lens
Maybe
(((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
(Construction (Maybe <:*:> Maybe) (key :*: a))
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a)))
-> Lens
Maybe
(((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
(Construction (Maybe <:*:> Maybe) (key :*: a))
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Left structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Left structure
sub @Left ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a)))
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a)
xs
(Maybe a -> Ordering -> Maybe a) -> Maybe a -> Ordering -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- key
-> (<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
-> Maybe a
forall a1 (mod :: a1) key (struct :: * -> *) a2.
Morphed ('Lookup mod) struct ((->) key <::> Maybe) =>
key -> struct a2 -> Maybe a2
lookup @Key key
key ((<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a
-> Maybe a)
-> (Construction (Maybe <:*:> Maybe) (key :*: a)
-> (<) (Prefixed < Construction (Maybe <:*:> Maybe)) key a)
-> Construction (Maybe <:*:> Maybe) (key :*: a)
-> Maybe a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
forall (t :: * -> *) (t' :: * -> *) a.
((t :. t') >>> a) -> TT Covariant Covariant t t' a
TT @Covariant @Covariant (Construction (Maybe <:*:> Maybe) (key :*: a) -> Maybe a)
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a)) -> Maybe a
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
==<< forall e r. Gettable (Obscure Lens) => Getting (Obscure Lens) e r
forall k (i :: k) e r. Gettable i => Getting i e r
get @(Obscure Lens) (Lens
Maybe
(((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
(Construction (Maybe <:*:> Maybe) (key :*: a))
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a)))
-> Lens
Maybe
(((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
(Construction (Maybe <:*:> Maybe) (key :*: a))
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Left structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Left structure
sub @Left ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a)))
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a))
-> Maybe (Construction (Maybe <:*:> Maybe) (key :*: a))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> (key :*: a)
xs
instance Zippable Binary where
type Breadcrumbs Binary = (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe)
<:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)
fasten :: Binary e -> Maybe > Zipper Binary e
fasten (TT (Just (Construct e
x ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
xs))) = ((Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e)
-> Maybe
((Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e)
forall a. a -> Maybe a
Just (((Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e)
-> Maybe
((Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e))
-> ((Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e)
-> Maybe
((Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- e -> Exactly e
forall a. a -> Exactly a
Exactly e
x Exactly e
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
e
-> (Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
>>>>>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e)
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
e
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
xs TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
e
-> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) e
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> ((List :. (Horizontal <::> (Exactly <:*:> Binary))) >>> e)
-> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) e
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT (List :. (Horizontal <::> (Exactly <:*:> Binary))) >>> e
forall (t :: * -> *) a. Emptiable t => t a
empty
fasten (TT Maybe (Construction (Maybe <:*:> Maybe) e)
Nothing) = Maybe
(T_U Covariant Covariant (:*:) Exactly (Breadcrumbs Binary) e)
forall a. Maybe a
Nothing
unfasten :: forall e . Zipper Binary e -> Nonempty Binary e
unfasten :: Zipper Binary e -> Nonempty Binary e
unfasten (T_U (Exactly e
focus :*: T_U (TT children :*: TT ancestors))) =
(Construction (Maybe <:*:> Maybe) e
:*: TT Covariant Covariant Maybe (Construction Maybe) ())
-> Construction (Maybe <:*:> Maybe) e
forall a b. (a :*: b) -> a
attached ((Construction (Maybe <:*:> Maybe) e
:*: TT Covariant Covariant Maybe (Construction Maybe) ())
-> Construction (Maybe <:*:> Maybe) e)
-> (Construction (Maybe <:*:> Maybe) e
:*: TT Covariant Covariant Maybe (Construction Maybe) ())
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (TT
Covariant
Covariant
Horizontal
(T_U Covariant Covariant (:*:) Exactly Binary)
e
-> State (Construction (Maybe <:*:> Maybe) e) ()
(<::>) Horizontal (Exactly <:*:> Binary) e
-> State (Nonempty Binary e) ()
cover ((<::>) Horizontal (Exactly <:*:> Binary) e
-> State (Construction (Maybe <:*:> Maybe) e) ())
-> TT
Covariant
Covariant
Maybe
(Construction Maybe)
((<::>) Horizontal (Exactly <:*:> Binary) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(TT Covariant Covariant Maybe (Construction Maybe) ())
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) (u :: * -> *) a b.
(Traversable source target t, Covariant source target u,
Monoidal (Straight source) (Straight target) (:*:) (:*:) u) =>
source a (u b) -> target (t a) (u (t b))
<-/- TT
Covariant
Covariant
Maybe
(Construction Maybe)
((<::>) Horizontal (Exactly <:*:> Binary) e)
ancestors) State
(Construction (Maybe <:*:> Maybe) e)
(TT Covariant Covariant Maybe (Construction Maybe) ())
-> ((->) (Construction (Maybe <:*:> Maybe) e)
:. (:*:) (Construction (Maybe <:*:> Maybe) e))
>>> TT Covariant Covariant Maybe (Construction Maybe) ()
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
<~ e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct e
focus ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
children where
cover :: (Horizontal <::> (Exactly <:*:> Binary)) e -> State (Nonempty Binary e) ()
cover :: (<::>) Horizontal (Exactly <:*:> Binary) e
-> State (Nonempty Binary e) ()
cover (TT (Left (T_U (Exactly e
x :*: TT (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
right)))) = State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Construction (Maybe <:*:> Maybe) e) ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void (State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Construction (Maybe <:*:> Maybe) e) ())
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Construction (Maybe <:*:> Maybe) e) ()
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (Nonempty Binary e -> Nonempty Binary e)
-> State (Construction (Maybe <:*:> Maybe) e) (Nonempty Binary e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change @(Nonempty Binary e) (\Nonempty Binary e
nbt -> e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct e
x ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e)
-> Construction (Maybe <:*:> Maybe) e)
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Construction (Maybe <:*:> Maybe) e
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
forall a. a -> Maybe a
Just Construction (Maybe <:*:> Maybe) e
Nonempty Binary e
nbt ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
right)
cover (TT (Right (T_U (Exactly e
x :*: TT (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
left)))) = State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Construction (Maybe <:*:> Maybe) e) ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void (State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Construction (Maybe <:*:> Maybe) e) ())
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Construction (Maybe <:*:> Maybe) e) ()
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (Nonempty Binary e -> Nonempty Binary e)
-> State (Construction (Maybe <:*:> Maybe) e) (Nonempty Binary e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change @(Nonempty Binary e) (\Nonempty Binary e
nbt -> e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct e
x ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e)
-> Construction (Maybe <:*:> Maybe) e)
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
left ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> Construction (Maybe <:*:> Maybe) e
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
forall a. a -> Maybe a
Just Construction (Maybe <:*:> Maybe) e
Nonempty Binary e
nbt)
instance Substructure Children (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Substance Children (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe)
substructure :: Lens
(Substance
'Children
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary)))))
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
substructure = ((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (p :: * -> * -> *) (q :: * -> * -> *) (t :: * -> *) a b.
p a (q (t b) a) -> P_Q_T p q t a b
P_Q_T (((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a)
-> ((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source -> case forall (t :: * -> *) a.
Interpreted (->) t =>
((->) < t a) < Primary t a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run @(->) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> (<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
-> (Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> Exactly a
:*: ((<::>)
(Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source of
Exactly a
focus :*: (<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
children :*: TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors -> (((:*:)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
:. (->)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
:. (->)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> (((:*:)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
:. (->)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
children (<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> ((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((:*:)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a)
:. (->)
((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall s a. s -> a -> s :*: a
:*: T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> (<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> (<:.>)
(Tagged 'Children)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Exactly a
focus Exactly a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> (<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. ((<::>) (Maybe <:*:> Maybe) (Construction (Maybe <:*:> Maybe)) a
-> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors)
instance Substructure (Left Tree) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Substance (Left Tree) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = Maybe <::> Construction (Maybe <:*:> Maybe)
substructure :: Lens
(Substance
('Left 'Tree)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary)))))
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
substructure = ((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
Binary
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (p :: * -> * -> *) (q :: * -> * -> *) (t :: * -> *) a b.
p a (q (t b) a) -> P_Q_T p q t a b
P_Q_T (((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
Binary
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a)
-> ((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
Binary
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source -> case forall (t :: * -> *) a.
Interpreted (->) t =>
((->) < t a) < Primary t a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run @(->) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
-> (Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> Exactly a
:*: (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source of
Exactly a
focus :*: TT (T_U (Maybe (Construction (Maybe <:*:> Maybe) a)
left :*: Maybe (Construction (Maybe <:*:> Maybe) a)
right)) :*: TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors ->
(((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> (((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Maybe (Construction (Maybe <:*:> Maybe) a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < Primary t a) < t a
unite Maybe (Construction (Maybe <:*:> Maybe) a)
left (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall s a. s -> a -> s :*: a
:*: T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> (<:.>)
(Tagged ('Left 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Exactly a
focus Exactly a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors) (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT (T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a))
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Maybe (Construction (Maybe <:*:> Maybe) a)
-> Maybe (Construction (Maybe <:*:> Maybe) a)
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> Maybe (Construction (Maybe <:*:> Maybe) a)
right) (Maybe (Construction (Maybe <:*:> Maybe) a)
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a))
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> Maybe (Construction (Maybe <:*:> Maybe) a))
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> Maybe (Construction (Maybe <:*:> Maybe) a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run
instance Substructure (Right Tree) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Substance (Right Tree) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = Maybe <::> Construction (Maybe <:*:> Maybe)
substructure :: Lens
(Substance
('Right 'Tree)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary)))))
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
substructure = ((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
Binary
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (p :: * -> * -> *) (q :: * -> * -> *) (t :: * -> *) a b.
p a (q (t b) a) -> P_Q_T p q t a b
P_Q_T (((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
Binary
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a)
-> ((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
Binary
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source -> case forall (t :: * -> *) a.
Interpreted (->) t =>
((->) < t a) < Primary t a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run @(->) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
-> (Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> Exactly a
:*: (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source of
Exactly a
focus :*: TT (T_U (Maybe (Construction (Maybe <:*:> Maybe) a)
left :*: Maybe (Construction (Maybe <:*:> Maybe) a)
right)) :*: TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors ->
(((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> (((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
((<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Maybe (Construction (Maybe <:*:> Maybe) a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < Primary t a) < t a
unite Maybe (Construction (Maybe <:*:> Maybe) a)
right (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((:*:) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a)
:. (->) ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a))
>>> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall s a. s -> a -> s :*: a
:*: T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> (<:.>)
(Tagged ('Right 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Exactly a
focus Exactly a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors) (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT (T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a))
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Maybe (Construction (Maybe <:*:> Maybe) a)
left Maybe (Construction (Maybe <:*:> Maybe) a)
-> Maybe (Construction (Maybe <:*:> Maybe) a)
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (Maybe (Construction (Maybe <:*:> Maybe) a)
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a))
-> ((<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> Maybe (Construction (Maybe <:*:> Maybe) a))
-> (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> T_U
Covariant
Covariant
(:*:)
Maybe
Maybe
(Construction (Maybe <:*:> Maybe) a)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (<::>) Maybe (Construction (Maybe <:*:> Maybe)) a
-> Maybe (Construction (Maybe <:*:> Maybe) a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run
instance Substructure Ancestors (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Substance Ancestors (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = List <::> Horizontal <::> (Exactly <:*:> Binary)
substructure :: Lens
(Substance
'Ancestors
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary)))))
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
substructure = ((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (p :: * -> * -> *) (q :: * -> * -> *) (t :: * -> *) a b.
p a (q (t b) a) -> P_Q_T p q t a b
P_Q_T (((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a)
-> ((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source -> case forall (t :: * -> *) a.
Interpreted (->) t =>
((->) < t a) < Primary t a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run @(->) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
-> (Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> Exactly a
:*: (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source of
Exactly a
focus :*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
children :*: (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors -> (((:*:) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
:. (->) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a))
>>> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
:. (->) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a))
>>> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> (((:*:) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
:. (->) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a))
>>> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
((<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((:*:) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a)
:. (->) ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a))
>>> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall s a. s -> a -> s :*: a
:*: T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> (<:.>)
(Tagged 'Ancestors)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Exactly a
focus Exactly a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
children TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> (<::>) List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>)
instance Substructure (Focused Tree) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Substance (Focused Tree) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = Construction (Maybe <:*:> Maybe)
substructure :: Lens
(Substance
('Focused 'Tree)
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary)))))
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
substructure = ((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
(Construction (Maybe <:*:> Maybe) a)
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(Construction (Maybe <:*:> Maybe))
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (p :: * -> * -> *) (q :: * -> * -> *) (t :: * -> *) a b.
p a (q (t b) a) -> P_Q_T p q t a b
P_Q_T (((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
(Construction (Maybe <:*:> Maybe) a)
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(Construction (Maybe <:*:> Maybe))
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a)
-> ((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Store
(Construction (Maybe <:*:> Maybe) a)
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> P_Q_T
(->)
Store
(Construction (Maybe <:*:> Maybe))
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source -> case forall (t :: * -> *) a.
Interpreted (->) t =>
((->) < t a) < Primary t a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run @(->) (T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
-> TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
-> (Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> Exactly a
:*: (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
:*: TT
Covariant
Covariant
List
(Horizontal <::> (Exactly <:*:> Binary))
a)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
source of
Exactly a
focus :*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
children :*: TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors -> (((:*:) (Construction (Maybe <:*:> Maybe) a)
:. (->) (Construction (Maybe <:*:> Maybe) a))
>>> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
(Construction (Maybe <:*:> Maybe) a)
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store
((((:*:) (Construction (Maybe <:*:> Maybe) a)
:. (->) (Construction (Maybe <:*:> Maybe) a))
>>> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
(Construction (Maybe <:*:> Maybe) a)
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a))
-> (((:*:) (Construction (Maybe <:*:> Maybe) a)
:. (->) (Construction (Maybe <:*:> Maybe) a))
>>> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Store
(Construction (Maybe <:*:> Maybe) a)
((<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (a
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> a)
-> Construction (Maybe <:*:> Maybe) a
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct (a
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> a)
-> Construction (Maybe <:*:> Maybe) a)
-> a
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> a)
-> Construction (Maybe <:*:> Maybe) a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Exactly a -> a
forall (t :: * -> *) a. Extractable t => t a -> a
extract Exactly a
focus ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> a)
-> Construction (Maybe <:*:> Maybe) a)
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> a)
-> Construction (Maybe <:*:> Maybe) a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
children)
Construction (Maybe <:*:> Maybe) a
-> (Construction (Maybe <:*:> Maybe) a
-> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> ((:*:) (Construction (Maybe <:*:> Maybe) a)
:. (->) (Construction (Maybe <:*:> Maybe) a))
>>> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall s a. s -> a -> s :*: a
:*: T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
-> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> (Construction (Maybe <:*:> Maybe) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> Construction (Maybe <:*:> Maybe) a
-> (<:.>)
(Tagged ('Focused 'Tree))
(Exactly
<:*:> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall k k k k k (ct :: k) (cu :: k) (p :: k -> k -> *)
(t :: k -> k) (u :: k -> k) (a :: k).
p (t a) (u a) -> T_U ct cu p t u a
T_U ((Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a)
-> (Construction (Maybe <:*:> Maybe) a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> Construction (Maybe <:*:> Maybe) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. ((TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)) a
ancestors) (TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
-> T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> (Exactly a
:*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|-) ((Exactly a
:*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a)
-> (Construction (Maybe <:*:> Maybe) a
-> Exactly a
:*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> Construction (Maybe <:*:> Maybe) a
-> Exactly a
:*: T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. T_U
Covariant
Covariant
(:*:)
Exactly
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
a
-> Exactly a
:*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
Covariant
Covariant
(:*:)
Exactly
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
a
-> Exactly a
:*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a)
-> (Construction (Maybe <:*:> Maybe) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
a)
-> Construction (Maybe <:*:> Maybe) a
-> Exactly a
:*: TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe))
a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (Maybe <:*:> Maybe) a
-> T_U
Covariant
Covariant
(:*:)
Exactly
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run
instance Slidable (Down Left) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Sliding (Down Left) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = Maybe
slide :: forall e . State > Zipper Binary e :> Maybe >>> ()
slide :: ((State > Zipper Binary e) :> Maybe) >>> ()
slide = ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Ancestors structure,
Covariant (->) (->) structure) =>
structure @>>> Substance 'Ancestors structure
sub @Ancestors) (State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. State
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook (State
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall e. Stack List => e -> (State < List e) < e
forall (structure :: * -> *) e.
Stack structure =>
e -> (State < structure e) < e
push @List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< ((Horizontal :. (Exactly <:*:> Binary)) >>> e)
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT (((Horizontal :. (Exactly <:*:> Binary)) >>> e)
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (T_U Covariant Covariant (:*:) Exactly Binary e
-> (Horizontal :. (Exactly <:*:> Binary)) >>> e)
-> T_U Covariant Covariant (:*:) Exactly Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. T_U Covariant Covariant (:*:) Exactly Binary e
-> (Horizontal :. (Exactly <:*:> Binary)) >>> e
forall a. a -> Horizontal a
Right (T_U Covariant Covariant (:*:) Exactly Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (Exactly e
-> Binary e -> T_U Covariant Covariant (:*:) Exactly Binary e)
-> Exactly e
-> Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
forall (target :: * -> * -> *) (v :: * -> * -> *) a c d b.
(Covariant (->) target (v a), Semigroupoid v) =>
v c d -> target (v a (v b c)) (v a (v b d))
.:.. Exactly e
-> Binary e -> T_U Covariant Covariant (:*:) Exactly Binary e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
(<:*:>)
(Exactly e
-> Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|--- ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e))
-> ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Exactly
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Exactly
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
-> Lens
Exactly
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Root structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Root structure
sub @Root (State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State (Exactly e) (Exactly e)
forall s (t :: * -> *). Stateful s t => t s
current
(:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t (a -> b) -> t a -> t b
<-*--- ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e))
-> ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Right 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Right 'Tree) structure
sub @(Right Tree) (State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State (Binary e) (Binary e)
forall s (t :: * -> *). Stateful s t => t s
current
(:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t a -> t b -> t b
-------* (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
())
-> (Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (Construction (Maybe <:*:> Maybe) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
-> Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens (Construction (Maybe <:*:> Maybe)) (Zipper Binary e) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Zipper Binary e) (Construction (Maybe <:*:> Maybe) e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom @(Zipper Binary e) (forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Focused 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Tree) structure
sub @(Focused Tree)) (State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
-> (Construction (Maybe <:*:> Maybe) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e))
-> Construction (Maybe <:*:> Maybe) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change ((Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e))
-> (Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> Construction (Maybe <:*:> Maybe) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a i. Kernel m => m a (m i a)
constant
(Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
())
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< Maybe (Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe (Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (Binary e -> Maybe (Construction (Maybe <:*:> Maybe) e))
-> Binary e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Binary e -> Maybe (Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (Binary e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e))
-> ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Left 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Left 'Tree) structure
sub @(Left Tree) (State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall s (t :: * -> *). Stateful s t => t s
forall (t :: * -> *). Stateful (Binary e) t => t (Binary e)
current @(Binary e)
instance Slidable (Down Right) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Sliding (Down Right) (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = Maybe
slide :: forall e . State > Zipper Binary e :> Maybe >>> ()
slide :: ((State > Zipper Binary e) :> Maybe) >>> ()
slide = ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Ancestors structure,
Covariant (->) (->) structure) =>
structure @>>> Substance 'Ancestors structure
sub @Ancestors) (State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. State
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook (State
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(List (TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> State
(Exactly
(List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall e. Stack List => e -> (State < List e) < e
forall (structure :: * -> *) e.
Stack structure =>
e -> (State < structure e) < e
push @List
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)))
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< ((Horizontal :. (Exactly <:*:> Binary)) >>> e)
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
forall k k k k (ct :: k) (ct' :: k) (t :: k -> *) (t' :: k -> k)
(a :: k).
((t :. t') >>> a) -> TT ct ct' t t' a
TT (((Horizontal :. (Exactly <:*:> Binary)) >>> e)
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (T_U Covariant Covariant (:*:) Exactly Binary e
-> (Horizontal :. (Exactly <:*:> Binary)) >>> e)
-> T_U Covariant Covariant (:*:) Exactly Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. T_U Covariant Covariant (:*:) Exactly Binary e
-> (Horizontal :. (Exactly <:*:> Binary)) >>> e
forall a. a -> Horizontal a
Left (T_U Covariant Covariant (:*:) Exactly Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (Exactly e
-> Binary e -> T_U Covariant Covariant (:*:) Exactly Binary e)
-> Exactly e
-> Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e
forall (target :: * -> * -> *) (v :: * -> * -> *) a c d b.
(Covariant (->) target (v a), Semigroupoid v) =>
v c d -> target (v a (v b c)) (v a (v b d))
.:.. Exactly e
-> Binary e -> T_U Covariant Covariant (:*:) Exactly Binary e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
(<:*:>)
(Exactly e
-> Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
forall (source :: * -> * -> *) (target :: * -> * -> *)
(t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|--- ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e))
-> ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Exactly
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Exactly
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
-> Lens
Exactly
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Root structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Root structure
sub @Root (State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e))
-> State (Exactly e) (Exactly e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State (Exactly e) (Exactly e)
forall s (t :: * -> *). Stateful s t => t s
current
(:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e
-> TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e)
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t (a -> b) -> t a -> t b
<-*--- ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e))
-> ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Left 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Left 'Tree) structure
sub @(Left Tree) (State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State (Binary e) (Binary e)
forall s (t :: * -> *). Stateful s t => t s
current
(:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(TT Covariant Covariant Horizontal (Exactly <:*:> Binary) e))
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t a -> t b -> t b
-------* (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
())
-> (Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (Construction (Maybe <:*:> Maybe) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
-> Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens (Construction (Maybe <:*:> Maybe)) (Zipper Binary e) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Zipper Binary e) (Construction (Maybe <:*:> Maybe) e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom @(Zipper Binary e) (forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Focused 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Tree) structure
sub @(Focused Tree)) (State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
-> (Construction (Maybe <:*:> Maybe) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e))
-> Construction (Maybe <:*:> Maybe) e
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change ((Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e))
-> (Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> Construction (Maybe <:*:> Maybe) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a i. Kernel m => m a (m i a)
constant
(Construction (Maybe <:*:> Maybe) e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
())
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< Maybe (Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe (Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (Binary e -> Maybe (Construction (Maybe <:*:> Maybe) e))
-> Binary e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Binary e -> Maybe (Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (Binary e
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
-> (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e))
-> ((->)
< State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
< (:>)
(State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> Lens
Binary
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Right 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Right 'Tree) structure
sub @(Right Tree) (State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e))
-> State (Binary e) (Binary e)
-> State
(T_U
Covariant
Covariant
(:*:)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Binary e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall s (t :: * -> *). Stateful s t => t s
forall (t :: * -> *). Stateful (Binary e) t => t (Binary e)
current @(Binary e)
instance Slidable Up (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) where
type Sliding Up (Exactly <:*:> (Maybe <:*:> Maybe) <::> Construction (Maybe <:*:> Maybe) <:*:> List <::> Horizontal <::> (Exactly <:*:> Binary)) = Maybe
slide :: forall e . State > Zipper Binary e :> Maybe >>> ()
slide :: ((State > Zipper Binary e) :> Maybe) >>> ()
slide = (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
())
-> (((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. ((->)
< State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
< (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
< (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e))
-> (((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
-> ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens (Construction (Maybe <:*:> Maybe)) (Zipper Binary e) e
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State (Zipper Binary e) (Construction (Maybe <:*:> Maybe) e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom @(Zipper Binary e) (forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure ('Focused 'Tree) structure,
Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Tree) structure
sub @(Focused Tree)) (State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e))
-> (((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e))
-> ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change ((Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e))
-> (((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e)
-> ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> State
(Construction (Maybe <:*:> Maybe) e)
(Construction (Maybe <:*:> Maybe) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. TT
Covariant
Covariant
Horizontal
(T_U Covariant Covariant (:*:) Exactly Binary)
e
-> Construction (Maybe <:*:> Maybe) e
-> Construction (Maybe <:*:> Maybe) e
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> Nonempty Binary e -> Nonempty Binary e
branching
(((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
())
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
()
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> (Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Exactly (Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
forall (t :: * -> *) a. Extractable t => t a -> a
extract (Exactly (Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=====<< ((->)
< State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
< (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) (t :: * -> *) (u :: * -> *) a.
(Monadic m t, Pointable u) =>
(m < t a) < (:>) t u a
wrap (((->)
< State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
< (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
-> ((->)
< State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
< (:>)
(State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e))
Maybe
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
forall ls (u :: * -> *) result.
Lens u (Zipper Binary e) ls
-> State (u ls) result -> State (Zipper Binary e) result
zoom @(Zipper Binary e) (Lens
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
-> Lens
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary)))
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
e
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- forall k (segment :: k) (structure :: * -> *).
(Substructure segment structure, Covariant (->) (->) structure) =>
structure @>>> Substance segment structure
forall (structure :: * -> *).
(Substructure 'Ancestors structure,
Covariant (->) (->) structure) =>
structure @>>> Substance 'Ancestors structure
sub @Ancestors
(State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<:*:>)
Exactly
(T_U
Covariant
Covariant
(:*:)
(TT
Covariant
Covariant
(Maybe <:*:> Maybe)
(Construction (Maybe <:*:> Maybe)))
(TT
Covariant Covariant List (Horizontal <::> (Exactly <:*:> Binary))))
e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
-> Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
Exactly
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
-> State
((<::>) List (Horizontal <::> (Exactly <:*:> Binary)) e)
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- State
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook (State
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))))
-> State
(List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e))
-> State
(Exactly (List ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
(Exactly
(Maybe ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall e. Stack List => (State < List e) < Topping List e
forall (structure :: * -> *) e.
Stack structure =>
(State < structure e) < Topping structure e
pop @List where
branching :: Horizontal <::> (Exactly <:*:> Binary) >>>>> e
-> Nonempty Binary e -> Nonempty Binary e
branching :: ((Horizontal <::> (Exactly <:*:> Binary)) >>>>> e)
-> Nonempty Binary e -> Nonempty Binary e
branching (TT (Left (T_U (Exactly e
root :*: Binary e
left)))) Nonempty Binary e
right =
e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct (e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e)
-> e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- e
root ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e)
-> Construction (Maybe <:*:> Maybe) e)
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Binary e -> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run Binary e
left ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> Construction (Maybe <:*:> Maybe) e
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
forall a. a -> Maybe a
Just Construction (Maybe <:*:> Maybe) e
Nonempty Binary e
right
branching (TT (Right (T_U (Exactly e
root :*: Binary e
right)))) Nonempty Binary e
left =
e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct (e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e)
-> e
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- e
root ((((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e)
-> Construction (Maybe <:*:> Maybe) e)
-> (((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe))
>>> e)
-> Construction (Maybe <:*:> Maybe) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Construction (Maybe <:*:> Maybe) e
-> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
forall a. a -> Maybe a
Just Construction (Maybe <:*:> Maybe) e
Nonempty Binary e
left ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe :. Construction (Maybe <:*:> Maybe)) >>> e)
-> ((Maybe <:*:> Maybe) :. Construction (Maybe <:*:> Maybe)) >>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> Binary e -> (Maybe :. Construction (Maybe <:*:> Maybe)) >>> e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run Binary e
right