This should `throw`...or all `from` functions should not require the `result` parameter, which is probably better since it avoids setting the members twice.  The doc for `result` needs to be put back then.