Implement `~>` of all possible args types: `Rule`, `Unit` and other

Pass all tests