module M where import qualified Data.List as List last_cur :: [a] -> a last_cur xs = last xs last_unsnoc :: [a] -> Maybe a last_unsnoc xs = fmap snd (List.unsnoc xs) init_cur :: [a] -> [a] init_cur xs = init xs init_unsnoc :: [a] -> Maybe [a] init_unsnoc xs = fmap fst (List.unsnoc xs)