module Code where data WeekDay = Monday | Tuesday | Thursday | Wednsday | Friday | Saturday | Sunday deriving (Show) f :: Int -> Int -> Int f x 0 = 1 f x y = x * f x (y - 1) mod2 :: Int -> Int mod2 x | x - 2 == 0 = 0 | x - 2 < 0 = x | otherwise = mod2 (x - 2) week :: [WeekDay] week = [Monday, Tuesday, Thursday, Wednsday , Friday, Saturday, Sunday] isMonday :: WeekDay -> Bool isMonday Monday = True isMonday x = False data Tree = Leaf Char | Node Tree Int Tree deriving Show data MaybeInt = NoError Int | Error String calcSomething :: Int -> MaybeInt calcSomething x | x < 100 = NoError (x * 5) | otherwise = Error "Int out of range!"