data CatList : (Type -> Type) -> Type -> Type
E : CatList q a
C : a -> q (Lazy (CatList q a)) -> CatList q a
Queue q => CatenableList (CatList q)