module ShowFun where

import Data.Typeable

instance (Typeable a, Typeable b) => Show (a -> b) where
    show :: (a -> b) -> String
show a -> b
e = Char
'<' forall a. a -> [a] -> [a]
: (forall a. Show a => a -> String
show forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Typeable a => a -> TypeRep
typeOf) a -> b
e forall a. [a] -> [a] -> [a]
++ String
">"

instance Typeable a => Show (IO a) where
    show :: IO a -> String
show IO a
e = Char
'<' forall a. a -> [a] -> [a]
: (forall a. Show a => a -> String
show forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Typeable a => a -> TypeRep
typeOf) IO a
e forall a. [a] -> [a] -> [a]
++ String
">"