summaryrefslogtreecommitdiff
path: root/Haskell-book/06/src/Main.purs
diff options
context:
space:
mode:
Diffstat (limited to 'Haskell-book/06/src/Main.purs')
-rw-r--r--Haskell-book/06/src/Main.purs30
1 files changed, 30 insertions, 0 deletions
diff --git a/Haskell-book/06/src/Main.purs b/Haskell-book/06/src/Main.purs
new file mode 100644
index 0000000..6f60ab2
--- /dev/null
+++ b/Haskell-book/06/src/Main.purs
@@ -0,0 +1,30 @@
+module Main where
+
+import Prelude
+import Control.Monad.Eff (Eff)
+import Control.Monad.Eff.Console (CONSOLE, log)
+
+data DayOfWeek =
+ Mon | Tue | Weds | Thu | Fri | Sat | Sun
+
+data Date =
+ Date DayOfWeek Int
+
+instance eqDayOfWeek :: Eq DayOfWeek where
+ eq Mon Mon = true
+ eq Tue Tue = true
+ eq Weds Weds = true
+ eq Thu Thu = true
+ eq Fri Fri = true
+ eq Sat Sat = true
+ eq Sun Sun = true
+ eq _ _ = false
+
+instance eqDate :: Eq Date where
+ eq (Date weekday dayOfMonth)
+ (Date weekday' dayOfMonth') =
+ weekday == weekday' && dayOfMonth == dayOfMonth'
+
+main :: forall e. Eff (console :: CONSOLE | e) Unit
+main = do
+ log "Hello sailor!"