packages feed

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