code: func GetProperty(xu *xgbutil.XUtil, win xproto.Window, atom string) (
  	*xproto.GetPropertyReply, error) {
  
  	atomId, err := Atm(xu, atom)
  	if err != nil {
  		return nil, err
  	}
  
  	reply, err := xproto.GetProperty(xu.Conn(), false, win, atomId,
  		xproto.GetPropertyTypeAny, 0, (1<<32)-1).Reply()
  
  	if err != nil {
  		return nil, fmt.Errorf("GetProperty: Error retrieving property '%s' "+
  			"on window %x: %s", atom, win, err)
  	}
  
  	if reply.Format == 0 {
  		return nil, fmt.Errorf("GetProperty: No such property '%s' on "+
  			"window %x.", atom, win)
  	}
  
  	return reply, nil
  }
docs: // GetProperty abstracts the messiness of calling xgb.GetProperty.