Essentialy, this method just swaps members of a Sum type: not: e `ML` ee `AR_` ee `ML` e Could be used with unwrapped Boolean, Optional, Progress expressions. rewrap not `he` True _ `AR___` False _ rewrap not `he` False _ `AR__` True _ rewrap not `he` Valid _ `AR__` Error _ rewrap not `he` Error _ `AR__` Valid _ rewrap not `he` Some _ `AR__` None _ rewrap not `he` None _ `AR__` Some _