{-# OPTIONS_GHC -fno-warn-orphans #-}
module Pandora.Paradigm.Structure.Some.Rose 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.Contravariant ((>-|-))
import Pandora.Pattern.Functor.Traversable ((<-/-))
import Pandora.Pattern.Functor.Bindable (Bindable ((=<<), (====<<), (=====<<), (======<<)))
import Pandora.Pattern.Transformer.Liftable (lift)
import Pandora.Pattern.Transformer.Lowerable (lower)
import Pandora.Pattern.Object.Setoid (Setoid ((?=)))
import Pandora.Pattern.Object.Semigroup ((+))
import Pandora.Paradigm.Algebraic.Exponential ((%), (.:..))
import Pandora.Paradigm.Algebraic.Product ((:*:) ((:*:)), type (<:*:>), (<:*:>), attached)
import Pandora.Paradigm.Algebraic.Functor ((<-*-), (<-*----), extract, point, empty, void)
import Pandora.Paradigm.Primary.Auxiliary (Vertical (Up, Down), Horizontal (Left, Right))
import Pandora.Paradigm.Primary.Functor.Exactly (Exactly (Exactly))
import Pandora.Paradigm.Primary.Functor.Maybe (Maybe (Just, Nothing))
import Pandora.Paradigm.Primary.Functor.Predicate (equate)
import Pandora.Paradigm.Primary.Functor.Tagged (Tagged)
import Pandora.Paradigm.Primary.Transformer.Construction (Construction (Construct), deconstruct)
import Pandora.Paradigm.Primary.Transformer.Reverse (Reverse (Reverse))
import Pandora.Paradigm.Schemes (TU (TU), TT (TT), T_U (T_U), P_Q_T (P_Q_T),  type (<::>), type (<:.>))
import Pandora.Paradigm.Controlflow.Effect.Transformer ((:>), wrap)
import Pandora.Paradigm.Inventory.Some.State (State, change, current)
import Pandora.Paradigm.Inventory.Some.Store (Store (Store))
import Pandora.Paradigm.Inventory.Some.Optics (Lens, view, mutate, replace, primary)
import Pandora.Paradigm.Inventory (zoom, overlook, probably)
import Pandora.Paradigm.Structure.Ability.Morphable (Morphable (Morphing, morphing), Morph (Lookup, Element, Key), premorph, find)
import Pandora.Paradigm.Structure.Modification.Nonempty (Nonempty)
import Pandora.Paradigm.Structure.Ability.Slidable (Slidable (Sliding, slide))
import Pandora.Paradigm.Structure.Ability.Substructure (Substructure (Substance, substructure)
	, Segment (Rest, Ancestors, Siblings, Children, Tree, Forest), Location (Focused), sub)
import Pandora.Paradigm.Structure.Interface.Zipper (Zipper, Zippable (Breadcrumbs, fasten, unfasten))
import Pandora.Paradigm.Structure.Interface.Stack (Stack (pop, push, top))
import Pandora.Paradigm.Structure.Modification.Prefixed (Prefixed)
import Pandora.Paradigm.Structure.Modification.Tape (Tape)
import Pandora.Paradigm.Structure.Some.List (List)

type Rose = Maybe <::> Construction List

--------------------------------------- Prefixed rose tree -----------------------------------------

instance Setoid k => Morphable (Lookup Key) (Prefixed Rose k) where
	type Morphing (Lookup Key) (Prefixed Rose k) = (->) (Nonempty List k) <:.> Maybe
	morphing :: (<::>) (Tagged ('Lookup 'Key)) (Prefixed Rose k) a
-> Morphing ('Lookup 'Key) (Prefixed Rose k) a
morphing (<::>) (Tagged ('Lookup 'Key)) (Prefixed Rose k) a
prefixed_rose_tree = case TT Covariant Covariant Rose ((:*:) k) a -> (Rose :. (:*:) k) >>> a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (TT Covariant Covariant Rose ((:*:) k) a
 -> (Rose :. (:*:) k) >>> a)
-> TT Covariant Covariant Rose ((:*:) k) a
-> (Rose :. (:*:) k) >>> a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<::>) (Tagged ('Lookup 'Key)) (Prefixed Rose k) a
-> TT Covariant Covariant Rose ((:*:) k) a
forall k (mod :: k) (struct :: * -> *).
Morphable mod struct =>
(Tagged mod <::> struct) ~> struct
premorph (<::>) (Tagged ('Lookup 'Key)) (Prefixed Rose k) a
prefixed_rose_tree of
		TT Maybe
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
Nothing -> (((->) (Construction Maybe k) :. Maybe) >>> a)
-> TU Covariant Covariant ((->) (Construction Maybe k)) Maybe a
forall k k k k (ct :: k) (cu :: k) (t :: k -> *) (u :: k -> k)
       (a :: k).
((t :. u) >>> a) -> TU ct cu t u a
TU ((((->) (Construction Maybe k) :. Maybe) >>> a)
 -> TU Covariant Covariant ((->) (Construction Maybe k)) Maybe a)
-> (((->) (Construction Maybe k) :. Maybe) >>> a)
-> TU Covariant Covariant ((->) (Construction Maybe k)) Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Maybe a -> ((->) (Construction Maybe k) :. Maybe) >>> a
forall (m :: * -> * -> *) a i. Kernel m => m a (m i a)
constant Maybe a
forall a. Maybe a
Nothing
		TT (Just Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
tree) -> (((->) (Construction Maybe k) :. Maybe) >>> a)
-> TU Covariant Covariant ((->) (Construction Maybe k)) Maybe a
forall k k k k (ct :: k) (cu :: k) (t :: k -> *) (u :: k -> k)
       (a :: k).
((t :. u) >>> a) -> TU ct cu t u a
TU ((((->) (Construction Maybe k) :. Maybe) >>> a)
 -> TU Covariant Covariant ((->) (Construction Maybe k)) Maybe a)
-> (((->) (Construction Maybe k) :. Maybe) >>> a)
-> TU Covariant Covariant ((->) (Construction Maybe k)) Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Construction Maybe k
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> Maybe a
forall k a.
Setoid k =>
Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
-> (Nonempty Rose >>> (k :*: a)) -> Maybe a
find_rose_sub_tree (Construction Maybe k
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
 -> Maybe a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> ((->) (Construction Maybe k) :. Maybe) >>> a
forall a b c. (a -> b -> c) -> b -> a -> c
% Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
tree

-- TODO: Ineffiecient - we iterate over all branches in subtree, but we need to short-circuit on the first matching part of
--instance Setoid k => Morphable (Vary Element) (Prefixed Rose k) where
--	type Morphing (Vary Element) (Prefixed Rose k) = ((:*:) (Nonempty List k) <:.> Exactly) <:.:> Prefixed Rose k > (->)
--	morphing (run . run . premorph -> Nothing) = T_U ! \(TU (Construct key _ :*: Exactly value)) -> Prefixed . lift ! Construct (key :*: value) empty
--	morphing (run . run . premorph -> Just (Construct focused subtree)) = T_U ! \(TU (breadcrumbs :*: Exactly value)) -> case breadcrumbs of
--		Construct key Nothing -> Prefixed . lift ! attached focused == key ? Construct (key :*: value) subtree ! Construct focused subtree
--		Construct key (Just keys) -> Prefixed . lift ! attached focused != key ? Construct focused subtree
--			! Construct focused ! vary @Element @_ @_ @(Nonempty (Prefixed Rose k)) keys value -#=!> subtree

---------------------------------- Non-empty prefixed rose tree ------------------------------------

-- TODO: Ineffiecient - we iterate over all branches in subtree, but we need to short-circuit on the first matching part of
--instance Setoid k => Morphable (Vary Element) (Prefixed (Construction List) k) where
--	type Morphing (Vary Element) (Prefixed (Construction List) k) =
--		((:*:) (Nonempty List k) <:.> Exactly) <:.:> Prefixed (Construction List) k > (->)
--	morphing (run . premorph -> Construct x (TU Nothing)) = T_U ! \(TU (breadcrumbs :*: Exactly value)) -> case breadcrumbs of
--		Construct key Nothing -> Prefixed ! attached x == key ? Construct (key :*: value) empty ! Construct x empty
--		Construct _ (Just _) -> Prefixed ! Construct x (TU Nothing)
--	morphing (run . premorph -> Construct x (TU (Just subtree))) = T_U ! \(TU (breadcrumbs :*: Exactly value)) -> case breadcrumbs of
--		Construct key Nothing -> Prefixed ! attached x != key ? Construct x # lift subtree
--			! Construct (key :*: value) (lift subtree)
--		Construct key (Just keys) -> Prefixed ! attached x != key ? Construct x # lift subtree
--			! Construct (key :*: value) . lift ! vary @Element @_ @_ @(Nonempty (Prefixed Rose k)) keys value -#=!> subtree

find_rose_sub_tree :: forall k a . Setoid k => Nonempty List k -> Nonempty Rose >>> k :*: a -> Maybe a
find_rose_sub_tree :: Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
-> (Nonempty Rose >>> (k :*: a)) -> Maybe a
find_rose_sub_tree (Construct k ks) Nonempty Rose >>> (k :*: a)
tree = k
k k -> k -> Maybe a -> Maybe a -> Maybe a
forall a r. Setoid a => a -> a -> r -> r -> r
?= (k :*: a) -> k
forall a b. (a :*: b) -> a
attached (Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> k :*: a
forall (t :: * -> *) a. Extractable t => t a -> a
extract Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
Nonempty Rose >>> (k :*: a)
tree)
	(Maybe a -> Maybe a -> Maybe a) -> Maybe a -> Maybe a -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- case (Maybe :. Construction Maybe) >>> k
ks of
		Just Construction Maybe k
keys -> Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
-> (Nonempty Rose >>> (k :*: a)) -> Maybe a
forall k a.
Setoid k =>
Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
-> (Nonempty Rose >>> (k :*: a)) -> Maybe a
find_rose_sub_tree Construction Maybe k
Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
keys (Construction
   (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
 -> Maybe a)
-> Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
-> Maybe a
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
=<< Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
-> (Maybe :. Nonempty Rose) >>> (k :*: a)
subtree Construction Maybe k
Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
keys
		(Maybe :. Construction Maybe) >>> k
Nothing -> 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
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> k :*: a
forall (t :: * -> *) a. Extractable t => t a -> a
extract Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
Nonempty Rose >>> (k :*: a)
tree
	(Maybe a -> Maybe a) -> Maybe a -> Maybe a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Maybe a
forall a. Maybe a
Nothing where

	subtree :: Nonempty List k -> Maybe :. Nonempty Rose >>> k :*: a
	subtree :: Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
-> (Maybe :. Nonempty Rose) >>> (k :*: a)
subtree Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
keys = forall a1 (mod :: a1) (struct :: * -> *) (result :: * -> *) a2.
Morphed
  ('Find mod) struct ((Predicate <:.:> result) >>>>>> (->)) =>
Predicate a2 -> struct a2 -> result a2
forall (struct :: * -> *) (result :: * -> *) a2.
Morphed
  ('Find 'Element) struct ((Predicate <:.:> result) >>>>>> (->)) =>
Predicate a2 -> struct a2 -> result a2
find @Element
		(Predicate
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
 -> TT
      Covariant
      Covariant
      Maybe
      (Construction Maybe)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
 -> Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)))
-> Predicate
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
-> TT
     Covariant
     Covariant
     Maybe
     (Construction Maybe)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
-> Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- (k :*: a) -> k
forall a b. (a :*: b) -> a
attached ((k :*: a) -> k)
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
    -> k :*: a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> k
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> k :*: a
forall (t :: * -> *) a. Extractable t => t a -> a
extract
			(Construction
   (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
 -> k)
-> Predicate k
-> Predicate
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Contravariant source target t =>
source a b -> target (t b) (t a)
>-|- k :=> Predicate
forall a. Setoid a => a :=> Predicate
equate (k :=> Predicate) -> k :=> Predicate
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Construction Maybe k -> k
forall (t :: * -> *) a. Extractable t => t a -> a
extract Construction Maybe k
Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) k
keys
		(TT
   Covariant
   Covariant
   Maybe
   (Construction Maybe)
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
 -> Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)))
