Dependent types provide a way for programmers to write code that computes types. Type-level computations in turn may depend on values, allowing various powerful programming patterns. Moreover, even though types exhibit a rich dynamic semantics, type-checking remains a purely compile-time operation.
The Deputy system presented in this paper is a Clojure-hosted dependently-typed programming language, featuring inductive datatypes. It serves as an experimental vehicle to explore the implications of the Lisp-based REPL-driven interactive development workflow, not only while programming but also during type checking. The system is thus developed as a Clojure library, which means that the host language is still available while "programming" at the type-level.