We show how Lisp-style macros and extensible infix syntax are combined in the programming language Typer, which is a combination of Lisp, ML, and Coq. Its name is an homage to Scheme(r) with which it hares the goal of pushing as much functionality as possible outside of the core and into libraries. While it superficially looks more like Haskell and ML, with infix notation and static polymorphic typing, it tries to preserve the syntactic malleability of Lisp by relying on the traditional Lisp-style S-expressions and macros.
Its main tool to this end is the use of an infix notation for S-expressions, which still makes it possible to parse sub-expressions before knowing what role they will play.