-part1 :: Forest -> Int
-part1 = countVisible . findVisibilityForest
--- part1, part2 :: STree -> Integer
--- part1 = foldTree (\x xs -> sum (x:xs)) . fmap cancelLarge
+part1, part2 :: Forest -> Int
+part1 = countVisible . setVisibilityForest
+
+part2 forest = maximum scores
+ where nrows = length forest
+ ncols = length $ head forest
+ scores = [scenicScore forest r c | r <- [0 .. (nrows - 1)], c <- [0 .. (ncols - 1)]]
+