Functional programming language with user defined binders and syntax