[Haskell-cafe] Origins of '$'

Don Stewart dons at galois.com
Sat Dec 6 23:49:34 EST 2008

> Hello Haskell-Café:
> This is a little bit random, but I was just wondering if anyone knew
> where the $ low-precedence parenthesis-eliminating application operator
> originated. The Haskell Report doesn't mention anything, and I can't
> search for "$" on Google. So... who thought it up? Does it originate in
> an earlier language, or is it uniquely Haskellish? :)

If in doubt, you can search the early archives.


Early on there is a discussion about using $ for module import
    use ' or $ for module qualifiers.  The former would require

But then by 91 we start to see things take shape,

    haskell report version 1.1: beta-to-beta2
    Will Partain 

    11 Jun 91 20:41
    - ($$)          :: (a -> b) -> a -> b
    - f $$ a            =  f a

Where '$$' was removed from the draft 1.1 report.

Then  in the following thread we start to see the emergence of the low
fixity $ that we know today. This is the first reference to it that I
can find in the list:

    syntax change
    Paul Hudak 

    Sun, 1 Dec 1991 21:16:00 +0000
    About the fixity of $

    | The problem is that V1.1 does not allow things like:
    | f x $ \y->
    | g y $
    | ...
    | where the fixity of $ is defined as:
    | infixr 0 $

Which suggests that $ was already in the 1.0 report going to SIGPLAN.
Perhaps Paul or Simon could shed light on it? Anyone have the 1.0 report
lying around to check if it was in earlier?

Paul reiterates this in Aug 1992,


    Of course, if you really don't like the parens, you can always write
    your example as:

      f $ x!i

    where ($) is defined in the prelude as:

      infixr 0 $
      f $ x = f x

-- Don

More information about the Haskell-Cafe mailing list