LHasLength : Nat -> List a -> Typedata HasLength : Nat -> SnocList a -> TypehasLength : HasLength n sx -> length sx = nmap : (f : (a -> b)) -> HasLength n xs -> HasLength n (map f xs)sucL : HasLength n sx -> HasLength (S n) ([<x] ++ sx)sucR : HasLength n sx -> HasLength (S n) (sx ++ [<x])hlAppend : HasLength m sx -> HasLength n sy -> HasLength (n + m) (sx ++ sy)hlFish : HasLength m sx -> LHasLength n ys -> HasLength (n + m) (sx <>< ys)mkHasLength : (sx : SnocList a) -> HasLength (length sx) sxhlChips : HasLength m sx -> LHasLength n ys -> LHasLength (m + n) (sx <>> ys)cast : (0 _ : length sx = length sy) -> HasLength m sx -> HasLength m syhlReverse : HasLength m acc -> HasLength m (reverse acc)