A simple pure LRU cache written in Haskell