((fold) => fold)( (fmap) => (algebra) => function doFold(v) { return algebra(fmap(doFold)(v)); }, );