A graph model for workflows transversal.
@type t() :: %Lightning.Graph{edges: MapSet.t(), nodes: MapSet.t()}
@spec add_edge(t(), atom(), atom()) :: t()
@spec new() :: t()
@spec prune(t(), any()) :: t()
@spec remove_edges(t(), [{any(), any()}]) :: t()