typeName
{-# LANGUAGE AllowAmbiguousTypes, TypeApplications, ScopedTypeVariables #-}
import Data.Typeable
typeName :: forall a. Typeable a => String
typeName = show . typeRep $ Proxy @a
type T = Maybe Int
main = putStrLn $ typeName @TINFO
{-# LANGUAGE AllowAmbiguousTypes, TypeApplications, ScopedTypeVariables #-}
import Data.Typeable
typeName :: forall a. Typeable a => String
typeName = show . typeRep $ Proxy @a
type T = Maybe Int
main = putStrLn $ typeName @T