jckarter/clay — pull request #318 by stepancheg (2012-08-09 12:37:19+00:00)
Title: numeric type utils

* BuiltinIntegerTypes
* SignedIntegerOfSize, UnsignedIntegerOfSize
* SignedInteger, UnsignedInteger
* BuiltinFloatTypes, BuiltinImaginaryTypes

There is no FloatOfSize or ImaginaryOfSize, because there is no
single float type for given size, for instance, 16 byte float types
are Float80 and (not yet existing) Float128.

UnsignedIntegerOfSize can be used, for example, in generic cryptography
algorithms. Most algorithms have state that is N words of size K
each. So state data can be represented in generic code with expression

```
Array[UnsignedIntegerOfSize(K), N]
```

BuiltinIntegerTypes are useful in tests to check that generic code
works properly with all data types.