More comments
Move abs to local scope
Add note about builtin syntax
Add static assert
Better message format
Group code
Check assignment
Better checks
Better namings
Better namings
Better comments