Scala library for building DSL to convert data from one representation to another