A principled approach to REPL interpreters | Synapse