Acesso fortemente digitado para csv em scala?

Eu gostaria de acessar arquivos csv em scala de uma forma fortemente tipada. Por exemplo, ao ler cada linha do csv, ela é automaticamente analisada e representada como uma tupla com os tipos apropriados. Eu poderia especificar os tipos de antemão em algum tipo de esquema que é passado para o analisador. Existem bibliotecas que existem para fazer isso? Se não, como eu poderia implementar essa funcionalidade sozinho?