haskell bsp