first should just return Nil on failure

Don't throw an exception saying there's no value; that's what Nil means!