public static function coerce($from)
{
if (is_array($from) || is_null($from)) {
return new self((array) $from);
} elseif (is_string($from)) {
return self::fromString($from);
} elseif ($from instanceof Options) {
return $from;
} else {
throw new \InvalidArgumentException("Unable to coerce provided type");
}
}