formatting
use Text.ParserCombinators.ReadP