Tell me more about other abstractions that are present in Haskell