pub fn io_task_into<P, Q, T, R, F, C>(
    from: P,
    into: Q,
    task: &T,
    fold: &F
) -> Result<C> where
    P: AsRef<Path>,
    Q: AsRef<Path>,
    T: Fn(&Path, &Path) -> Result<R>,
    R: Eq + Hash,
    F: Fn(&mut C, R),
    C: Default