[GHC] #9250: let makes function too much specific

GHC ghc-devs at haskell.org
Sun Jun 29 23:23:55 UTC 2014


#9250: let makes function too much specific
--------------------------+------------------------------------------------
       Reporter:          |             Owner:
  KommuSoft               |            Status:  new
           Type:  bug     |         Milestone:
       Priority:  low     |           Version:  7.6.3
      Component:          |  Operating System:  Unknown/Multiple
  Compiler                |   Type of failure:  Incorrect result at runtime
       Keywords:          |         Test Case:
   Architecture:  x86_64  |          Blocking:
  (amd64)                 |
     Difficulty:          |
  Unknown                 |
     Blocked By:          |
Related Tickets:          |
--------------------------+------------------------------------------------
 Say you define a `myadd` function:

     let myadd x y = x + y

 Then the type is `Num a => a -> a -> a`. If on the other hand, you define
 the method using currying:

     let myadd2 \x -> \y -> x + y

 The type is more specific: `Integer -> Integer -> Integer`. Strangely
 enough `:t \x -> \y -> x + y` returns the more general form.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9250>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list