the NetworkInterface constraint is already part of the type
NetworkLocations all have Eq and Ord instances
you can add/remove neighbours for nodes
actually connect to neighbours