VTS: Verified TypeS
This started as a simple thought about implementing a new type system where we can represent a type with its underlying specification.
type NewType = BaseType
where constraint;
The NewType is defined as a wrapper around BaseType with the constraint attached to it.
For example once could define the following:
vts!
So here we say that the HexaString is a String where all the characters
comply with the given constraint : all chars are ASCII hexadecimal characters.
In the context of the Rust implementation, this is only a convenient way to wrap a base type and to add some constraint to the lifting. In essence the generated code will look like the following:
;
;