This is an old revision of the document!
Keep your eyes open for a wrapper solution for the Roles. Unfortunately many libraries claiming to do DCI ignores that object identity must be preserved for Roles. Ask the library author if you're unsure, and if the answer isn't fully clear about object identity (not the same as equality), the library is probably not true DCI.
Solving the object identity issue for today's programming languages is not that simple, so a library doing that will probably promote it cheerfully in the documentation or on the front page.