¿Un REPL para unirlos a todos?

Me gustaría saber si hay una REPL que no es específico del idioma. Paso mucho tiempo sumergiéndome en REPL (principalmente para Clojure, Scala y Haskell), y los paquetes me frustran en mayor o menor medida. Parece que el trabajo de un REPL es bastante genérico en el sentido de que:

Read: toma la entrada del usuarioEvaluate: pasar la entrada a algún tiempo de ejecución para procesarPrint: imprime los resultados en la pantallaLoop: espera la siguiente entrada de usuario

No veo por qué no debería haber una REPL independiente del idioma, pero no he podido encontrar tal cosa. Algunas cosas que me gustaría en mi REPL ideal:

Linux aplicación de línea de comandos Historial infinito accesible a través de la flecha hacia arriba Capacidad para editar comandos anteriores antes de volver a ejecutar ctrl-r para búsqueda de historiallike bash tieneMúltiples sesiones en una REPL, así puedo cambiar fácilmente entre ellas

Y más optimistamente

resaltado de sintaxis, finalización de código sensible al contexto

¿Existe esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta