import Prelude hiding (filter)
max31 x y z = if x > y
then if x > z
then x
else z
else if y > z
then y
else z
max32 x y z
| x > y && x > z = x
| y > z = y
| otherwise = z
--max33 :: Integer -> Integer -> Integer -> Integer
--max33 :: Ord a => a -> a -> a -> a
max33 x y z = max (max x y) z
head1 (x:xs) = x
head1 [] = error "Empty list"
second (x:y:xs) = y
tail1 (x:xs) = xs
tail1 [] = []
last1 [x] = x
last1 (x:xs) = last1 xs
ones = 1 : ones
map1 f [] = []
map1 f (x:xs) = f x : map1 f xs
filter f [] = []
filter f (x:xs)
| f x = x : filter f xs
| otherwise = filter f xs
--otherwise = True
und True True = True
und x y = False
undList (x:xs) = und x (undList xs)
undList [] = True