code: func InMemoryWithLogging() InMemoryOption {
  	return func(p *InMemoryProvider) {
  		p.OnApplyChanges = func(changes *plan.Changes) {
  			for _, v := range changes.Create {
  				log.Infof("CREATE: %v", v)
  			}
  			for _, v := range changes.UpdateOld {
  				log.Infof("UPDATE (old): %v", v)
  			}
  			for _, v := range changes.UpdateNew {
  				log.Infof("UPDATE (new): %v", v)
  			}
  			for _, v := range changes.Delete {
  				log.Infof("DELETE: %v", v)
  			}
  		}
  	}
  }
docs: // InMemoryWithLogging injects logging when ApplyChanges is called