print $ part2 stones
part1, part2 :: [Int] -> Int
-part1 stones = length $ (!! 25) $ iterate blink stones
-part2 stonesList = MS.size $ (!! 75) $ iterate blinkMS stones
- where stones = MS.fromList stonesList
+-- part1 stones = length $ (!! 25) $ iterate blink stones
+-- part2 stonesList = MS.size $ (!! 75) $ iterate blinkMS stones
+-- where stones = MS.fromList stonesList
+part1 = length . (!! 25) . iterate blink
+part2 = MS.size . (!! 75) . iterate blinkMS . MS.fromList
blink :: [Int] -> [Int]
blink = concatMap expandStone