I've added type signatures, corrected a few misspelled words, and fixed 2 edge cases in Main.hs

Main was expecting a single element list from getArgs, and would fail if that didn't happen. I added cases where no or too many arguments are given to give the user info on how to run caledon correctly.  I also used hlint on Main to remove some unnecessary '$' and to reduce a lambda into an arrow.

Other than that, I just went through and added type signatures to functions to make everything easier to follow.  I think this project is really interesting, and I'm trying to wrap my head around how everything works.