numIncreases :: Ord a => [a] -> Int
numIncreases = length . filter (LT ==) . ap (zipWith compare) tail

windows :: (Num a) => [a] -> [a]
windows = map (sum . take 3) . tails

part1 :: [Integer] -> String
part1 = show . numIncreases