source deduce functional (untested).