def has_predecessor(self, u, v, t=None):
        """Return True if node u has predecessor v at time t (optional).

        This is true if graph has the edge u<-v.

        Parameters
        ----------
        u, v : nodes
            Nodes can be, for example, strings or numbers.
            Nodes must be hashable (and not None) Python objects.
        t : snapshot id (default=None)
            If None will be returned the presence of the interaction on the flattened graph.

        """
        return self.has_interaction(v, u, t)