Why pure function signatures are more important than impure method signatures