AF::reduce added but not tested