def METHOD_NAME(self, n=1) -> Function:
    """
    The parameterised fixed point of a function.
    Parameters:
        n : The number of types to take the fixed point over.
    """
    def inside(*xs, y=None):
        result = self.inside(*xs + (() if y is None else (y, )))
        return y if result == y else inside(*xs, y=result)
    return self if n == 0\
        else Function(inside, self.dom[:-1], self.cod).METHOD_NAME(n - 1)