Determine instance method from class method callsite

Robin Palotai palotai.robin at
Tue Sep 19 05:38:33 UTC 2017

Sorry, I messed up subject and mailing list. Copying to both list now after
the mistake (wanted only ghc-devs for specificity).


2017-09-19 7:36 GMT+02:00 Robin Palotai <palotai.robin at>:

> Hello GHC devs,
> Before inventing the wheel, want to check if there is a GHC API way to
> look up the (fully) resolved instance method from a class method.
> For example, given a code
>     data Foo Int deriving Show
>     bar = show (Foo 3)
> when inspecting the Typechecked AST for bar's show call, I would like to
> get to the Name / Id of 'show' of the 'Show' typeclass.
> I believe I could use splitHsSigmaTy on the HsType of the function call to
> get the context, and then evaluate the HsWrapper somehow to find out what
> instance dictionary is applied to the class restriction in the context, and
> then look up the instance method from the dictionary..
> Two questions:
> 1) Is there maybe functionality for this?
> 2) If not, is there any guarantee about the constraint order in the
> context, at the method call? So I could more easily determine which
> constraint's application to look for..
> Any hints welcome && Thank you!
> Robin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list