reifying is-a relation

Jorge Marques Pelizzoni jpeliz at
Mon Jan 7 08:40:22 EST 2008

Hi, all! I guess what I am about to ask is currently impossible, but as
you haskellers always manage to amaze me and there is plenty of new
features in GHC I am not familiar with here it goes. Given two type
classes A t and B t, I'd like to derive different A t instances
depending exactly on whether t is an instance of B. In other words, is it
possible to define a class (actually a type-level function) IsB t f such

IsB t HTrue <=> (B t) exists
IsB t HFalse <=> otherwise?

If not, is this wish intrisically pointless?

Thanks in advance. Cheers,

Jorge M. Pelizzoni
ICMC - Universidade de São Paulo

More information about the Glasgow-haskell-users mailing list