move unit tests back to the implementation module
comments
rename accumD to scanD for consistency with scanE
add withPrevE, dropE and dropWhileE
add takeE
add partitionEithersE, leftsE and rightsE