distriman: charging indirect dependencies as remote interfaces, allowing complex types