Design and Implementation of an Optionally-Typed Functional Programming Language. - Patrick Shaobai Li (2017)