> Also when doing code inspection on imperative languages, you get a good > feeling when most things are constant: no variable means no > uninitialized variable bug :). More formally, if you think of proof conditions, marking something as constant means that considerably less has to be proved about the status and value of the object.