If M is a direct sum module (isDirectSum M == true) then N is the direct sum of the duals of the components (and this is done recursively). This SHOULD be built into dual M, but isn't as of M2, v. 1.7
The object dualWithComponents is a method function.