a reliable way of dropping levity args?

Ömer Sinan Ağacan omeragacan at gmail.com
Fri Jan 29 01:30:27 UTC 2016


Ahh, levity is type of kinds, right? For some reason I thought kinds are now
levities (or whatever it's called). This makes sense. I just tried and I think
it works, thanks.

2016-01-28 19:39 GMT-05:00 Richard Eisenberg <eir at cis.upenn.edu>:
>
> On Jan 28, 2016, at 5:48 PM, Ömer Sinan Ağacan <omeragacan at gmail.com> wrote:
>>
>>    | Just (tc, args) <- splitTyConApp_maybe ty
>>    , isUnboxedTupleTyCon tc
>>    = pprTrace "elimUbxSumRepTypes"
>>        (text "orig args:" <+> ppr args $$
>>         text "dropWhile isLevityTy args = " <+> ppr (dropWhile
>> isLevityTy args)) $
>>      concatMap go (drop (length args `div` 2) args)
>
> You want (dropWhile (isLevityTy . typeKind) args). isLevityTy simply checks if its argument is exactly `Levity`.
>
> Does that work?
>
> Richard


More information about the ghc-devs mailing list