Any function in the "Show" typeclass can be printed or converted to a string.
concatWithIsaac :: (Show a) => a -> String concatWithIsaac item = "Isaac: " ++ (show item)
Since dayToString can converta day of the week to a string, DaysOfWeek can be an instance of the "Show" typeclass. Here's how we convert a DaysOfWeek to a String:
data DaysOfWeek = Sunday | Monaday | Tuesday | Wednesday | Thursday | Friday | Saturday dayToString :: DaysOfWeek -> String dayToString Sunday = "Sunday" dayToString Monaday = "Monaday" dayToString Tuesday = "Tuesday" dayToString Wednesday = "Wednesday" dayToString Thursday = "Thursday" dayToString Friday = "Friday" dayToString Saturday = "Saturday - Hurray!"
And here's how we overload the "show" function:
instance Show DayOfWeek where
show day = dayToString day