-> TT
     Covariant
     Covariant
     Maybe
     (Construction Maybe)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
-> Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
-> TT
     Covariant
     Covariant
     Maybe
     (Construction Maybe)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a))
forall (t :: * -> *) a.
Construction t a -> (t :. Construction t) >>> a
deconstruct Construction
  (TT Covariant Covariant Maybe (Construction Maybe)) (k :*: a)
Nonempty Rose >>> (k :*: a)
tree

------------------------------ Non-empty rose tree zipper -----------------------------

type Roses = List <::> Construction List

instance Zippable Rose where
	type Breadcrumbs Rose = Roses <:*:> List <::> Tape Roses
	fasten :: Rose e -> Maybe > Zipper Rose e
fasten (TT (Just (Construct e
x (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
xs))) = ((Exactly
  <:*:> T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe)))))))
 >>>>>> e)
-> Maybe
     ((Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      >>>>>> e)
forall a. a -> Maybe a
Just (((Exactly
   <:*:> T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  >>>>>> e)
 -> Maybe
      ((Exactly
        <:*:> T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe)))))))
       >>>>>> e))
-> ((Exactly
     <:*:> T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
    >>>>>> e)
-> Maybe
     ((Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      >>>>>> 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
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     e
-> (Exactly
    <:*:> T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
   >>>>>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> ((TT Covariant Covariant Maybe (Construction Maybe)
  :. Construction
       (TT Covariant Covariant Maybe (Construction Maybe)))
 >>> e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction 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 (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
xs TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> ((TT Covariant Covariant Maybe (Construction Maybe)
  :. Tape
       (TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction
             (TT Covariant Covariant Maybe (Construction Maybe)))))
 >>> e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction 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 (TT Covariant Covariant Maybe (Construction Maybe)
 :. Tape
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)))))
>>> e
forall (t :: * -> *) a. Emptiable t => t a
empty
	fasten (TT Maybe
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
Nothing) = Maybe (T_U Covariant Covariant (:*:) Exactly (Breadcrumbs Rose) e)
forall a. Maybe a
Nothing
	unfasten :: forall e . Zipper Rose e -> Nonempty Rose e
	unfasten :: Zipper Rose e -> Nonempty Rose e
unfasten (T_U (Exactly e
focus :*: T_U (TT children :*: TT ancestors))) =
		(Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 :*: TT Covariant Covariant Maybe (Construction Maybe) ())
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall a b. (a :*: b) -> a
attached ((Construction
    (TT Covariant Covariant Maybe (Construction Maybe)) e
  :*: TT Covariant Covariant Maybe (Construction Maybe) ())
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    :*: TT Covariant Covariant Maybe (Construction Maybe) ())
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (T_U
     Covariant
     Covariant
     (:*:)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     ()
Tape
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> (State << Nonempty Rose e) << ()
cover (Tape
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   e
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      ())
-> TT
     Covariant
     Covariant
     Maybe
     (Construction Maybe)
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction 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)
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
ancestors) State
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
  (TT Covariant Covariant Maybe (Construction Maybe) ())
-> ((->)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
    :. (:*:)
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
   >>> TT Covariant Covariant Maybe (Construction Maybe) ()
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
<~ e
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct e
focus (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
children where

		cover :: Tape Roses e -> State << Nonempty Rose e << ()
		cover :: Tape
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> (State << Nonempty Rose e) << ()
cover (T_U (Exactly e
x :*: T_U (Reverse (TT (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
lf) :*: TT (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
rf))) =

			State
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void (State
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      ())
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     ()
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
forall (t :: * -> *).
Stateful (Nonempty Rose e) t =>
(Nonempty Rose e -> Nonempty Rose e) -> t (Nonempty Rose e)
change @(Nonempty Rose e) ((Construction
    (TT Covariant Covariant Maybe (Construction Maybe)) e
  -> Construction
       (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
nrt ->
				e
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct (e
 -> ((TT Covariant Covariant Maybe (Construction Maybe)
      :. Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))
     >>> e)
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> e
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<------- e
x (((TT Covariant Covariant Maybe (Construction Maybe)
   :. Construction
        (TT Covariant Covariant Maybe (Construction Maybe)))
  >>> e)
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<------- Construction
  Maybe
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Construction
   Maybe
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> (TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<------ forall e.
Zippable (TT Covariant Covariant Maybe (Construction Maybe)) =>
Zipper (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Nonempty (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (structure :: * -> *) e.
Zippable structure =>
Zipper structure e -> Nonempty structure e
unfasten @List
					(T_U
   Covariant
   Covariant
   (:*:)
   Exactly
   (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
    <:*:> TT Covariant Covariant Maybe (Construction Maybe))
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> Construction
      Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Construction
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Exactly
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall a. a -> Exactly a
Exactly Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
nrt Exactly
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> ((TT Covariant Covariant Maybe (Construction Maybe)
  :. Construction
       (TT Covariant Covariant Maybe (Construction Maybe)))
 >>> e)
-> Reverse
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k). t a -> Reverse t a
Reverse (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
lf Reverse
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> (TT Covariant Covariant Maybe (Construction Maybe)
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
rf

-- TODO: Try to use substructure @Right . substructure @Right . substructure @Right . substructure @Right here
instance Substructure Ancestors (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Substance Ancestors (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = List <::> Tape Roses
	substructure :: Lens
  (Substance
     'Ancestors
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe))))))))
  ((<:.>)
     (Tagged 'Ancestors)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a)
  a
substructure = ((<:.>)
   (Tagged 'Ancestors)
   (Exactly
    <:*:> T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Store
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         a)
      ((<:.>)
         (Tagged 'Ancestors)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     ((<:.>)
        (Tagged 'Ancestors)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
    a
  -> Store
       ((<::>)
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a)
       ((<:.>)
          (Tagged 'Ancestors)
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a))
 -> P_Q_T
      (->)
      Store
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe))))))
      ((<:.>)
         (Tagged 'Ancestors)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
      a)
-> ((<:.>)
      (Tagged 'Ancestors)
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a
    -> Store
         ((<::>)
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))
            a)
         ((<:.>)
            (Tagged 'Ancestors)
            (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
            a))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     ((<:.>)
        (Tagged 'Ancestors)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper -> 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
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   a
 -> TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      a
    :*: (<::>)
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a)
-> (Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> Exactly a
   :*: (TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          a
        :*: (<::>)
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))
              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
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
  (Tagged 'Ancestors)
  (Exactly
   <:*:> T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper of
		Exactly a
x :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
down :*: (<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up -> (((:*:)
    ((<::>)
       (TT Covariant Covariant Maybe (Construction Maybe))
       (Tape
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction
                (TT Covariant Covariant Maybe (Construction Maybe)))))
       a)
  :. (->)
       ((<::>)
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a))
 >>> (<:.>)
       (Tagged 'Ancestors)
       (Exactly
        <:*:> T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe)))))))
       a)
-> Store
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        a)
     ((<:.>)
        (Tagged 'Ancestors)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:)
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        a)
   :. (->)
        ((<::>)
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))
           a))
  >>> (<:.>)
        (Tagged 'Ancestors)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
 -> Store
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         a)
      ((<:.>)
         (Tagged 'Ancestors)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> (((:*:)
       ((<::>)
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a)
     :. (->)
          ((<::>)
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe)))))
             a))
    >>> (<:.>)
          (Tagged 'Ancestors)
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a)
-> Store
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        a)
     ((<:.>)
        (Tagged 'Ancestors)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up (<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
-> ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      a
    -> (<:.>)
         (Tagged 'Ancestors)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> ((:*:)
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         a)
    :. (->)
         ((<::>)
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))
            a))
   >>> (<:.>)
         (Tagged 'Ancestors)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a
forall s a. s -> a -> s :*: a
:*: T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> (<:.>)
     (Tagged 'Ancestors)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> (<:.>)
      (Tagged 'Ancestors)
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      a
    -> T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
-> (<:.>)
     (Tagged 'Ancestors)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (a -> Exactly a
forall a. a -> Exactly a
Exactly a
x Exactly a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (T_U
   Covariant
   Covariant
   (:*:)
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   a
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      a
    -> T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         a)
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
down TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>)

-- TODO: Try to use substructure @Left . substructure @Right here
instance Substructure Children (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Substance Children (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Roses
	substructure :: Lens
  (Substance
     'Children
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe))))))))
  ((<:.>)
     (Tagged 'Children)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a)
  a
substructure = ((<:.>)
   (Tagged 'Children)
   (Exactly
    <:*:> T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Store
      (Roses a)
      ((<:.>)
         (Tagged 'Children)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((<:.>)
        (Tagged 'Children)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
    a
  -> Store
       (Roses a)
       ((<:.>)
          (Tagged 'Children)
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a))
 -> P_Q_T
      (->)
      Store
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      ((<:.>)
         (Tagged 'Children)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
      a)
-> ((<:.>)
      (Tagged 'Children)
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a
    -> Store
         (Roses a)
         ((<:.>)
            (Tagged 'Children)
            (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
            a))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((<:.>)
        (Tagged 'Children)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper -> 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
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   a
 -> Roses a
    :*: TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a)
-> (Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> Exactly a
   :*: (Roses a
        :*: TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))
              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
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
  (Tagged 'Children)
  (Exactly
   <:*:> T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper of
		Exactly a
x :*: Roses a
down :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up -> (((:*:) (Roses a) :. (->) (Roses a))
 >>> (<:.>)
       (Tagged 'Children)
       (Exactly
        <:*:> T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe)))))))
       a)
-> Store
     (Roses a)
     ((<:.>)
        (Tagged 'Children)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:) (Roses a) :. (->) (Roses a))
  >>> (<:.>)
        (Tagged 'Children)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
 -> Store
      (Roses a)
      ((<:.>)
         (Tagged 'Children)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> (((:*:) (Roses a) :. (->) (Roses a))
    >>> (<:.>)
          (Tagged 'Children)
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a)
-> Store
     (Roses a)
     ((<:.>)
        (Tagged 'Children)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Roses a
down Roses a
-> (Roses a
    -> (<:.>)
         (Tagged 'Children)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> ((:*:) (Roses a) :. (->) (Roses a))
   >>> (<:.>)
         (Tagged 'Children)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a
forall s a. s -> a -> s :*: a
:*: T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> (<:.>)
     (Tagged 'Children)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> (<:.>)
      (Tagged 'Children)
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> (Roses a
    -> T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> Roses a
-> (<:.>)
     (Tagged 'Children)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (a -> Exactly a
forall a. a -> Exactly a
Exactly a
x Exactly a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:>) (T_U
   Covariant
   Covariant
   (:*:)
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   a
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> (Roses a
    -> T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         a)
-> Roses a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Roses a
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up)

-- Think about lens methods/operators that could make this code easier
instance Substructure Siblings (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Substance Siblings (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Maybe <::> (Reverse Roses <:*:> Roses)
	substructure :: Lens
  (Substance
     'Siblings
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe))))))))
  ((<:.>)
     (Tagged 'Siblings)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a)
  a
substructure = ((<:.>)
   (Tagged 'Siblings)
   (Exactly
    <:*:> T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Store
      (TT
         Covariant
         Covariant
         Maybe
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
      ((<:.>)
         (Tagged 'Siblings)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        Maybe
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))
     ((<:.>)
        (Tagged 'Siblings)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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 'Siblings)
    (Exactly
     <:*:> T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
    a
  -> Store
       (TT
          Covariant
          Covariant
          Maybe
          (Reverse
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           <:*:> TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          a)
       ((<:.>)
          (Tagged 'Siblings)
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a))
 -> P_Q_T
      (->)
      Store
      (TT
         Covariant
         Covariant
         Maybe
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))
      ((<:.>)
         (Tagged 'Siblings)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
      a)
-> ((<:.>)
      (Tagged 'Siblings)
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a
    -> Store
         (TT
            Covariant
            Covariant
            Maybe
            (Reverse
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             <:*:> TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            a)
         ((<:.>)
            (Tagged 'Siblings)
            (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
            a))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        Maybe
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))
     ((<:.>)
        (Tagged 'Siblings)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
     a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(<:.>)
  (Tagged 'Siblings)
  (Exactly
   <:*:> T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper -> 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
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   a
 -> TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      a
    :*: TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a)
-> (Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> Exactly a
   :*: (TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          a
        :*: TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))
              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
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (<:.>)
  (Tagged 'Siblings)
  (Exactly
   <:*:> T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (<:.>)
  (Tagged 'Siblings)
  (Exactly
   <:*:> T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper of
		Exactly a
x :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
down :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up -> (((:*:)
    (TT
       Covariant
       Covariant
       Maybe
       (Reverse
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        <:*:> TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       a)
  :. (->)
       (TT
          Covariant
          Covariant
          Maybe
          (Reverse
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           <:*:> TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          a))
 >>> (<:.>)
       (Tagged 'Siblings)
       (Exactly
        <:*:> T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe)))))))
       a)
-> Store
     (TT
        Covariant
        Covariant
        Maybe
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
     ((<:.>)
        (Tagged 'Siblings)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store
			((((:*:)
     (TT
        Covariant
        Covariant
        Maybe
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
   :. (->)
        (TT
           Covariant
           Covariant
           Maybe
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a))
  >>> (<:.>)
        (Tagged 'Siblings)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
 -> Store
      (TT
         Covariant
         Covariant
         Maybe
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
      ((<:.>)
         (Tagged 'Siblings)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> (((:*:)
       (TT
          Covariant
          Covariant
          Maybe
          (Reverse
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           <:*:> TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          a)
     :. (->)
          (TT
             Covariant
             Covariant
             Maybe
             (Reverse
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              <:*:> TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             a))
    >>> (<:.>)
          (Tagged 'Siblings)
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a)
-> Store
     (TT
        Covariant
        Covariant
        Maybe
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
     ((<:.>)
        (Tagged 'Siblings)
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (((Maybe
  :. (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
 >>> a)
-> TT
     Covariant
     Covariant
     Maybe
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction 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 (((Maybe
   :. (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
  >>> a)
 -> TT
      Covariant
      Covariant
      Maybe
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
-> ((Maybe
     :. (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))
    >>> a)
-> TT
     Covariant
     Covariant
     Maybe
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- Lens
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a)
  a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
-> (<:*:>)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
forall (i :: * -> *) source target.
Lens i source target -> source -> i target
view (Lens
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
    <:*:> TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
   a
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a
 -> (<:*:>)
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
-> Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
-> (<:*:>)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     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 'Rest structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Rest structure
sub @Rest (T_U
   Covariant
   Covariant
   (:*:)
   Exactly
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
    <:*:> TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   a
 -> (<:*:>)
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> (Maybe
    :. (Reverse
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        <:*:> TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
   >>> a
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- Lens
  Maybe
  (List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a))
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (i :: * -> *) source target.
Lens i source target -> source -> i target
view (Lens
   Maybe
   (List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
((Lens
  < Topping (TT Covariant Covariant Maybe (Construction Maybe)))
 < List e)
< e
forall (structure :: * -> *) e.
Stack structure =>
((Lens < Topping structure) < structure e) < e
top @List (List
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up)
				TT
  Covariant
  Covariant
  Maybe
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  a
-> (TT
      Covariant
      Covariant
      Maybe
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a
    -> (<:.>)
         (Tagged 'Siblings)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> ((:*:)
      (TT
         Covariant
         Covariant
         Maybe
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
    :. (->)
         (TT
            Covariant
            Covariant
            Maybe
            (Reverse
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             <:*:> TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            a))
   >>> (<:.>)
         (Tagged 'Siblings)
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a
forall s a. s -> a -> s :*: a
:*: \TT
  Covariant
  Covariant
  Maybe
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  a
siblings -> T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> (<:.>)
     (Tagged 'Siblings)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> (<:.>)
      (Tagged 'Siblings)
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
-> (<:.>)
     (Tagged 'Siblings)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- a -> Exactly a
forall a. a -> Exactly a
Exactly a
x Exactly a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
down
					TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction 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 (List
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
 -> TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (Maybe
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (i :: * -> *) target source.
(i target -> i target) -> Lens i source target -> source -> source
mutate ((<:*:>)
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  a
-> Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
forall (i :: * -> *) source target.
i target -> Lens i source target -> source -> source
replace ((<:*:>)
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   a
 -> Lens
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
      a
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
-> ((Maybe
     :. (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))
    >>> a)
-> Maybe
     (Lens
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a)
        a
      -> T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a
      -> T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a)
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- TT
  Covariant
  Covariant
  Maybe
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  a
-> (Maybe
    :. (Reverse
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        <:*:> TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
   >>> a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  Maybe
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  a
siblings Maybe
  (Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
     a
   -> T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a
   -> T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> Maybe
     (Lens
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a)
        a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a
      -> T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a)
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t (a -> b) -> t a -> t b
<-*- Lens
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a)
  a
-> Maybe
     (Lens
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a)
        a)
forall a. a -> Maybe a
Just (Lens
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
    <:*:> TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
   a
 -> Maybe
      (Lens
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             <:*:> TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            a)
         a))
-> Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
     a
-> Maybe
     (Lens
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a)
        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 'Rest structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Rest structure
sub @Rest Maybe
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
   -> T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t (a -> b) -> t a -> t b
<-*-)
						(Lens
   Maybe
   (List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           a))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
((Lens
  < Topping (TT Covariant Covariant Maybe (Construction Maybe)))
 < List e)
< e
forall (structure :: * -> *) e.
Stack structure =>
((Lens < Topping structure) < structure e) < e
top @List (List
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      a)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a))
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        a)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up

instance Substructure (Focused Tree) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Substance (Focused Tree) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Construction List
	substructure :: Lens
  (Substance
     ('Focused 'Tree)
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe))))))))
  ((<:.>)
     (Tagged ('Focused 'Tree))
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a)
  a
substructure = ((<:.>)
   (Tagged ('Focused 'Tree))
   (Exactly
    <:*:> T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Store
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) a)
      ((<:.>)
         (Tagged ('Focused 'Tree))
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> P_Q_T
     (->)
     Store
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     ((<:.>)
        (Tagged ('Focused 'Tree))
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
    a
  -> Store
       (Construction
          (TT Covariant Covariant Maybe (Construction Maybe)) a)
       ((<:.>)
          (Tagged ('Focused 'Tree))
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a))
 -> P_Q_T
      (->)
      Store
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      ((<:.>)
         (Tagged ('Focused 'Tree))
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
      a)
-> ((<:.>)
      (Tagged ('Focused 'Tree))
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a
    -> Store
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) a)
         ((<:.>)
            (Tagged ('Focused 'Tree))
            (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
            a))
-> P_Q_T
     (->)
     Store
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     ((<:.>)
        (Tagged ('Focused 'Tree))
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper -> 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
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   a
 -> TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      a
    :*: TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          a)
-> (Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> Exactly a
   :*: (TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          a
        :*: TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))
              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
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
zipper of
		Exactly a
x :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
children :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up -> (((:*:)
    (Construction
       (TT Covariant Covariant Maybe (Construction Maybe)) a)
  :. (->)
       (Construction
          (TT Covariant Covariant Maybe (Construction Maybe)) a))
 >>> (<:.>)
       (Tagged ('Focused 'Tree))
       (Exactly
        <:*:> T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe)))))))
       a)
-> Store
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) a)
     ((<:.>)
        (Tagged ('Focused 'Tree))
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) a)
   :. (->)
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) a))
  >>> (<:.>)
        (Tagged ('Focused 'Tree))
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
 -> Store
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) a)
      ((<:.>)
         (Tagged ('Focused 'Tree))
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a))
-> (((:*:)
       (Construction
          (TT Covariant Covariant Maybe (Construction Maybe)) a)
     :. (->)
          (Construction
             (TT Covariant Covariant Maybe (Construction Maybe)) a))
    >>> (<:.>)
          (Tagged ('Focused 'Tree))
          (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe)))))))
          a)
-> Store
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) a)
     ((<:.>)
        (Tagged ('Focused 'Tree))
        (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe)))))))
        a)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- a
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) a
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct a
x (TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
children) Construction (TT Covariant Covariant Maybe (Construction Maybe)) a
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) a
    -> (<:.>)
         (Tagged ('Focused 'Tree))
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> ((:*:)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) a)
    :. (->)
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) a))
   >>> (<:.>)
         (Tagged ('Focused 'Tree))
         (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a
forall s a. s -> a -> s :*: a
:*: T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  a
-> (<:.>)
     (Tagged ('Focused 'Tree))
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   a
 -> (<:.>)
      (Tagged ('Focused 'Tree))
      (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) a
    -> T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) a
-> (<:.>)
     (Tagged ('Focused 'Tree))
     (Exactly
      <:*:> T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       (TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe))))))
       a)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     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
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe))))))
        a)
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      a)
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) a
    -> Exactly a
       :*: T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe))))))
             a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. ((TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  a
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     a
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     a
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  a
up) (TT
   Covariant
   Covariant
   (TT Covariant Covariant Maybe (Construction Maybe))
   (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
   a
 -> T_U
      Covariant
      Covariant
      (:*:)
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe))))))
      a)
