pub fn singleton(ty: Type, tp: TyParam) -> Type