Tidying  my basic binry-hop  into ASDF3's  :package-inferred-system
was an adventure. 

I'm still  getting  my head around  what :mix does and under   what
conditions  it does it, because it does not do it all the time  and
attempts to 'USE-PACKAGE myself run up against WOULD CONFLICT WITH.

What :mix from uiop:define-package  does is orderedly shadow a set
of other packages,  preferring  to shadow exports from the leftmost
package to resolve conflicts.  Further, it re-exports  the exports.
Or does it? 

What I am seeing is that when I am

(in-package :binry-hop)

I can see all the exports I've mixed in,

but when I

(apropos 'diff-diff)

I only see it as an export from :binry-hop-util  . From which it is
mixed into :binry-hop. Probably I am making some green mistake. 

In general I am finding forced-reloads  of single file sub-packages
in a package in a running lisp image very powerful. 

(require :binry-hop)

;; make some changes to ~/common-lisp/binry-hop/src/util.lisp

(asdf:operate 'asdf:load-op "binry-hop/src/util" :force t)

and hence :binry-hop-util defined by that file is updated.  Without
:force t a loaded package won't be recompiled/loaded.