I think, the merge grph edges should just be called `Edge` to conform to 
the lemon API, but `BaseEdge` or `BaseGraphEdge` might be preferrable 
for the others.