a reliable way of dropping levity args?

Ömer Sinan Ağacan omeragacan at gmail.com
Mon Jan 25 01:58:02 UTC 2016


Hi all,

I'm looking for a reliable way of dropping levity args from TyCon applications.
When I know that a particular TyCon gets some number of levity args, I can just
drop the args manually (for example, I can drop the first half of arguments of
a tuple TyCon application) but the code looks fragile (what happens if I use a
different TyCon in the future) and confusing to the reader because it looks
like this:

    drop (length args `div` 2) args

Ideally it'd look like this:

    dropWhile isLevityArg args

Now, there's a function called isLevityTy, but I don't understand what it's
supposed to do. This doesn't do anyting to 'Boxed and 'Unboxed arguments:

    dropWhile (isLevityArg . idType) args

Any ideas on this?

Thanks..


More information about the ghc-devs mailing list