[WIP] add funcproto_type, typevar_type to represent symbolic function types for matching