-> (Exactly a
    :*: TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          a)
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         a
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|-) ((Exactly a
  :*: TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        a)
 -> Exactly a
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          a)
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) a
    -> Exactly a
       :*: TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
             a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) a
-> Exactly a
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         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
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  a
-> Exactly a
   :*: TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (T_U
   Covariant
   Covariant
   (:*:)
   Exactly
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   a
 -> Exactly a
    :*: TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          a)
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) a
    -> T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         a)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) a
-> Exactly a
   :*: TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         a
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (TT Covariant Covariant Maybe (Construction Maybe)) a
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     a
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run

-- TODO: Refactor this instance, looks too complicated
-- TODO: it seem like this instance is wrong, when I try to update the focus, I lost andestors
instance Substructure (Focused Forest) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Substance (Focused Forest) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Tape List <::> Nonempty Rose
	substructure :: forall e . Lens (Tape List <::> Nonempty Rose)
		((Tagged (Focused Forest) <:.> (Exactly <:*:> Roses <:*:> List <::> Tape Roses)) > e) e
	substructure :: Lens
  (Tape (TT Covariant Covariant Maybe (Construction Maybe))
   <::> Nonempty Rose)
  ((Tagged ('Focused 'Forest)
    <:.> (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe))))))))
   > e)
  e
