import graph {
Edge
}
by ("ThorstenSeitz")
shared interface DirectedEdge<Vertex,E> of E
satisfies Edge<Vertex,E>
given Vertex satisfies Object
given E satisfies Edge<Vertex,E> { // should be DirectedEdge<Vertex,E> but clashes with definition of Edge
shared actual Boolean isDirected => true;
shared actual Boolean isIncident(Vertex vertex) => source == vertex;
}