Changing the way we parse the errors.
Making the result function an argument.
Refactoring result into a new namespace.
Extracting the output functions from the future facts.
Separating output parsing from errors parsing.
Separating output parsing from output printing.