Your topic sounds very interesting. Be sure to start with a small subset of ML. Focus on the HM type system. Implement the dynamic semantics only if time permits.