Turn unary negation back on.
Create the Type.Inference module which handles type inference from
start to finish. Give it a Module and it returns a dictionary mapping
top-level values to types.
Minor cosmetic changes