{-# htermination foldr :: (a -> b -> b) -> b -> [a] -> b #-}