solve :: Word -> (Rules, Polymer) -> Word
solve !n (!rules, !polymer) = range . toCounter $ iterateN n (step rules) polymer
solve :: Word -> (Rules, Polymer) -> Word
solve !n (!rules, !polymer) = range . toCounter $ iterateN n (step rules) polymer
solve !n (!rules, !polymer) = range . toCounter $ iterateN n (step rules) polymer