Definition Vector (n : nat) : Traversal.Definition impure a b (x : a) : KleeneStore a b b :=
  kleeneStore (fun v => Vector.hd v) (Vector.cons _ x _ (Vector.nil _)).

(* Specifications: *)
Lemma research_impure (F:Applicative) a b (h : a -> F b) (x : a) : research h (impure b x) = h x.
Lemma traversal_coalg_extract a (x: T a) : extractIT _ _ (traversal_coalg _ x) = x.
Lemma traversal_coalg_duplicate a b c (x: T a) : duplicateIT a b c _ (traversal_coalg c x) = KSmap (traversal_coalg c) (traversal_coalg b x).