TIL Fortran has a keyword PURE that allows you specify if code has side-effects: https://stackoverflow.com/a/30315370/509706 (effect-based languages are rare!)