Not clear on how to make that work. `child.module.__impl__(:protocol)` is `{CustomProtocol, Number}` (in one of the test cases) and `Module.split(module)` returns `["CustomProtocol"]`. I can turn the tuple into a list, `["CustomProtocol", "Number"]`, but I can't figure out how to get the types to work out from there (String and whatever type the module name is).

Proposing to do something like:
`child.type == :impl && :lists.prefix(Module.split(module), tuple_to_list(child.module.__impl__(:protocol)))`

Or perhaps you had something else entirely different in mind.