snocAppendFishAssociative : (sx : SnocList a) -> (sy : SnocList a) -> (zs : List a) -> (sx ++ sy) <>< zs = sx ++ (sy <>< zs)snocAppendAsFish : (sx : SnocList a) -> (sy : SnocList a) -> sx ++ sy = sx <>< cast sylookup : Eq a => a -> SnocList (a, b) -> Maybe blengthDistributesOverFish : (sx : SnocList a) -> (ys : List a) -> length (sx <>< ys) = length sx + length ys