Does FamInstEnv.normaliseType work for you? FamInstEnv is in the types/ 
directory. FamInst.tcGetFamInstEnvs may also be helpful. FamInst is in the 
typecheck/ directory.

Richard

On May 25, 2014, at 12:42 PM, Conal Elliott <co...@conal.net> wrote:

> 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
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to