cleaned up and commented C2.hs