Built with Alectryon, running Coq+SerAPI v8.16.0+0.16.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
From Tealeaves Require Import
Classes.Kleisli.TraversableMonad
Classes.Coalgebraic.TraversableMonad
Functors.Early.Batch.Import Functors.Early.Batch.Notations.Import Kleisli.TraversableMonad.Notations.#[local] Generalizable VariablesG U T M A B.#[local] Arguments batch {A} (B)%type_scope _.#[local] Arguments toBatch6 {T U}%function_scope {ToBatch6}
{A} (B)%type_scope _.(** * Coalgebraic Traversable Monads *)(**********************************************************************)(** ** Derived Operations *)(**********************************************************************)ModuleDerivedOperations.#[export] InstanceToBatch6_Bindt `{Bindt T U}
: Coalgebraic.TraversableMonad.ToBatch6 T U :=
(funAB => bindt (G := Batch A (T B)) (batch (T B)):
U A -> Batch A (T B) (U B)).EndDerivedOperations.ClassCompat_ToBatch6_Bindt
(T: Type -> Type)
(U: Type -> Type)
`{Bindt_TU: Bindt T U}
`{ToBatch6_TU: ToBatch6 T U} :=
compat_toBatch6_bindt:
ToBatch6_TU = DerivedOperations.ToBatch6_Bindt.
T, U: Type -> Type Bindt_TU: Bindt T U ToBatch6_TU: ToBatch6 T U H: Compat_ToBatch6_Bindt T U
forallAB : Type, toBatch6 B = bindt (batch (T B))
T, U: Type -> Type Bindt_TU: Bindt T U ToBatch6_TU: ToBatch6 T U H: Compat_ToBatch6_Bindt T U
forallAB : Type, toBatch6 B = bindt (batch (T B))
T, U: Type -> Type Bindt_TU: Bindt T U ToBatch6_TU: ToBatch6 T U H: Compat_ToBatch6_Bindt T U A, B: Type
toBatch6 B = bindt (batch (T B))
T, U: Type -> Type Bindt_TU: Bindt T U ToBatch6_TU: ToBatch6 T U H: Compat_ToBatch6_Bindt T U A, B: Type
DerivedOperations.ToBatch6_Bindt A B =
bindt (batch (T B))
reflexivity.Qed.#[export] InstanceCompat_ToBatch6_Bindt_Self
`{Bindt T U}: Compat_ToBatch6_Bindt T U
(ToBatch6_TU := DerivedOperations.ToBatch6_Bindt)
:= ltac:(hnf; reflexivity).ModuleDerivedInstances.Sectionto_coalgebraic.Context
`{Kleisli.TraversableMonad.TraversableMonad T}
`{Map U}
`{Bindt T U}
`{! Compat_Map_Bindt T U}
`{! Kleisli.TraversableMonad.TraversableRightPreModule T U}.Context
`{ToBatch6 T T}
`{ToBatch6 T U}
`{! Compat_ToBatch6_Bindt T U}
`{! Compat_ToBatch6_Bindt T T}.(** ** <<double_batch6>> as <<batch ⋆6 batch>> *)(******************************************************************)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallABC : Type,
double_batch6 = batch (T C) ⋆6 batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallABC : Type,
double_batch6 = batch (T C) ⋆6 batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
double_batch6 = batch (T C) ⋆6 batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallAB : Type, toBatch6 B ∘ ret = batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallAB : Type, toBatch6 B ∘ ret = batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B: Type
toBatch6 B ∘ ret = batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B: Type
bindt (batch (T B)) ∘ ret = batch (T B)
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B: Type
batch (T B) = batch (T B)
reflexivity.Qed.
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallA : Type,
extract_Batch ∘ mapfst_Batch ret ∘ toBatch6 A = id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallA : Type,
extract_Batch ∘ mapfst_Batch ret ∘ toBatch6 A = id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
extract_Batch ∘ mapfst_Batch ret ∘ toBatch6 A = id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
extract_Batch ∘ (mapfst_Batch ret ∘ toBatch6 A) = id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
extract_Batch
∘ (mapfst_Batch ret ∘ bindt (batch (T A))) = id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
extract_Batch ∘ bindt (mapfst_Batch ret ∘ batch (T A)) =
id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
bindt
(extract_Batch ∘ (mapfst_Batch ret ∘ batch (T A))) =
id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
bindt (extract_Batch ∘ mapfst_Batch ret ∘ batch (T A)) =
id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
extract_Batch ∘ mapfst_Batch ret ∘ batch (T A) = ret
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type cut: extract_Batch ∘ mapfst_Batch ret ∘ batch (T A) =
ret
bindt (extract_Batch ∘ mapfst_Batch ret ∘ batch (T A)) =
id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type
extract_Batch ∘ mapfst_Batch ret ∘ batch (T A) = ret
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type a: A
(extract_Batch ∘ mapfst_Batch ret ∘ batch (T A)) a =
ret a
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type a: A
extract_Batch (mapfst_Batch ret (batch (T A) a)) =
ret a
reflexivity.
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type cut: extract_Batch ∘ mapfst_Batch ret ∘ batch (T A) =
ret
bindt (extract_Batch ∘ mapfst_Batch ret ∘ batch (T A)) =
id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type cut: extract_Batch ∘ mapfst_Batch ret ∘ batch (T A) =
ret
bindt ret = id
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A: Type cut: extract_Batch ∘ mapfst_Batch ret ∘ batch (T A) =
ret
id = id
reflexivity.Qed.
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallABC : Type,
cojoin_Batch6 A B C ∘ toBatch6 C =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T
forallABC : Type,
cojoin_Batch6 A B C ∘ toBatch6 C =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
cojoin_Batch6 A B C ∘ toBatch6 C =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
cojoin_Batch6 A B C ∘ bindt (batch (T C)) =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
cojoin_Batch6 A B C ∘ bindt (batch (T C)) =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
bindt (cojoin_Batch6 A B C ∘ batch (T C)) =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
bindt (cojoin_Batch6 A B C ∘ batch (T C)) =
map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
bindt double_batch6 = map (toBatch6 C) ∘ toBatch6 B
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
T: Type -> Type Return_T: Return T Bindt_TT: Bindt T T H: Kleisli.TraversableMonad.TraversableMonad T U: Type -> Type H0: Map U H1: Bindt T U Compat_Map_Bindt0: Compat_Map_Bindt T U H2: Kleisli.TraversableMonad.TraversableRightPreModule
T U H3: ToBatch6 T T H4: ToBatch6 T U Compat_ToBatch6_Bindt0: Compat_ToBatch6_Bindt T U Compat_ToBatch6_Bindt1: Compat_ToBatch6_Bindt T T A, B, C: Type
bindt (batch (T C) ⋆6 batch (T B)) =
bindt (batch (T C) ⋆6 batch (T B))
reflexivity.Qed.Endto_coalgebraic.(** ** Typeclass Instances *)(********************************************************************)Sectioninstances.Context
`{Return T}
`{Map T}
`{Bindt T T}
`{! Compat_Map_Bindt T T}
`{! Kleisli.TraversableMonad.TraversableMonad T}
`{Map U}
`{Bindt T U}
`{! Compat_Map_Bindt T U}
`{! Kleisli.TraversableMonad.TraversableRightPreModule T U}.Context
`{ToBatch6 T T}
`{ToBatch6 T U}
`{! Compat_ToBatch6_Bindt T U}
`{! Compat_ToBatch6_Bindt T T}.#[export] Instance:
Coalgebraic.TraversableMonad.TraversableRightPreModule T T :=
{| trfm_extract := toBatch6_extract_Kleisli;
trfm_duplicate := toBatch6_duplicate_Kleisli;
|}.#[export] InstanceCoalgebraic_TraversableRightPreModule_of_Kleisli:
Coalgebraic.TraversableMonad.TraversableRightPreModule T U :=
{| trfm_extract := toBatch6_extract_Kleisli;
trfm_duplicate := toBatch6_duplicate_Kleisli;
|}.#[export] InstanceCoalgebraic_TraversableMonad_of_Kleisli:
Coalgebraic.TraversableMonad.TraversableMonad T :=
{| trfm_ret := toBatch6_ret_Kleisli;
|}.#[export] InstanceCoalgebraic_TraversableRightModule_of_Kleisli:
Coalgebraic.TraversableMonad.TraversableRightModule T U :=
{| trfmod_monad := _
|}.Endinstances.EndDerivedInstances.