Add monoid operation on option.
Prove type validity of expression typing.
Support NULL pointers and proper typing of conditional expressions.