Implemented automatic generation of branch code for the matching; no more having to write the caseXXX methods from scratch! Still needs a lot of work though, but it does handle stuff like nesting and compliex(-ish) type parameters well