logo       

Re: Using implicit parameter constraints in data decl: msg#00011

lang.haskell.glasgow.bugs

Subject: Re: Using implicit parameter constraints in data decl

On Sunday 07 November 2004 20:09, Simon Peyton-Jones wrote:
| Definitely a bug. Could you pls make a small module that elicits the
| bug, and send it to me?

Here it is:

> module Test where
>
> data Test = (?val::Bool) => Test { name :: String }
>
> instance Show Test where
> show p = name p

franksen@linux: .../src/testbug > ghc -fimplicit-params TestBug.hs
ghc-6.2.2: panic! (the `impossible' happened, GHC version 6.2.2):
simplCore/Simplify.lhs:1473: Non-exhaustive patterns in function
cat_evals

BTW, I see now that the data declaration is syntactically wrong. Anyway, the
(syntactically) correct version

data (?val::Bool) => Test = Test { name :: String }

is rejected by the compiler:

TestBug.hs:3:
Illegal constraint ?val :: Bool
In the context: (?val :: Bool)
While checking the context of the data type declaration for `Test'
In the data type declaration for `Test'

which is unfortunate since it means that you cannot put a function that
depends on an implicit parameter into a data structure. There are probably
technical reasons for this restriction, but it means that such functions are
no longer first class objects.

Cheers,
Ben


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise