@staticmethod
def have_resolved_history(hist):
    """
        This function tries to resolve a history. It returns True iff it
        succeeds.

        A history of a variable is a list of all the values it will assume
        all the times it is used in the circuit (each repetition in a loop
        or nested loops is counted as a different use.) For a hash
        placeholder, a history is a list of floats or None's. For a
        functional placeholder, a history is a list of functions or None's.

        Resolving a history successfully means replacing all None's by a
        value that is not a None. This is accomplished by moving in order of
        ascending index on the list and replacing each None by its
        predecessor. The very first use cannot be a None.

        Parameters
        ----------
        hist : list[float | function | None]

        Returns
        -------
        bool

        """
    for time, event in enumerate(hist):
        if event is None:
            if time == 0:
                return False
            else:
                hist[time] = hist[time - 1]
    return True
