[Haskell-cafe] The Haskell type inference feature I'd really like to see

John Meacham john at repetae.net
Fri Oct 24 17:00:54 EDT 2008


On Fri, Oct 24, 2008 at 01:38:23PM -0700, Dan Piponi wrote:
> I'd like to be able to write something like
> 
> > map zipWith ([1,2,3] >>= printMyInferredType)
> 
> and have the compiler treat 'printMyInferredType' as undefined, but
> also produce the side effect of printing out its inferred type.
> 
> What's the easiest way to simulate this with what we have now?

This will work as long as your type has a typeable instance. You can
modify it to work in an non-io context with unsafePerformIO (as long as
you are aware of the caveats of doing so)



import Data.Typeable

printInferedType :: Typeable a => a -> IO ()
printInferedType x = print (typeOf x)


main = do
    printInferedType ()
    printInferedType "foo"    

-- 
John Meacham - ⑆repetae.net⑆john⑈


More information about the Haskell-Cafe mailing list