pub fn parse_input_file<P: AsRef<Path>>(input: P) -> Result<Vec<Group>>