code: func Unmarshal(bs []byte, v interface{}) error {
  	root, err := parse(bs)
  	if err != nil {
  		return err
  	}
  
  	return DecodeObject(v, root)
  }
docs: // Unmarshal accepts a byte slice as input and writes the
  // data to the value pointed to by v.