@abstractmethod<EOL><INDENT>def check(self, val):<DEDENT>
pass<EOL>
Checks if a value specified in a spec (translated to a Python object)
is a valid Python value for this type. Returns nothing, but can raise
an exception.

Args:
    val (object)

Raises:
    ValueError