diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2011-06-11 16:44:07 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2011-06-11 16:44:07 +0100 |
commit | 5c4a4c4bfe2a007f41f42ebab689bcd7219bed0d (patch) | |
tree | dd7027bb5da81adb7cfe6b0ceeca78b704f3c5f7 /compiler/cmm/CmmSpillReload.hs | |
parent | 792449f555bb4dfa8e718079f6d42dc9babe938a (diff) | |
download | haskell-5c4a4c4bfe2a007f41f42ebab689bcd7219bed0d.tar.gz |
Make TH capable of quoting GADT declarations (Trac #5217)
Template Haskell doesn't support GADTs directly but
we can use equality constraints to do the job. Here's
an example of the dump from splicing such a declaration:
[d| data T a b
where
T1 :: Int -> T Int Char
T2 :: a -> T a a
T3 :: a -> T [a] a
T4 :: a -> b -> T b [a] |]
======>
T5217.hs:(6,3)-(9,53)
data T a[aQW] b[aQX]
= (b[aQX] ~ Char, a[aQW] ~ Int) => T1 Int |
b[aQX] ~ a[aQW] => T2 a[aQW] |
a[aQW] ~ [b[aQX]] => T3 b[aQX] |
forall a[aQY]. b[aQX] ~ [a[aQY]] => T4 a[aQY] a[aQW]
Diffstat (limited to 'compiler/cmm/CmmSpillReload.hs')
0 files changed, 0 insertions, 0 deletions