Some enforcement for functions
Document new typing and guard features
Correct and simplify @guard