[Haskell-cafe] Is it possible to print out types of instances in scope

Jeremy Shaw jeremy.shaw at linspireinc.com
Sun Jan 16 13:07:14 EST 2005


At Sun, 16 Jan 2005 12:09:43 +0100,
Lemmih wrote:
> 
> On Sun, 16 Jan 2005 00:13:08 -0800, Jeremy Shaw
> <jeremy.shaw at linspireinc.com> wrote:
> > Hello,
> > 
> > Is it possible to write a function that would display all the instances
> > of a class currently in scope[1]?
> > 
> > For example, for 'Show a' it should output something like:
> > 
> > The instances of 'Show a' currently in scope are:
> > Show Int
> > Show Float
> > Show Char
> > Show ...
> 
> In GHC 6.3:
> Prelude> :i Show
> class Show a where
>   showsPrec :: Int -> a -> String -> String
>   show :: a -> String
>   showList :: [a] -> String -> String
> -- Imported from `GHC.Show'
> instance Show IOMode    -- Imported from `GHC.IOBase'
> instance Show IOException       -- Imported from `GHC.IOBase'
> instance Show IOErrorType       -- Imported from `GHC.IOBase'
> instance Show HandleType        -- Imported from `GHC.IOBase'
> [...]

Neat! Is there some way I can get access to that information from
within my program ? Maybe something like:

import Language.Haskell.TH.Syntax
instancesOf :: Name -> [Type]

thanks!
Jeremy Shaw.


More information about the Haskell-Cafe mailing list