substructure = (((Tagged ('Focused 'Forest)
   <:.> (Exactly
         <:*:> T_U
                 Covariant
                 Covariant
                 (:*:)
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Tape
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction
                             (TT Covariant Covariant Maybe (Construction Maybe))))))))
  > e)
 -> Store
      (TT
         Covariant
         Covariant
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      ((Tagged ('Focused 'Forest)
        <:.> (Exactly
              <:*:> T_U
                      Covariant
                      Covariant
                      (:*:)
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Tape
                            (TT
                               Covariant
                               Covariant
                               (TT Covariant Covariant Maybe (Construction Maybe))
                               (Construction
                                  (TT Covariant Covariant Maybe (Construction Maybe))))))))
       > e))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((Tagged ('Focused 'Forest)
       <:.> (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe))))))))
      > e)
     e
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 'Forest)
    <:.> (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe))))))))
   > e)
  -> Store
       (TT
          Covariant
          Covariant
          (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          e)
       ((Tagged ('Focused 'Forest)
         <:.> (Exactly
               <:*:> T_U
                       Covariant
                       Covariant
                       (:*:)
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Tape
                             (TT
                                Covariant
                                Covariant
                                (TT Covariant Covariant Maybe (Construction Maybe))
                                (Construction
                                   (TT Covariant Covariant Maybe (Construction Maybe))))))))
        > e))
 -> P_Q_T
      (->)
      Store
      (TT
         Covariant
         Covariant
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      ((Tagged ('Focused 'Forest)
        <:.> (Exactly
              <:*:> T_U
                      Covariant
                      Covariant
                      (:*:)
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Tape
                            (TT
                               Covariant
                               Covariant
                               (TT Covariant Covariant Maybe (Construction Maybe))
                               (Construction
                                  (TT Covariant Covariant Maybe (Construction Maybe))))))))
       > e)
      e)
-> (((Tagged ('Focused 'Forest)
      <:.> (Exactly
            <:*:> T_U
                    Covariant
                    Covariant
                    (:*:)
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Tape
                          (TT
                             Covariant
                             Covariant
                             (TT Covariant Covariant Maybe (Construction Maybe))
                             (Construction
                                (TT Covariant Covariant Maybe (Construction Maybe))))))))
     > e)
    -> Store
         (TT
            Covariant
            Covariant
            (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
            e)
         ((Tagged ('Focused 'Forest)
           <:.> (Exactly
                 <:*:> T_U
                         Covariant
                         Covariant
                         (:*:)
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Tape
                               (TT
                                  Covariant
                                  Covariant
                                  (TT Covariant Covariant Maybe (Construction Maybe))
                                  (Construction
                                     (TT Covariant Covariant Maybe (Construction Maybe))))))))
          > e))
-> P_Q_T
     (->)
     Store
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((Tagged ('Focused 'Forest)
       <:.> (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe))))))))
      > e)
     e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- \(Tagged ('Focused 'Forest)
 <:.> (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe))))))))
> e
zipper -> 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
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   e
 -> TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e
    :*: TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction
                   (TT Covariant Covariant Maybe (Construction Maybe)))))
          e)
-> (Exactly e
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          e)
-> Exactly e
   :*: (TT
          Covariant
          Covariant
          (TT Covariant Covariant Maybe (Construction Maybe))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          e
        :*: TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))
              e)
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|- 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
   (:*:)
   Exactly
   (T_U
      Covariant
      Covariant
      (:*:)
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   e
 -> Exactly e
    :*: T_U
          Covariant
          Covariant
          (:*:)
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Tape
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction
                      (TT Covariant Covariant Maybe (Construction Maybe))))))
          e)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     e
