using '::' instead of ':' in Haskell type signatures was a mistake