Awesome DSL for defining types