code: func (c *Change) Files() (from, to *File, err error) {
  	action, err := c.Action()
  	if err != nil {
  		return
  	}
  
  	if action == merkletrie.Insert || action == merkletrie.Modify {
  		to, err = c.To.Tree.TreeEntryFile(&c.To.TreeEntry)
  		if !c.To.TreeEntry.Mode.IsFile() {
  			return nil, nil, nil
  		}
  
  		if err != nil {
  			return
  		}
  	}
  
  	if action == merkletrie.Delete || action == merkletrie.Modify {
  		from, err = c.From.Tree.TreeEntryFile(&c.From.TreeEntry)
  		if !c.From.TreeEntry.Mode.IsFile() {
  			return nil, nil, nil
  		}
  
  		if err != nil {
  			return
  		}
  	}
  
  	return
  }
docs: // Files return the files before and after a change.
  // For insertions from will be nil. For deletions to will be nil.