More CPP things -- we can now compile arbitrary modules through both ghc and melchior given the correct includes