code: func (p *Partial) Unmarshal(v interface{}) error {
  	if p == nil {
  		return fmt.Errorf("Cannot unmarshal nil argument")
  	}
  
  	if err := json.Unmarshal(p.Raw, &v); err != nil {
  		return fmt.Errorf("%s. Data: %s", err.Error(), string(p.Raw))
  	}
  
  	value := reflect.ValueOf(v)
  
  	for _, spec := range p.CallbackSpecs {
  		if err := setCallback(value, spec.Path, spec.Function.Caller.(functionReceived)); err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // Unmarshal unmarshals the raw data (p.Raw) into v and prepares callbacks.
  // v must be a struct that is the type of expected arguments.