vertexP :: Parser (V3 Rational)
stonesP = stoneP `sepBy` endOfLine
-stoneP = Hailstone <$> (vertexP <* symbolP "@") <*> vertexP
-vertexP = vecify <$> signed decimal <*> (symbolP "," *> signed decimal) <*> (symbolP "," *> signed decimal)
+stoneP = Hailstone <$> vertexP <* symbolP "@" <*> vertexP
+vertexP = vecify <$> signed decimal <* symbolP ","
+ <*> signed decimal <* symbolP ","
+ <*> signed decimal
where vecify x y z = V3 (x % 1) (y % 1) (z % 1)
symbolP :: Text -> Parser Text
-symbolP s = (skipSpace *> string s) <* skipSpace
+symbolP s = skipSpace *> string s <* skipSpace
successfulParse :: Text -> [Hailstone]
successfulParse input =