setops.osen

/union :
(
    {
        (
            /left,
            (
                (
                    /right,
                    (/left) /o/get/addresses
                ) /o/gather,
                1
            ) /o/nth
        ) /o/concat/elems
    },
    [ "/left", "/right" ]
) /o/defn,

/intersection :
(
    {
        (
            (
                (
                    /left,
                    (
                        (
                            (
                                /right,
                                (/left) /o/get/addresses
                            ) /o/gather,
                            0
                        ) /o/nth
                    ) /o/get/addresses
                ) /o/gather,
                0
            ) /o/nth
        ) /o/bundleitem/tobundleelem
    },
    [ "/left", "/right" ]
) /o/defn,

/difference :
(
    {
        (
            (
                (
                    /left,
                    (/right) /o/get/addresses
                ) /o/gather,
                1
            ) /o/nth,
            (
                (
                    /right,
                    (/left) /o/get/addresses
                ) /o/gather,
                1
            ) /o/nth
        ) /o/concat/elems
    },
    [ "/left", "/right" ]
) /o/defn
,
/a : (/x : 1, /y : 2),
/b : (/y : 3, /z : 4),
(/a, /b) /union,
(/a, /b) /intersection,
(/a, /b) /difference