But but! When I want to add types to macros, units no longer suffice! Or.. macro types should then again be part of the signature. Which makes sense: it's ok to use a different _implementation_ but the _specification_ (of which the I->O type is a part) should be static. So again units seem to be the proper abstraction.