[GHC] #8119: better type inference for lambdas
GHC
ghc-devs at haskell.org
Thu Aug 8 18:28:33 CEST 2013
#8119: better type inference for lambdas
-------------------------------------------+-------------------------------
Reporter: dmwit | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler (Type checker) | Version: 7.6.3
Keywords: | Operating System:
Architecture: Unknown/Multiple | Unknown/Multiple
Difficulty: Unknown | Type of failure:
Blocked By: | None/Unknown
Related Tickets: | Test Case:
| Blocking:
-------------------------------------------+-------------------------------
With the following code in a file:
{{{
{-# LANGUAGE TypeFamilies #-}
class Test a where test :: a
instance (a ~ Int, b ~ Int) => Test (a -> b) where test = id
}}}
We can tell ghci that {{{test}}} is a function (and nothing more) in two
different ways:
{{{
*Main> :t test `asTypeOf` (undefined :: a -> b)
test `asTypeOf` (undefined :: a -> b) :: Int -> Int
*Main> :t \x -> test x
\x -> test x :: Test (t1 -> t) => t1 -> t
}}}
The type inferred for {{{\x -> test x}}} is very disappointing in
comparison! A similar example can be cooked up with MPTCs and functional
dependencies; see also http://lpaste.net/91534 for some (still quite
abstract, of course) motivation.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8119>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list