5 read :: *File -> [String]
8 | l.[size l - 1] <> '\n' = []
9 = [l % (0, size l - 2):read f]
16 one :: Int [String] -> Int
18 one i [x:xs] = if (x.[i rem size x] == '#') 1 0 + one (i+3) xs
20 two :: [String] -> Int
21 two ls = prod [slope right down 0 ls\\(right, down)<-[(1,1), (3,1), (5,1), (7,1), (1,2)]]
23 slope :: Int Int Int [String] -> Int
24 slope right down i [x:xs]
25 = (if (x.[i rem size x] == '#') 1 0) + slope right down (i + right) (drop (dec down) xs)