Use letfn to define functions, instead of let