@staticmethod
    def __make_section(fn):
        def section_wrapper(self, y):
            # double section, e.g. (__+__)
            if isinstance(y, __section__):
                @sig(H/ "a" >> "b" >> "c")
                def double_section(a, b):
                    return fn(a, b)
                return double_section

            # single section, e.g. (__+1) or (1+__)
            @sig(H/ "a" >> "b")
            def section(a):
                return fn(a, y)
            return section
        return section_wrapper

    # left section, e.g. (__+1)
Create an operator section from a binary operator.
dataset/ETHPy150Open billpmurphy/hask/hask/lang/syntax.py/__section__.__make_section