Constructing coercions for associated type?

Conal Elliott conal at conal.net
Sun May 25 16:42:24 UTC 2014


I'm working on a GHC plugin in which I need to programmatically construct a
coercion for an associated type, given the type function name and the type
argument. For instance, I have the following class:

> class Encodable a where
>   type Encode a
>   encode :: a -> Encode a
>   decode :: Encode a -> a

along with a type instance, say `Int -> Bool`. In a GHC plugin, how can I
apply a type function to an argument type to get back the resulting type
and the associated coercion? (Given the latter, I think the former comes
from `coercionKind`).

-- Conal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140525/00d7fcbc/attachment.html>


More information about the ghc-devs mailing list