A project on this topic would suit someone with an interest in functional programming and programming language semantics.
FreshML  is an experimental, ML-like language designed to facilitate metaprogramming, that is, writing programs that operate on data that are syntactical structures in some language (called the object-language, to distinguish from the meta-language, FreshML). The object-language might for example be a logic and the meta-program part of some theorem-proving system for object-language theorems; or it might be a programming language and the meta-program might be a type-checker, a compiler, or an interpreter for object-language programs. The features that FreshML adds to ML are supposed to make it easy to deal with object-languages that feature names and name-binding constructs and where the object-language expressions are to be identified up to α-equivalence, that is, consistent renaming of bound names. In FreshML, the user gets to write functions manipulating bound names using name-abstraction patterns, but the semantics of FreshML guarantees (provably) that those functions cannot violate α-equivalence. Chapter 10 of  (available on request from AMP) provides more details. At the moment the only implementation of these ideas is in Fresh OCaml , which patches the back end of an old version of OCaml (v3.10) to provide run-time values with swappable names (the essential feature needed for FreshML); it is not maintained and is only known to compile successfully on current Linux systems, but not current Mac OSX or Windows/Cygwin systems. Examples of Fresh Ocaml programs are here.
 M. R. Shinwell, A. M. Pitts and M.J.Gabbay, FreshML: Programming with Binders Made Simple. In Eighth ACM SIGPLAN International Conference on Functional Programming (ICFP 2003), Uppsala, Sweden, pages 263-274 (ACM Press, 2003). [pdf]
 A. M. Pitts, Nominal Sets: Names and Symmetry in Computer Science, Cambridge Tracts in Theoretical Computer Science, vol. 57 (CUP, 2013)
 M. R. Shinwell and A. M. Pitts, Fresh Objective Caml User Manual, University of Cambridge Computer Laboratory Technical Report UCAM-CL-TR-621, February 2005. [pdf].