Jonathan Aldrich at CMU has done some really nice work on this, and has included concept design in his PL classes. Slides here show really nice example of using concepts to split a PL concept (untyped dynamic semantics) into two more independent concepts using the principle of specificity. In these slides, he also mentions dependences, which get a whole chapter in the book (but appeared more briefly in the draft that Jonathan’s comments are based on). There’s also an assignment about applying concept design to PL here.
Thanks to Josh Pollock for bringing these to my attention!