Value Construction
$default
default
Shall throw InvalidArgumentException if default does not have a suitable value