def METHOD_NAME(self, ptr):
    """
    Handler for any libc `free` SimProcedure call. If the heap has faithful support for `free`, it ought to be
    implemented in a `free` function (as opposed to the `_free` function).
    :param ptr: the location in memory to be freed
    """
    raise NotImplementedError(f"{self.METHOD_NAME.__func__.__name__} not implemented for {self.__class__.__name__}")