__module__ Problem3.Main __where__
__import__ __qualified__ Problem3.QuestionCode __as__ P3Q
main = P3Q.main
-- (Right 0,Right 1738)
{-
Motivation:
main runs the same program in the two monads Eval1 and Eval2
From 3(a) (Problem3.Eval_expanded) we know that Eval1 gives either an
error or a new store. Thus, even if the failure is handled, the
modified State will be thrown away. The program will thus return the
emptyStore, which is 0. Eval2, on the other hand, always returns the
new store, even in the case of error. Thus, the state modification
(CMS.put 1738) done before failing propagates through catch and is
visible in the result, which is 1738.
-}