Description
Plurality monad: Zero, one, or at least two.
Description
Often when counting you don't need an exact count, but only whether there are two things. Two examples:
When searching for inhabitants of a type (implementations of a program), you want to be able to tell whether there are (a) no possible inhabitants, (b) a unique inhabitant, or (c) multiple inhabitants.
When displaying the name of a variable, if there's exactly one variable of a given name ("a") you can just use that name, but if there are multiples you might use a unique id to disambiguate them ("a1" vs "a2").