Add pure function modifier, build Hoogle equivalent

Since you seem similarly minded on the importance of purity, you may like Command Syntax. It addresses the purity concern from the CQS principle perspective.