@jakevdp suggested that a nice way to summarize the signed/unsigned integer type promotion rules would be with a lattice, e.g.,  `i*` denotes a Python `int` (with unspecified precision). This is a subset of the full type promotion lattice from the JAX docs: https://jax.readthedocs.io/en/latest/type_promotion.html The lattice for floats would just be `f* -> f4 -> f8`.