-> Exactly e
   :*: T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe))))))
         e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- ((Tagged ('Focused 'Forest)
  <:.> (Exactly
        <:*:> T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe))))))))
 > e)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     e
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Lowerable cat t, Covariant cat cat u) =>
cat (t u a) (u a)
lower (Tagged ('Focused 'Forest)
 <:.> (Exactly
       <:*:> T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe))))))))
> e
zipper of
		Exactly e
root :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
down :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  e
up -> (((:*:)
    (TT
       Covariant
       Covariant
       (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
       (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
       e)
  :. (->)
       (TT
          Covariant
          Covariant
          (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          e))
 >>> ((Tagged ('Focused 'Forest)
       <:.> (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe))))))))
      > e))
-> Store
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     ((Tagged ('Focused 'Forest)
       <:.> (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe))))))))
      > e)
forall s a. (((:*:) s :. (->) s) >>> a) -> Store s a
Store ((((:*:)
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
   :. (->)
        (TT
           Covariant
           Covariant
           (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
           e))
  >>> ((Tagged ('Focused 'Forest)
        <:.> (Exactly
              <:*:> T_U
                      Covariant
                      Covariant
                      (:*:)
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Tape
                            (TT
                               Covariant
                               Covariant
                               (TT Covariant Covariant Maybe (Construction Maybe))
                               (Construction
                                  (TT Covariant Covariant Maybe (Construction Maybe))))))))
       > e))
 -> Store
      (TT
         Covariant
         Covariant
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      ((Tagged ('Focused 'Forest)
        <:.> (Exactly
              <:*:> T_U
                      Covariant
                      Covariant
                      (:*:)
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Tape
                            (TT
                               Covariant
                               Covariant
                               (TT Covariant Covariant Maybe (Construction Maybe))
                               (Construction
                                  (TT Covariant Covariant Maybe (Construction Maybe))))))))
       > e))
-> (((:*:)
       (TT
          Covariant
          Covariant
          (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
          (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
          e)
     :. (->)
          (TT
             Covariant
             Covariant
             (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
             e))
    >>> ((Tagged ('Focused 'Forest)
          <:.> (Exactly
                <:*:> T_U
                        Covariant
                        Covariant
                        (:*:)
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Tape
                              (TT
                                 Covariant
                                 Covariant
                                 (TT Covariant Covariant Maybe (Construction Maybe))
                                 (Construction
                                    (TT Covariant Covariant Maybe (Construction Maybe))))))))
         > e))
-> Store
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     ((Tagged ('Focused 'Forest)
       <:.> (Exactly
             <:*:> T_U
                     Covariant
                     Covariant
                     (:*:)
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Tape
                           (TT
                              Covariant
                              Covariant
                              (TT Covariant Covariant Maybe (Construction Maybe))
                              (Construction
                                 (TT Covariant Covariant Maybe (Construction Maybe))))))))
      > e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- ((Tape (TT Covariant Covariant Maybe (Construction Maybe))
  :. Construction
       (TT Covariant Covariant Maybe (Construction Maybe)))
 >>> e)
-> TT
     Covariant
     Covariant
     (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
     (Construction (TT Covariant Covariant Maybe (Construction 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 (Tape (TT Covariant Covariant Maybe (Construction Maybe))
 :. Construction
      (TT Covariant Covariant Maybe (Construction Maybe)))
>>> e
Tape (TT Covariant Covariant Maybe (Construction Maybe))
> Nonempty Rose e
focused TT
  Covariant
  Covariant
  (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> (TT
      Covariant
      Covariant
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e
    -> (Tagged ('Focused 'Forest)
        <:.> (Exactly
              <:*:> T_U
                      Covariant
                      Covariant
                      (:*:)
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Tape
                            (TT
                               Covariant
                               Covariant
                               (TT Covariant Covariant Maybe (Construction Maybe))
                               (Construction
                                  (TT Covariant Covariant Maybe (Construction Maybe))))))))
       > e)
-> ((:*:)
      (TT
         Covariant
         Covariant
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
    :. (->)
         (TT
            Covariant
            Covariant
            (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
            e))
   >>> ((Tagged ('Focused 'Forest)
         <:.> (Exactly
               <:*:> T_U
                       Covariant
                       Covariant
                       (:*:)
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                       (TT
                          Covariant
                          Covariant
                          (TT Covariant Covariant Maybe (Construction Maybe))
                          (Tape
                             (TT
                                Covariant
                                Covariant
                                (TT Covariant Covariant Maybe (Construction Maybe))
                                (Construction
                                   (TT Covariant Covariant Maybe (Construction Maybe))))))))
        > e)
forall s a. s -> a -> s :*: a
:*: T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))))
  e
-> (Tagged ('Focused 'Forest)
    <:.> (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe))))))))
   > e
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
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))))
   e
 -> (Tagged ('Focused 'Forest)
     <:.> (Exactly
           <:*:> T_U
                   Covariant
                   Covariant
                   (:*:)
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Tape
                         (TT
                            Covariant
                            Covariant
                            (TT Covariant Covariant Maybe (Construction Maybe))
                            (Construction
                               (TT Covariant Covariant Maybe (Construction Maybe))))))))
    > e)
-> (TT
      Covariant
      Covariant
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e
    -> T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
-> TT
     Covariant
     Covariant
     (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
-> (Tagged ('Focused 'Forest)
    <:.> (Exactly
          <:*:> T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe))))))))
   > e
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. TT
  Covariant
  Covariant
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
        (TT Covariant Covariant Maybe (Construction Maybe))))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (T_U
              Covariant
              Covariant
              (:*:)
              Exactly
              (T_U
                 Covariant
                 Covariant
                 (:*:)
                 (Reverse
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe))))))))
     e
(<::>)
  (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
  (Nonempty Rose)
  e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     e
updated where

			focused :: Tape List > Nonempty Rose e
			focused :: Tape (TT Covariant Covariant Maybe (Construction Maybe))
> Nonempty Rose e
focused = case Maybe
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run (Maybe
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
  Maybe
  (List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (i :: * -> *) source target.
Lens i source target -> source -> i target
view (Lens
   Maybe
   (List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
((Lens
  < Topping (TT Covariant Covariant Maybe (Construction Maybe)))
 < List e)
< e
forall (structure :: * -> *) e.
Stack structure =>
((Lens < Topping structure) < structure e) < e
top @List (List
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  e
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  e
up of
				Maybe
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
Nothing -> Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Exactly
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall a. a -> Exactly a
Exactly Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
Nonempty Rose e
tree Exactly
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (Tape (TT Covariant Covariant Maybe (Construction Maybe))
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Reverse
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k). t a -> Reverse t a
Reverse List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (t :: * -> *) a. Emptiable t => t a
empty Reverse
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (t :: * -> *) a. Emptiable t => t a
empty
				Just (T_U (Exactly e
_ :*: T_U (Reverse TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
left :*: TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
right)))
					-> Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Exactly
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall a. a -> Exactly a
Exactly Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
Nonempty Rose e
tree Exactly
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (Tape (TT Covariant Covariant Maybe (Construction Maybe))
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Reverse
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k). t a -> Reverse t a
Reverse (TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
left) Reverse
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe)))
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
right

			tree :: Nonempty Rose e
			tree :: Nonempty Rose e
tree = e
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct e
root (List
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
down

			updated :: (Tape List <::> Nonempty Rose) e -> (Exactly <:*:> Roses <:*:> List <::> Tape Roses) e
			updated :: (<::>)
  (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
  (Nonempty Rose)
  e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     e
updated (TT (T_U (Exactly (Construct new_root new_down) :*: T_U (Reverse List (Nonempty Rose e)
left_ :*: List (Nonempty Rose e)
right_)))) =
				e -> Exactly e
forall a. a -> Exactly a
Exactly e
new_root Exactly e
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction
                    (TT Covariant Covariant Maybe (Construction Maybe)))))))
     e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < Primary t a) < t a
