fixing the prettyprinting would be nice to do before 1.0
separate type matching into separate function
Fix type pretty-printing of function return types to use typedef( name)s