Custom Query (6599 matches)


Show under each result:

Results (46 - 48 of 6599)

Ticket Resolution Summary Owner Reporter
#8865 fixed Cannot derive well-kinded instance of form ‘Category adinapoli

Hello everyone, sorry if this was already reported somewhere.

I'm playing with GHC 7.8.1 RC2 and I'm updating hsenv to support GHC 7.8. This is a real code snippet, which was compiling fine in GHC 7.6.x

newtype ArgArrow a b = ArgArrow (StaticArrowT KnownArgs (Kleisli (ReaderT Args IO)) a b)
    deriving (Category, Arrow, ArrowChoice)

but that yields the following in GHC 7.8.1-RC2

 Cannot derive well-kinded instance of form ‘Category (ArgArrow ...)’
      Class ‘Category’ expects an argument of kind ‘k -> k -> *’
    In the newtype declaration for ‘ArgArrow’

This might be related to the new feature of GHC 7.8, namely "kind variables" (you get the idea, even if the name is not 100% accurate). To make the code compile I had to enable StandaloneDeriving and write the following:

newtype ArgArrow a b = ArgArrow (StaticArrowT KnownArgs (Kleisli (ReaderT Args IO)) a b)
    deriving (Arrow, ArrowChoice)

deriving instance Category ArgArrow

Is this by design or is a genuine bug? Thanks!


#8864 fixed Document heap allocation functions in StgCmmMonad/StgCmmLayout tibbe

I'm having a hard time using the heap allocation functions in StgCmmMonad and StgCmmLayout, as they lack documentation. I'd be very grateful if someone could at least document:

  • getHpRelOffset
  • setVirtHp
  • getVirtHp

To get an idea which questions I'm struggling with, I need to e.g. understand if the value returned by getHpRelOffset is affected by later calls to setVirtHp. This is probably obvious to some, but reading the code alone is not enough to get a good understanding how all the heap allocation code hangs together.

#8863 fixed ghc 7.6.3: type parser accepts => as -> (sometimes) patrikj

The following examples are all parsed and type checked even though they don't seem to be conforming to the Haskell standard syntax:

a :: Int => Int
a = (1+)

b :: a -> a => a
b = const

c :: Num a => [a => a => a]
c = [(+)]

Slight variations fail (as the should) - for example

b' :: a -> b => a
b' = const


Linux cse-814009 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Note: See TracQuery for help on using queries.