rethinking the way we handle type parameters in the ast..