0 | module CatenableList
 1 |
 2 | %default total
 3 |
 4 | public export
 5 | interface CatenableList (c : Type -> Type) where
 6 |   empty : c a
 7 |   isEmpty : c a -> Bool
 8 |
 9 |   cons : a -> c a -> c a
10 |   snoc : c a -> a -> c a
11 |   (++) : c a -> c a -> c a
12 |
13 |   head : c a -> a
14 |   tail : c a -> c a
15 |