News for hackers. Stuff that matters.
Re:Functors, Applicatives, and Monads in Pictures (2013) by zaptheimpaler on Thursday September 24, 2015 @04:07AM (#10270419)
I don't understand one thing about this notation:

   fun :: A -> B -> C -> D
can be bracketed in a bunch of different ways -

   fun1 :: (A -> B) -> (C -> D)
   fun2 :: A -> (B -> C -> D)
etc. and don't these all mean different things?

fun1 would take a function and return a function, whereas fun2 takes an A and returns a curried function of B,C -> D.

Re:Functors, Applicatives, and Monads in Pictures (2013) by Muphrid on Thursday September 24, 2015 @11:57AM (#10272324)
The order of operations here is "right associative". So

  A -> B -> C -> D
is equivalent to any of the following

  A -> (B -> C -> D)
  A -> (B -> (C -> D))
  A -> B -> (C -> D)
They're equivalent through currying. But you can only add or remove parentheses for stuff that is on the right of a function arrow. (A -> B) -> (C -> D) is a different thing.
Re:Functors, Applicatives, and Monads in Pictures (2013) by dwenzek on Thursday September 24, 2015 @04:10AM (#10270435)
Read:

   fun :: A -> (B -> (C ->D))
Re:Functors, Applicatives, and Monads in Pictures (2013) by kryptiskt on Thursday September 24, 2015 @08:16AM (#10271163)
Yes, functions need to be bracketed, as they are single arguments with a complex type.