Add files included with homework problem
Add Calc.hs with solution Exercise 1
Add solution to Exercise 2

At least, I think this is what I'm supposed to do here.
Add Expr class and ExprT instance thereof

This completes Exercise 3, I think. This is slightly confusing.
Simplify ExprT instance of Expr
Add Expr instances for Integer and Bool

No, really, and I doing any of this the right way?
Add MinMax and Mod7 instances of Expr

This one is a bit messy. My concerns are outlined in the mostly 1-sided
conversation I had while trying to get help from #haskell-beginners, an
excerpt from which I provide here for posterity, and didactic reasons:

23:26 < gfixler> right now add 7 -5 :: Bool errors
23:27 < gfixler> but 7 should become True, 5 should become False, and it should OR them
23:27 < tuturto> and that should produce True
23:27 < gfixler> right - the testExp provided parses things, which ends up running the 7 and -5 through lit
23:27 < gfixler> where they become True and False befoer being given to add
23:28 < gfixler> so the test works, but only because it's been parsed into using lit
23:28 < gfixler> this all feels messy and incomplete
23:28 < gfixler> and possibly wrong
23:29 < tuturto> hm..
23:30 < gfixler> I guess it's not, though
23:30 < gfixler> it's defined to be lit :: Integer -> a
23:30 < gfixler> so it lifts whatever int you give it into whatever type the Expr should hav
23:30 < gfixler> e
23:30 < tuturto> just trying to remember everything I forgot already
23:31 < gfixler> and add and mul are both a -> a -> a
23:31 < gfixler> so I guess that's that
23:31 < gfixler> whatever the resultant type is is what the inputs to them should be
23:31 < tuturto> yes
23:31 < gfixler> so add 7 -5 :: Bool shouldn't work
23:31 < tuturto> right
23:31 < gfixler> because add is a -> a -> a
23:31 < gfixler> and :: Bool means the final a is Bool
23:31 < gfixler> so the inputs need to be Bool as well
23:31 < gfixler> so my code is right
23:32 < tuturto> that sounds good to me
23:32 < gfixler> man, this types thing keeps getting more impressive
23:32 < tuturto> it is
23:32 < gfixler> I answered complete confusion finally by looking at the types
23:32 < tuturto> one of the things why I wanted to learn haskell a bit
23:32 < gfixler> amazing
23:32 < gfixler> I was annoyed that there wasn't enough info in the homework
23:32 < gfixler> but I guess there was after all :)
23:32 < tuturto> just have to remember to look into it
23:32 < tuturto> :)
23:33 < gfixler> yeah
23:33 < gfixler> no wonder every time I ask a question in #haskell[-.+] people immediatly type > :t whatever
23:33 < tuturto> yeah
23:33 < tuturto> types don't lie
23:34 < gfixler> nope
23:34 < gfixler> believe the type
23:35 < gfixler> I still had to add Ord and Num to the newtypes, though
23:35 < gfixler> and that made me add {-# LANGUAGE GeneralizedNewtypeDeriving #-}
23:35 < gfixler> I'm not sure if that indicates wrongness, or if I was supposed to discover things the hard way
23:36 < tuturto> good question
23:37 < tuturto> maybe other will wake up eventually and there will be more people to ask from
23:39 < gfixler> perhaps - I appreciate your moral support meanwhile
Add the provided homeworking-testing expressions

...which pass, btw.
Merge branch 'hw5Original' (-s ours)

I did this at work, but never pushed it, then redid it at home, so I'm
saving this as a strategy-ours merge for posterity, but using the other.