Identity data structure in Haskell