Refactor traits header
Simplify traits using simple trait macro
Just use requires without the underscore at the end
Simplify has_equals trait
Remove static keyword to reduce noise
Make ax always available to functions