These are type-checking hash objects; values are checked against the specified
type when the object is constructed or new elements are added.
The first argument passed to the constructor should be a Type::Tiny type:
use Types::Standard -all;
my $hash = hash_of Int() => ( foo => 1 );
If the initial type-check fails, a coercion is attempted.
This class consumes the following roles, which contain most of the relevant
Also see Types::Standard, List::Objects::Types