def __call__(self, *args):
        """
        The main calling function. Resets recursive_call_depth and then calls
        """
        self.recursive_call_depth = 0

        # call with passing self.recursive_Call as the recursive call
        return LOTHypothesis.__call__(self, self.recursive_call, *args)
    def __call__(self, *args):
        """
        The main calling function. Resets recursive_call_depth and then calls
        """
        self.recursive_call_depth = 0

        # call with passing self.recursive_Call as the recursive call
        return LOTHypothesis.__call__(self, self.recursive_call, *args)
    def recursive_call(self, *args):
        """
        This gets called internally on recursive calls. It keeps track of the depth to allow us to escape
        """
        self.recursive_call_depth += 1
        if self.recursive_call_depth > self.recursive_depth_bound:
            raise RecursionDepthException

        return LOTHypothesis.__call__(self, *args)
    def recursive_call(self, *args):
        """
        This gets called internally on recursive calls. It keeps track of the depth and throws an error if you go too deep
        """

        self.recursive_call_depth += 1

        if self.recursive_call_depth > self.recursive_depth_bound:
            raise RecursionDepthException

        # Call with sending myself as the recursive call
        return LOTHypothesis.__call__(self, self.recursive_call, *args)
    def recursive_call(self, *args):
        """
        This gets called internally on recursive calls. It keeps track of the depth and throws an error if you go too deep
        """

        self.recursive_call_depth += 1

        if self.recursive_call_depth > self.recursive_depth_bound:
            raise RecursionDepthException

        # Call with sending myself as the recursive call
        return LOTHypothesis.__call__(self, self.recursive_call, *args)
 def __call__(self, *args):
     """
     The main calling function. Resets recursive_call_depth and then calls
     """
     self.recursive_call_depth = 0
     return LOTHypothesis.__call__(self, *args)