unite List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
new_down TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction 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
					(List
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- (Maybe
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (i :: * -> *) target source.
(i target -> i target) -> Lens i source target -> source -> source
mutate ((Maybe
    (T_U
       Covariant
       Covariant
       (:*:)
       Exactly
       (Reverse
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        <:*:> TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       e)
  -> Maybe
       (T_U
          Covariant
          Covariant
          (:*:)
          Exactly
          (Reverse
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           <:*:> TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          e))
 -> Lens
      Maybe
      (List
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             <:*:> TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e))
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> (Maybe
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
    -> Maybe
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             <:*:> TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- (T_U
  Covariant
  Covariant
  (:*:)
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
update_sides (TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall k (t :: k -> *) (a :: k). t a -> Reverse t a
Reverse (List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction 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 List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
List (Nonempty Rose e)
left_) Reverse
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction 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 List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
List (Nonempty Rose e)
right_) (T_U
   Covariant
   Covariant
   (:*:)
   Exactly
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
    <:*:> TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   e
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> Maybe
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|-) (Lens
   Maybe
   (List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> Lens
     Maybe
     (List
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            <:*:> TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
((Lens
  < Topping (TT Covariant Covariant Maybe (Construction Maybe)))
 < List e)
< e
forall (structure :: * -> *) e.
Stack structure =>
((Lens < Topping structure) < structure e) < e
top @List (List
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> List
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  e
-> List
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  e
up

			update_sides :: (Reverse Roses <:*:> Roses) e -> Tape Roses e -> Tape Roses e
			update_sides :: T_U
  Covariant
  Covariant
  (:*:)
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
update_sides T_U
  Covariant
  Covariant
  (:*:)
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
sides T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
tape = T_U
  Covariant
  Covariant
  (:*:)
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall (i :: * -> *) source target.
i target -> Lens i source target -> source -> source
replace (T_U
   Covariant
   Covariant
   (:*:)
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)))))
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   e
 -> Lens
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
          <:*:> TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
      e
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- T_U
  Covariant
  Covariant
  (:*:)
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)))))
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
sides (Lens
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
    <:*:> TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
   e
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
-> Lens
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         <:*:> TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     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 'Rest structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Rest structure
sub @Rest (T_U
   Covariant
   Covariant
   (:*:)
   Exactly
   (Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
    <:*:> TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   e
 -> T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
       <:*:> TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      <:*:> TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- T_U
  Covariant
  Covariant
  (:*:)
  Exactly
  (Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   <:*:> TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
tape

-- TODO: Try to use substructure @Left . substructure @Right . substructure @Right here
-- instance Substructure (Left Siblings) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
-- 	type Substance (Left Siblings) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Reverse Roses
-- 	substructure = P_Q_T <-- \zipper -> case run @(->) <-|- run <-- lower zipper of
-- 		Exactly x :*: down :*: up -> Store
-- 			<--- (view (sub @Left) . view (sub @Rest) <-- up)
-- 				:*: \left' -> lift (Exactly x <:*:> down <:*:> mutate (mutate (constant left') (sub @Left)) (sub @Rest) up)

-- TODO: Try to use substructure  @Left . substructure @Right . substructure @Right . substructure @Right here
-- instance Substructure (Right Siblings) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
-- 	type Substance (Right Siblings) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Roses
	--substructure = P_Q_T <-- \zipper -> case run @(->) <-|-|-|- run @(->) <-|-|- run @(->) <-|- run <-- lower zipper of
	--	Exactly x :*: down :*: left :*: right :*: rest -> Store <--- right :*: lift . (Exactly x <:*:>) . (down <:*:>) . (left <:*:>) . (<:*:> rest)

--instance Morphable (Into (Exactly <:*:> Roses <:*:> List <::> Tape Roses)) (Construction List) where
	--type Morphing (Into (Exactly <:*:> Roses <:*:> List <::> Tape Roses)) (Construction List) = Exactly <:*:> Roses <:*:> List <::> Tape Roses
	--morphing nonempty_rose_tree = case premorph nonempty_rose_tree of
		--Construct x xs -> Exactly x <:*:> unite xs <:*:> empty <:*:> empty <:*:> empty

--instance Morphable (Rotate Up) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	--type Morphing (Rotate Up) (Exactly <:*:> Roses <:*:> List <::> Tape Roses) =
		--Maybe <::> (Exactly <:*:> Roses <:*:> List <::> Tape Roses)
	--morphing (premorph -> z) = TT <----- restruct <-|-- identity @(->) <-/- pop @List <~ run (view <-- sub @Ancestors <-- z) where
--
		---- TODO: Add type declaration
		--restruct (parents :*: parent) =
			--let child_node = extract <--- view <-- sub @Root <-- z in
			--let central_children = run <--- view <-- sub @Children <-- z in
			----let left_children = run @(->) <---- run <--- view <-- sub @(Left Siblings) <-- z in
			--let right_children = run <--- view <-- sub @(Right Siblings) <-- z in
			--view <-- sub @Root <-- parent
				-- <:*:> unite <-- left_children + point (Construct child_node central_children) + right_children
				-- <:*:> view <--- sub @(Left Branch) <--- view <-- sub @Rest <-- parent
				-- <:*:> view <--- sub @(Right Branch) <--- view <-- sub @Rest <-- parent
				-- <:*:> unite parents

instance Slidable Up (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Sliding Up (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Maybe
	slide :: forall e . State > Zipper Rose e :> Maybe >>> ()
	slide :: ((State > Zipper Rose e) :> Maybe) >>> ()
slide = (:>)
  (State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e))
  Maybe
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
   (State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e))
   Maybe
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> (:>)
         (State
            ((<:*:>)
               Exactly
               (T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
               e))
         Maybe
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Construction
       (TT Covariant Covariant Maybe (Construction 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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  (Zipper Rose e)
  e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Zipper Rose e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom @(Zipper Rose 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
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change ((Construction
    (TT Covariant Covariant Maybe (Construction Maybe)) e
  -> Construction
       (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a i. Kernel m => m a (m i a)
constant (Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
======<< Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (T_U
        Covariant
        Covariant
        (:*:)
        (Reverse
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
Nonempty Rose e
-> Tape
     (TT Covariant Covariant Maybe (Construction Maybe)
      <::> Nonempty Rose)
     e
-> Nonempty Rose e
merging
		(Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 -> Tape
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e
      -> Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (source :: * -> * -> *) (target :: * -> * -> *)
       (t :: * -> *) a b.
Covariant source target t =>
source a b -> target (t a) (t b)
<-|---- ((->)
 < State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Construction
       (TT Covariant Covariant Maybe (Construction 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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> ((->)
    < State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e)
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
   < (:>)
       (State
          ((<:*:>)
             Exactly
             (T_U
                Covariant
                Covariant
                (:*:)
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                (TT
                   Covariant
                   Covariant
                   (TT Covariant Covariant Maybe (Construction Maybe))
                   (Tape
                      (TT
                         Covariant
                         Covariant
                         (TT Covariant Covariant Maybe (Construction Maybe))
                         (Construction
                            (TT Covariant Covariant Maybe (Construction Maybe)))))))
             e))
       Maybe
       (Construction
          (TT Covariant Covariant Maybe (Construction Maybe)) 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 Rose e) ls
-> State (u ls) result -> State (Zipper Rose e) result
zoom @(Zipper Rose e) (Lens
   (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
   ((<:*:>)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      e)
   e
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Lens
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) 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 ('Focused 'Tree) structure,
 Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Tree) structure
sub @(Focused Tree) (State
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall s (t :: * -> *). Stateful s t => t s
current
		(:>)
  (State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e))
  Maybe
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
   -> Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (t :: * -> *) a b.
(Covariant (->) (->) t, Semimonoidal (-->) (:*:) (:*:) t) =>
t (a -> b) -> t a -> t b
<-*---- Maybe
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe
   (Tape
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> (Exactly
      (Maybe
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e))
    -> Maybe
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e))
-> Exactly
     (Maybe
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Exactly
  (Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
-> Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (t :: * -> *) a. Extractable t => t a -> a
extract (Exactly
   (Maybe
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e))))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Exactly
       (Maybe
          (Tape
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction 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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e))))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e))))
-> (Lens
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe))))))
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      e
    -> State
         ((<::>)
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))
            e)
         (Exactly
            (Maybe
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  e)))
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Exactly
            (Maybe
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  e))))
-> Lens
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              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))
.:.. forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
forall ls (u :: * -> *) result.
Lens u (Zipper Rose e) ls
-> State (u ls) result -> State (Zipper Rose e) result
zoom @(Zipper Rose e) (Lens
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe))))))
   ((<:*:>)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      e)
   e
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         e)
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e))))
-> Lens
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe))))))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              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
   ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      e)
   (Exactly
      (Maybe
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e))))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
  Exactly
  ((<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e)
  (List
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
   Exactly
   ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      e)
   (List
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
 -> State
      (Exactly
         (List
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         e)
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e))))
-> Lens
     Exactly
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (List
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Lens
  Exactly
  ((<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e)
  (List
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
   (Exactly
      (List
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
   (Exactly
      (Maybe
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         e)
      (Exactly
         (Maybe
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e))))
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State
  (List
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
  (Maybe
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Maybe
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook (forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
(State < List e)
< Topping (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (structure :: * -> *) e.
Stack structure =>
(State < structure e) < Topping structure e
pop @List) where

		merging :: Nonempty Rose e -> Tape (List <::> Nonempty Rose) e -> Nonempty Rose e
		merging :: Nonempty Rose e
-> Tape
     (TT Covariant Covariant Maybe (Construction Maybe)
      <::> Nonempty Rose)
     e
-> Nonempty Rose e
merging Nonempty Rose e
x (T_U (Exactly e
p :*: T_U (Reverse (<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Nonempty Rose)
  e
ls :*: (<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Nonempty Rose)
  e
rs))) =
			-- TODO: This is wrong, we should add left part in reverse order
			e
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (t :: * -> *) a.
a -> ((t :. Construction t) >>> a) -> Construction t a
Construct e
p (((TT Covariant Covariant Maybe (Construction Maybe)
   :. Construction
        (TT Covariant Covariant Maybe (Construction Maybe)))
  >>> e)
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
(<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Nonempty Rose)
  e
ls ((TT Covariant Covariant Maybe (Construction Maybe)
  :. Construction
       (TT Covariant Covariant Maybe (Construction Maybe)))
 >>> e)
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall a. Semigroup a => a -> a -> a
+ Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall (t :: * -> *) a. Pointable t => a -> t a
point Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
Nonempty Rose e
x ((TT Covariant Covariant Maybe (Construction Maybe)
  :. Construction
       (TT Covariant Covariant Maybe (Construction Maybe)))
 >>> e)
-> ((TT Covariant Covariant Maybe (Construction Maybe)
     :. Construction
          (TT Covariant Covariant Maybe (Construction Maybe)))
    >>> e)
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall a. Semigroup a => a -> a -> a
+ TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> (TT Covariant Covariant Maybe (Construction Maybe)
    :. Construction
         (TT Covariant Covariant Maybe (Construction Maybe)))
   >>> e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < t a) < Primary t a
run TT
  Covariant
  Covariant
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
(<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Nonempty Rose)
  e
rs

instance Slidable Left (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Sliding Left (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Maybe
	slide :: forall e . State > Zipper Rose e :> Maybe >>> ()
	slide :: ((State > Zipper Rose e) :> Maybe) >>> ()
slide = (:>)
  (State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e))
  Maybe
  ()
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
   (State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e))
   Maybe
   ()
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<------- Maybe ()
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe ()
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (Exactly (Maybe ()) -> Maybe ())
-> Exactly (Maybe ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Exactly (Maybe ()) -> Maybe ()
forall (t :: * -> *) a. Extractable t => t a -> a
extract
		(Exactly (Maybe ())
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Exactly (Maybe ())))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Exactly (Maybe ()))
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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Exactly (Maybe ())))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ())))
-> (Lens
      (TT
         Covariant
         Covariant
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      e
    -> State
         ((<::>)
            (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
            e)
         (Exactly (Maybe ()))
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Exactly (Maybe ())))
-> Lens
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
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))
.:.. forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
forall ls (u :: * -> *) result.
Lens u (Zipper Rose e) ls
-> State (u ls) result -> State (Zipper Rose e) result
zoom @(Zipper Rose e)
			(Lens
   (TT
      Covariant
      Covariant
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   ((<:*:>)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      e)
   e
 -> State
      ((<::>)
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly (Maybe ()))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly (Maybe ())))
-> Lens
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
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 ('Focused 'Forest) structure,
 Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Forest) structure
