On Donnerstag, 6. Dezember 2012, 12:51:55, Trung Quang Nguyen wrote:No, the maintainer of bullet just has not updated the package to incorporate
> Hi there,
>
> After installing c2hs, and run cabal install bullet. I got this error. Did
> I miss any step?
the changes in base-4.6.
>Formerly, Eq and Show were superclasses of Num (
> Physics/Bullet/Raw/C2HS.hs:211:12:
> Could not deduce (Eq a) arising from a use of `toBool'
> from the context (Num a)
> bound by the type signature for cToBool :: Num a => a -> Bool
> at Physics/Bullet/Raw/C2HS.hs:211:1-17
> Possible fix:
> add (Eq a) to the context of
> the type signature for cToBool :: Num a => a -> Bool
> In the expression: toBool
> In an equation for `cToBool': cToBool = toBool
class (Eq a, Show a) => Num a where...
) but they have been removed recently (they prevented some reasonable Num
instances unless you mad dummy Eq and Show instances,
instance Num a => Num (e -> a)
for example).
So before base-4.6, a Num constraint implied Eq, that is no longer so.
Quick fix:
$ cabal unpack bullet
- cd bullet-0.2.2
- edit the .cabal file, bumping the version to 0.2.2.1 or so
- edit the sources adding Eq or Show constraints where necessary (you have
seen one spot, cabal configure and after that cabal build would detect further
spots if there are any, cabal install too, but if you configure with
--disable-library-profiling --disable-shared, cabal build is quicker to find
the spots)
- cabal install
(no arguments, so it configures and installs the package from the directory)
Long-term fix: send a patch (or at least a bug report/feature request) to the
maintainer of bullet.