packages feed

hermit-0.5.0.0: examples/last/Last.hs

{-# LANGUAGE CPP #-}
module Main where

#if __GLASGOW_HASKELL__ < 708
import Data.Function (fix)
#endif

import Prelude hiding (last)

-------------------------------------------------

unwrap         :: ([a] -> a) -> a -> [a] -> a
unwrap f a as  = f (a:as)

wrap           :: (a -> [a] -> a) -> [a] -> a
wrap f []      = undefined
wrap f (a:as)  = f a as

last           :: [a] -> a
last []        = undefined
last [a]       = a
last (_:a:as)  = last (a:as)

main :: IO ()
main = print (last "hello")

-------------------------------------------------