Leveraging type inference with fluent APIs and typesafe DSLs

Programmers can find domain specific languages everywhere from XML to SQL. What if we could read and write DSLs in a completely type safe manner? One way to do this is implement your own custom developer tools. But there is a second way! You can write a type-safe API in a statically typed language like Java, giving IDE-agnostic completion and static analysis. We'll explore how to generate your own custom DSL interpreter in Kotlin.