completed doc for every class and function in promote_scalar and promote_scalar_type