sub @(Focused Forest)
			(State
   ((<::>)
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e)
   (Exactly (Maybe ()))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly (Maybe ())))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Lens
  Exactly
  ((<::>)
     (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e)
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
   Exactly
   ((<::>)
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e)
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
       <:*:> TT Covariant Covariant Maybe (Construction Maybe))
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 -> State
      (Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
             <:*:> TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
      (Exactly (Maybe ()))
 -> State
      ((<::>)
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly (Maybe ())))
-> Lens
     Exactly
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- Lens
  Exactly
  ((<::>)
     (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e)
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
   (Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
          <:*:> TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)))
   (Exactly (Maybe ()))
 -> State
      ((<::>)
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly (Maybe ())))
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- State
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
  (Maybe ())
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook
				(State
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
       <:*:> TT Covariant Covariant Maybe (Construction Maybe))
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
   (Maybe ())
 -> State
      (Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
             <:*:> TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
      (Exactly (Maybe ())))
-> State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
     (Maybe ())
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- ((State
    (T_U
       Covariant
       Covariant
       (:*:)
       Exactly
       (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
        <:*:> TT Covariant Covariant Maybe (Construction Maybe))
       (Construction
          (TT Covariant Covariant Maybe (Construction Maybe)) e))
  :> Maybe)
 >>> ())
-> State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
     (Maybe ())
forall s result.
((State s :> Maybe) >>> result) -> State s (Maybe result)
probably (((State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
   :> Maybe)
  >>> ())
 -> State
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
          <:*:> TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
      (Maybe ()))
-> ((State
       (T_U
          Covariant
          Covariant
          (:*:)
          Exactly
          (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
           <:*:> TT Covariant Covariant Maybe (Construction Maybe))
          (Construction
             (TT Covariant Covariant Maybe (Construction Maybe)) e))
     :> Maybe)
    >>> ())
-> State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
     (Maybe ())
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (d :: k) (s :: * -> *) e.
Slidable d s =>
((State < s e) :> Sliding d s) >>> ()
forall (s :: * -> *) e.
Slidable 'Left s =>
((State < s e) :> Sliding 'Left s) >>> ()
slide @Left

instance Slidable Right (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Sliding Right (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Maybe
	slide :: forall e . State > Zipper Rose e :> Maybe >>> ()
	slide :: ((State > Zipper Rose e) :> Maybe) >>> ()
slide = (:>)
  (State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e))
  Maybe
  ()
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
   (State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e))
   Maybe
   ()
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<------- Maybe ()
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe ()
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (Exactly (Maybe ()) -> Maybe ())
-> Exactly (Maybe ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Exactly (Maybe ()) -> Maybe ()
forall (t :: * -> *) a. Extractable t => t a -> a
extract
		(Exactly (Maybe ())
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Exactly (Maybe ())))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Exactly (Maybe ()))
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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Exactly (Maybe ())))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ())))
-> (Lens
      (TT
         Covariant
         Covariant
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      e
    -> State
         ((<::>)
            (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
            e)
         (Exactly (Maybe ()))
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Exactly (Maybe ())))
-> Lens
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
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))
.:.. forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
forall ls (u :: * -> *) result.
Lens u (Zipper Rose e) ls
-> State (u ls) result -> State (Zipper Rose e) result
zoom @(Zipper Rose e)
			(Lens
   (TT
      Covariant
      Covariant
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   ((<:*:>)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      e)
   e
 -> State
      ((<::>)
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly (Maybe ()))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly (Maybe ())))
-> Lens
     (TT
        Covariant
        Covariant
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
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 ('Focused 'Forest) structure,
 Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Forest) structure
