The Semigroup instance and append in #30 are implemented as foldl snoc that appends successive elements from the CatQueue on the right. In most cases, that's probably what you'd want. One could also implement a prepend as a reverse and foldl cons of elements from the left CatQueue.
The
Semigroupinstance andappendin #30 are implemented asfoldl snocthat appends successive elements from theCatQueueon the right. In most cases, that's probably what you'd want. One could also implement a prepend as areverseandfoldl consof elements from the leftCatQueue.