- (\ (mem, dsk) node -> (mem + (Node.f_mem node),
- dsk + (Node.f_dsk node)))
- (0, 0) (Container.elems nl)
+ (\ (mem, dsk, amem, mmem, mdsk) node ->
+ let inc_amem = (Node.f_mem node) - (Node.r_mem node)
+ in (mem + (Node.f_mem node),
+ dsk + (Node.f_dsk node),
+ amem + (if inc_amem > 0 then inc_amem else 0),
+ max mmem inc_amem,
+ max mdsk (Node.f_dsk node)
+ )
+ ) (0, 0, 0, 0, 0) (Container.elems nl)