@sig(H/ (H/ "a" >> "x" >> ("a", "y")) >> "a" >> ["x"] >> ("a", ["y"]))
def mapAccumR(xs):
    """
    mapAccumR :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])

    The mapAccumR function behaves like a combination of map and foldr; it
    applies a function to each element of a list, passing an accumulating
    parameter from right to left, and returning a final value of this
    accumulator together with the new list.
    """
    raise NotImplementedError()


#=============================================================================#
## Infinite lists
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/mapAccumR/original