[Haskell-cafe] New type of ($) operator in GHC 8.0 is problematic

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Sun Feb 7 11:46:16 UTC 2016

On 7 February 2016 at 22:08, Geraldus <heraldhoi at gmail.com> wrote:
> Hi, friends! I want to share my own feelings about type signatures. It is
> always hard for me to read type signatures with class constraints, because
> first I need to spot that there is =>, then I have to split type signature
> in my mind to constraint part and actual signature part. I think having
> constraints before signature when defining things is something that eases
> source parsing and etc., but wouldn't type signatures become a bit more
> readable if we put constraints after actual signature when printing it in
> GHCi (and maybe in Haddock), e.g.:
> ($) :: (a -> b) -> a -> b
>     forall r :: RuntimeRep
>            a :: *
>            b :: TYPE r

If this is only how ghci types/prints it, then it makes it much more
difficult (if not impossible) to just copy/paste the resulting type
into your code.

This also makes it much more verbose: it might be useful for longer
type signatures (especially with large constraints) but not for the
majority of them.  I also like being able to see the constraints first
so that I know what they are before reading the actual type.

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Haskell-Cafe mailing list