code: func (g *Graph) Check(x *Graph) (bool, string) {
  
  	for i := 0; i < g.Len(); i++ {
  		ns := g.GetAt(i)
  		nx := x.GetAt(i)
  
  		b := ns.checkNode(nx)
  		if !b {
  			if ns != nil {
  				return false, "want " + ns.ThisString() + ", got " + nx.ThisString()
  			}
  		}
  
  		ok, mess := ns.Check(nx)
  		if !ok {
  			return false, mess
  		}
  	}
  
  	return true, ""
  }
docs: // Check returns true if the Graph given as a parameter conforms to the
  // schema represented by the receiver Graph.