code: func NewActualLRPInstanceChangedEvent(before, after *ActualLRP) *ActualLRPInstanceChangedEvent {
  	var (
  		actualLRPKey         ActualLRPKey
  		actualLRPInstanceKey ActualLRPInstanceKey
  	)
  
  	if (before != nil && before.ActualLRPKey != ActualLRPKey{}) {
  		actualLRPKey = before.ActualLRPKey
  	}
  	if (after != nil && after.ActualLRPKey != ActualLRPKey{}) {
  		actualLRPKey = after.ActualLRPKey
  	}
  
  	if (before != nil && before.ActualLRPInstanceKey != ActualLRPInstanceKey{}) {
  		actualLRPInstanceKey = before.ActualLRPInstanceKey
  	}
  	if (after != nil && after.ActualLRPInstanceKey != ActualLRPInstanceKey{}) {
  		actualLRPInstanceKey = after.ActualLRPInstanceKey
  	}
  
  	return &ActualLRPInstanceChangedEvent{
  		ActualLRPKey:         actualLRPKey,
  		ActualLRPInstanceKey: actualLRPInstanceKey,
  		Before:               before.ToActualLRPInfo(),
  		After:                after.ToActualLRPInfo(),
  	}
  }
docs: // FIXME: change the signature