diff --git a/README.md b/README.md index 115713e..a77ff6b 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,15 @@ newtype Char +### Type Class Instances + + instance eqChar :: Eq Char + + instance ordChar :: Ord Char + + instance showChar :: Show Char + + ### Values charString :: Char -> String diff --git a/src/Data/Char/Char.purs b/src/Data/Char/Char.purs index b942c3a..e7eeea1 100644 --- a/src/Data/Char/Char.purs +++ b/src/Data/Char/Char.purs @@ -20,3 +20,13 @@ module Data.Char \ return String.fromCharCode(c);\ \}" :: Number -> Char + instance eqChar :: Eq Char where + (==) (Char a) (Char b) = a == b + + (/=) a b = not (a == b) + + instance ordChar :: Ord Char where + compare (Char a) (Char b) = a `compare` b + + instance showChar :: Show Char where + show (Char s) = "Char " ++ show s