@startuml
participant core as c
participant proc_macro_helpers as pmh
participant proc_macro_impl as pmi
participant proc_macros as pm
participant derives as d
participant laws as l
participant frunk as f

c --> d: dev-dependency
c --> pm: dev-dependency
c --> f: dev-dependency

pmh -> c: dependency

pmi -> c: dependency
pmi -> pmh: dependency

pm -> c: dependency
pm -> pmi: dependency
pm --> f: dev-dependency

d -> c: dependency
d -> pmh: dependency

l -> c: dependency

f -> c: dependency
f -> pm: dependency
f -> d: dependency
f --> l: dev-dependency
@enduml