Using macros in guard clauses

Guards can only be composed of guard-safe functions and also with elixir >= 1.6 you want to use defguard instead of a macro to compose those. :binary.encode_unsigned/1 is not guard-safe though, so you cannot do what you want to do in a guard.