sub @(Focused Forest)
			(State
   ((<::>)
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e)
   (Exactly (Maybe ()))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly (Maybe ())))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<----- Lens
  Exactly
  ((<::>)
     (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e)
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
   Exactly
   ((<::>)
      (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e)
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
       <:*:> TT Covariant Covariant Maybe (Construction Maybe))
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 -> State
      (Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
             <:*:> TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
      (Exactly (Maybe ()))
 -> State
      ((<::>)
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly (Maybe ())))
-> Lens
     Exactly
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- Lens
  Exactly
  ((<::>)
     (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e)
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
   (Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
          <:*:> TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)))
   (Exactly (Maybe ()))
 -> State
      ((<::>)
         (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly (Maybe ())))
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
-> State
     ((<::>)
        (Tape (TT Covariant Covariant Maybe (Construction Maybe)))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- State
  (T_U
     Covariant
     Covariant
     (:*:)
     Exactly
     (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
      <:*:> TT Covariant Covariant Maybe (Construction Maybe))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
  (Maybe ())
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook
				(State
   (T_U
      Covariant
      Covariant
      (:*:)
      Exactly
      (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
       <:*:> TT Covariant Covariant Maybe (Construction Maybe))
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
   (Maybe ())
 -> State
      (Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            Exactly
            (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
             <:*:> TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
      (Exactly (Maybe ())))
-> State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
     (Maybe ())
-> State
     (Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           Exactly
           (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
            <:*:> TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly (Maybe ()))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- ((State
    (T_U
       Covariant
       Covariant
       (:*:)
       Exactly
       (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
        <:*:> TT Covariant Covariant Maybe (Construction Maybe))
       (Construction
          (TT Covariant Covariant Maybe (Construction Maybe)) e))
  :> Maybe)
 >>> ())
-> State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
     (Maybe ())
forall s result.
((State s :> Maybe) >>> result) -> State s (Maybe result)
probably (((State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
   :> Maybe)
  >>> ())
 -> State
      (T_U
         Covariant
         Covariant
         (:*:)
         Exactly
         (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
          <:*:> TT Covariant Covariant Maybe (Construction Maybe))
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
      (Maybe ()))
-> ((State
       (T_U
          Covariant
          Covariant
          (:*:)
          Exactly
          (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
           <:*:> TT Covariant Covariant Maybe (Construction Maybe))
          (Construction
             (TT Covariant Covariant Maybe (Construction Maybe)) e))
     :> Maybe)
    >>> ())
-> State
     (T_U
        Covariant
        Covariant
        (:*:)
        Exactly
        (Reverse (TT Covariant Covariant Maybe (Construction Maybe))
         <:*:> TT Covariant Covariant Maybe (Construction Maybe))
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
     (Maybe ())
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- forall k (d :: k) (s :: * -> *) e.
Slidable d s =>
((State < s e) :> Sliding d s) >>> ()
forall (s :: * -> *) e.
Slidable 'Right s =>
((State < s e) :> Sliding 'Right s) >>> ()
slide @Right

instance Slidable Down (Exactly <:*:> Roses <:*:> List <::> Tape Roses) where
	type Sliding Down (Exactly <:*:> Roses <:*:> List <::> Tape Roses) = Maybe
	slide :: forall e . State > Zipper Rose e :> Maybe >>> ()
	slide :: ((State > Zipper Rose e) :> Maybe) >>> ()
slide = (:>)
  (State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e))
  Maybe
  (Exactly
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
forall (t :: * -> *) a. Covariant (->) (->) t => t a -> t ()
void ((:>)
   (State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e))
   Maybe
   (Exactly
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> (:>)
         (State
            ((<:*:>)
               Exactly
               (T_U
                  Covariant
                  Covariant
                  (:*:)
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Tape
                        (TT
                           Covariant
                           Covariant
                           (TT Covariant Covariant Maybe (Construction Maybe))
                           (Construction
                              (TT Covariant Covariant Maybe (Construction Maybe)))))))
               e))
         Maybe
         (Exactly
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e)))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Exactly
       (Tape
          (TT
             Covariant
             Covariant
             (TT Covariant Covariant Maybe (Construction Maybe))
             (Construction (TT Covariant Covariant Maybe (Construction 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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Exactly
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e)))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Exactly
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe))))))
  (Zipper Rose e)
  e
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
-> State
     (Zipper Rose e)
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom @(Zipper Rose e) (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
   ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)))))
      e)
   (Exactly
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
 -> State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Exactly
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         ((<::>)
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))
            e)
         (Exactly
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
  Exactly
  ((<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e)
  (List
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom Lens
  Exactly
  ((<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     e)
  (List
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
   (Exactly
      (List
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
   (Exactly
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)))))
         e)
      (Exactly
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         (Exactly
            (List
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
                  e)))
         (Exactly
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction
                 (TT Covariant Covariant Maybe (Construction Maybe)))))
        e)
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. State
  (List
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e))
  (Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e)
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook (State
   (List
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
   (Tape
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
 -> State
      (Exactly
         (List
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e)))
      (Exactly
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e)))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         (List
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               e))
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     (Exactly
        (List
           (Tape
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              e)))
     (Exactly
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
e -> (State < List e) < e
forall (structure :: * -> *) e.
Stack structure =>
e -> (State < structure e) < e
push @List (Tape
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   e
 -> State
      (List
         (Tape
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            e))
      (Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> Tape
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     (List
        (Tape
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           e))
     (Tape
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
        e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
ancestor
		(Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      ())
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     ()
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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Construction
       (TT Covariant Covariant Maybe (Construction 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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Lens
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  (Zipper Rose e)
  e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Zipper Rose e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom @(Zipper Rose 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
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> State
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. (Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 -> Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall s (t :: * -> *). Stateful s t => (s -> s) -> t s
change ((Construction
    (TT Covariant Covariant Maybe (Construction Maybe)) e
  -> Construction
       (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e
    -> Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (m :: * -> * -> *) a i. Kernel m => m a (m i a)
constant
		(Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (source :: * -> * -> *) (t :: * -> *) a b.
Bindable source t =>
source a (t b) -> source (t a) (t b)
====<< Maybe
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (cat :: * -> * -> *) (t :: (* -> *) -> * -> *) (u :: * -> *)
       a.
(Liftable cat t, Covariant cat cat u) =>
cat (u a) (t u a)
lift (Maybe
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (Exactly
      (Maybe
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
    -> Maybe
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Exactly
     (Maybe
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (m :: * -> * -> *) b c a.
Semigroupoid m =>
m b c -> m a b -> m a c
. Exactly
  (Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (t :: * -> *) a. Extractable t => t a -> a
extract (Exactly
   (Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) 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
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e))))
< (:>)
    (State
       ((<:*:>)
          Exactly
          (T_U
             Covariant
             Covariant
             (:*:)
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
             (TT
                Covariant
                Covariant
                (TT Covariant Covariant Maybe (Construction Maybe))
                (Tape
                   (TT
                      Covariant
                      Covariant
                      (TT Covariant Covariant Maybe (Construction Maybe))
                      (Construction
                         (TT Covariant Covariant Maybe (Construction Maybe)))))))
          e))
    Maybe
    (Exactly
       (Maybe
          (Construction
             (TT Covariant Covariant Maybe (Construction 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
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
 < (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> (Lens
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      ((<:*:>)
         Exactly
         (T_U
            Covariant
            Covariant
            (:*:)
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
            (TT
               Covariant
               Covariant
               (TT Covariant Covariant Maybe (Construction Maybe))
               (Tape
                  (TT
                     Covariant
                     Covariant
                     (TT Covariant Covariant Maybe (Construction Maybe))
                     (Construction
                        (TT Covariant Covariant Maybe (Construction Maybe)))))))
         e)
      e
    -> State
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)
         (Exactly
            (Maybe
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)) e)))
    -> State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e)
         (Exactly
            (Maybe
               (Construction
                  (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> Lens
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) 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))
.:.. forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
forall ls (u :: * -> *) result.
Lens u (Zipper Rose e) ls
-> State (u ls) result -> State (Zipper Rose e) result
zoom @(Zipper Rose e) (Lens
   (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
   ((<:*:>)
      Exactly
      (T_U
         Covariant
         Covariant
         (:*:)
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
         (TT
            Covariant
            Covariant
            (TT Covariant Covariant Maybe (Construction Maybe))
            (Tape
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction
                     (TT Covariant Covariant Maybe (Construction Maybe)))))))
      e)
   e
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> Lens
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     ((<:*:>)
        Exactly
        (T_U
           Covariant
           Covariant
           (:*:)
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
           (TT
              Covariant
              Covariant
              (TT Covariant Covariant Maybe (Construction Maybe))
              (Tape
                 (TT
                    Covariant
                    Covariant
                    (TT Covariant Covariant Maybe (Construction Maybe))
                    (Construction
                       (TT Covariant Covariant Maybe (Construction Maybe)))))))
        e)
     e
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) 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 ('Focused 'Tree) structure,
 Covariant (->) (->) structure) =>
structure @>>> Substance ('Focused 'Tree) structure
sub @(Focused Tree)
			(State
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
   (Exactly
      (Maybe
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)))
 -> (:>)
      (State
         ((<:*:>)
            Exactly
            (T_U
               Covariant
               Covariant
               (:*:)
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
               (TT
                  Covariant
                  Covariant
                  (TT Covariant Covariant Maybe (Construction Maybe))
                  (Tape
                     (TT
                        Covariant
                        Covariant
                        (TT Covariant Covariant Maybe (Construction Maybe))
                        (Construction
                           (TT Covariant Covariant Maybe (Construction Maybe)))))))
            e))
      Maybe
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> (:>)
     (State
        ((<:*:>)
           Exactly
           (T_U
              Covariant
              Covariant
              (:*:)
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
              (TT
                 Covariant
                 Covariant
                 (TT Covariant Covariant Maybe (Construction Maybe))
                 (Tape
                    (TT
                       Covariant
                       Covariant
                       (TT Covariant Covariant Maybe (Construction Maybe))
                       (Construction
                          (TT Covariant Covariant Maybe (Construction Maybe)))))))
           e))
     Maybe
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<---- Lens
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
  e
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
   (TT
      Covariant
      Covariant
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
   (Construction
      (TT Covariant Covariant Maybe (Construction Maybe)) e)
   e
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> Lens
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     e
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) 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 'Rest structure, Covariant (->) (->) structure) =>
structure @>>> Substance 'Rest structure
sub @Rest (State
   ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e)
   (Exactly
      (Maybe
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)))
 -> State
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> State
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<--- Lens
  Exactly
  ((<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e)
  (List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (List
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall bg ls (u :: * -> *) result.
Lens u bg ls -> State (u ls) result -> State bg result
zoom (Lens
   Exactly
   ((<::>)
      (TT Covariant Covariant Maybe (Construction Maybe))
      (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
      e)
   (List
      (Construction
         (TT Covariant Covariant Maybe (Construction Maybe)) e))
 -> State
      (Exactly
         (List
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e)))
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> Lens
     Exactly
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (List
        (Construction
           (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (List
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- Lens
  Exactly
  ((<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e)
  (List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
forall (t :: * -> *) a.
Interpreted (->) t =>
(Lens Exactly < t a) < Primary t a
primary (State
   (Exactly
      (List
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)))
   (Exactly
      (Maybe
         (Construction
            (TT Covariant Covariant Maybe (Construction Maybe)) e)))
 -> State
      ((<::>)
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
         e)
      (Exactly
         (Maybe
            (Construction
               (TT Covariant Covariant Maybe (Construction Maybe)) e))))
-> State
     (Exactly
        (List
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
-> State
     ((<::>)
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
        e)
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- State
  (List
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
  (Maybe
     (Construction
        (TT Covariant Covariant Maybe (Construction Maybe)) e))
-> State
     (Exactly
        (List
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
     (Exactly
        (Maybe
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)) e)))
forall (t :: * -> *) s result.
(Covariant (->) (->) t, Semimonoidal (<--) (:*:) (:*:) t) =>
State s result -> State (t s) (t result)
overlook (forall e.
Stack (TT Covariant Covariant Maybe (Construction Maybe)) =>
(State < List e)
< Topping (TT Covariant Covariant Maybe (Construction Maybe)) e
forall (structure :: * -> *) e.
Stack structure =>
(State < structure e) < Topping structure e
pop @List) where

		ancestor :: Construction List e -> Tape Roses e
		ancestor :: Construction (TT Covariant Covariant Maybe (Construction Maybe)) e
-> Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
ancestor (Construct e
x List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
xs) = e -> Exactly e
forall a. a -> Exactly a
Exactly e
x Exactly e
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
-> Tape
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> (<::>)
  (TT Covariant Covariant Maybe (Construction Maybe))
  (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
  e
-> Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall k (t :: k -> *) (a :: k). t a -> Reverse t a
Reverse ((<::>)
   (TT Covariant Covariant Maybe (Construction Maybe))
   (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
   e
 -> Reverse
      (TT
         Covariant
         Covariant
         (TT Covariant Covariant Maybe (Construction Maybe))
         (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
      e)
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
-> Reverse
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall (m :: * -> * -> *) a b. Category m => m (m a b) (m a b)
<-- List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < Primary t a) < t a
unite List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
forall (t :: * -> *) a. Emptiable t => t a
empty Reverse
  (TT
     Covariant
     Covariant
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
  e
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
-> T_U
     Covariant
     Covariant
     (:*:)
     (Reverse
        (TT
           Covariant
           Covariant
           (TT Covariant Covariant Maybe (Construction Maybe))
           (Construction
              (TT Covariant Covariant Maybe (Construction Maybe)))))
     (TT
        Covariant
        Covariant
        (TT Covariant Covariant Maybe (Construction Maybe))
        (Construction (TT Covariant Covariant Maybe (Construction Maybe))))
     e
forall k (t :: k -> *) (a :: k) (u :: k -> *).
t a -> u a -> (t <:*:> u) >>>>>> a
<:*:> List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
-> (<::>)
     (TT Covariant Covariant Maybe (Construction Maybe))
     (Construction (TT Covariant Covariant Maybe (Construction Maybe)))
     e
forall (m :: * -> * -> *) (t :: * -> *) a.
Interpreted m t =>
(m < Primary t a) < t a
unite List
  (Construction
     (TT Covariant Covariant Maybe (Construction Maybe)) e)
xs