Do correct bounds checking in `natural` in Capability.hs
Capability.hs
defines natural like this:
natural :: Num n => Parser n
natural = decimal
However, decimal is documented as:
Warning: this function does not perform range checks.
This means that natural :: Parser Word8
will accept "256"
as input and produce 0
as output. Instead, this should be a fail
of some sort so that when natural
is used to parse a type of known size it either succeeds for inputs in the range of that type or rejects them.