When I replace "match" with "map" in your converter, it compiles for me:
val myThingConverter = {
get[String]("type") ~ get[String]("code") ~ getDouble]("value") ~ get[Long]("id") map {
case tpe ~ code ~ value ~ id =>
MyThing( "test", " test", value , 213 )
}
}
Also, you can't/shouldn't name variable "type" in Scala.