(* Definition KCmap i o (k : KleeneCoalg i o) a b (f : i a -> i b) (x : o a) : o b := let s := k _ _ x in peek (Vector.map f (pos s)). *)
Section Traversable.
Variable t : Type -> Type.
Variable traverse : KleeneCoalg (fun x => x) t.
Definition size a (x:t a) : nat := dim (traverse a a x).

Lemma size_preservation a b (x: t a) v :
size (peek (k:=traverse a b x) v) = size x.