Hmm.. so lower-number-higher-priority makes it easier for user to specify high priority handlers because they could simply use `0`. Then is type `int` OK? Do we want to strictly define `0` as highest priority? It seems Go stdlib encourages using int since "behaviors around 0 is easier to handle in a signed type"