snoc :: [a] -> a -> [a] snoc [] a = [a] snoc (h : t) a = h : t `snoc` a lsplit :: Eq a => a -> [a] -> [[a]] ls