{-| Module : MyPenultimate Description : Get penultimate entry of a list Copyright : © Frank Jung, 2020 License : GPL-3 Get the penultimate of a list. -} module MyPenultimate (penultimate) where -- | Get second to last element of a list. penultimate :: [a] -> Maybe a penultimate :: forall a. [a] -> Maybe a penultimate [] = Maybe a forall a. Maybe a Nothing penultimate [a _] = Maybe a forall a. Maybe a Nothing penultimate [a a,a _] = a -> Maybe a forall a. a -> Maybe a Just a a penultimate (a _:[a] as) = [a] -> Maybe a forall a. [a] -> Maybe a penultimate [a] as