Adds FromFn to work around fn clone issues.

@zzmp thoughts?