code: func marshalSubgrapher(v Vertex) (*Graph, bool) {
  	sg, ok := v.(Subgrapher)
  	if !ok {
  		return nil, false
  	}
  
  	switch g := sg.Subgraph().DirectedGraph().(type) {
  	case *Graph:
  		return g, true
  	case *AcyclicGraph:
  		return &g.Graph, true
  	}
  
  	return nil, false
  }
docs: // check for a Subgrapher, and return the underlying *Graph.