# Overview Roselisp is a self-hosted Lisp interpreter and compiler. It is named after the [rose tree](http://en.wikipedia.org/wiki/Rose_tree), a data structure that plays a central role in its implementation. Roselisp is a Scheme dialect that takes after existing implementations, in particular [Typed Racket](http://docs.racket-lang.org/ts-guide/). However, the design of Roselisp is extensible and allows the user to extend the language with their own customizations. Roselisp consists of two parts: an {doc}`interpreter ` and a {doc}`compiler `. The interpreter can be interacted with through a {ref}`REPL `.