Noem de drie vormen van genericiteit in Haskell