hid-examples-0.5: ch11/describe-type-apps/Main.hs
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeApplications #-}
class Describe a where
describe :: String
instance Describe Bool where
describe = "My favorite type"
data MyType
instance Describe MyType where
describe = "My own type"
instance Describe Maybe where
describe = "Maybe type constructor"
answer1 = describe @Bool
answer2 = describe @MyType
answer3 = describe @Maybe
main = do
putStrLn answer1
putStrLn answer2
putStrLn answer3