``` map(f).map(g) -> map(g . f) race([race([a, b]), c]) -> race([a, b, c]) race([empty(), a]) -> a empty().map() -> empty() etc. ``` Also we should check Fantasy Land laws to find more fusion opportunities.