Palindrome Test
Test if a list is a palindrome, in an unnecessarily complicated way.
module Palindrome where
isPal :: Eq a => [a] -> Bool
= go xs xs (const True) where
isPal xs :ys) (_:_:zs) k = go ys zs (\(z:zzs) -> y == z && k zzs)
go (y:ys) [_] k = k ys
go (_= k ys go ys [] k