Marc van Dongen writes:
> Hi,
>
> While I was constructing an example for ghc-users, I created the following
> program which crashed ghc-2.03.
>
> > module Tmp( g ) where
>
> > data AB p q = A
> > | B p q
>
> > g :: (Ord p,Ord q) => (AB p q) -> Bool
> > g (B _ _)
> > = g A
>
> tmp.lhs:6:
> Warning: Possibly incomplete patterns in the definition of function `g'
>
> zonkIdOcc: g_aoQ
>
> panic! (the `impossible' happened):
> lookupBindC:no info!
> for: g_aoQ
> (probably: data dependencies broken by an optimisation pass)
> static binds for:
> Tmp.$d1{-rmM,x-}
> local binds for:
>
Hi,
sorry for being a bit slow - this panic has been cured in ghc-2.04,
you'll now instead get a type error about overloading being ambiguous.
I notice that the Hugs type checker accepts `g' above, but I'll leave
it to others to pass judgement on what is the right behaviour.
--Sigbjorn