Re: Newbie question - class dependencies
Ian Lynagh <[email protected]> Sun, 8 Jul 2007 17:24:15 +0100
| Newsgroups | gmane.comp.lang.haskell.template |
|---|---|
| Message-ID | <[email protected]> |
On Sun, Jul 08, 2007 at 05:01:21PM +0100, Hugo Pacheco wrote:
>
> module Main where
>
> myprint :: a -> String
> myprint = show
>
> main = do
> putStr $ myprint 1
> putStr $ myprint '2'
>
> My ideia would be to stage the computation of *myprint* until it is called,
> where the *Show* instance can be satisfied.
Do you mean that you want to have
myprint :: Integer -> String
myprint = show
generated when GHC notices that myprint is called with an Integer type?
Is so, then no, TH, can't do that.
What you can do is to write a function
mkMyPrint :: Type -> Q [Dec]
which you could then call like so:
$( mkMyPrint ''Integer )
but you have to do so by hand.
Thanks
Ian