Ruban, good point; i definitely agree that variable types should be constraint as much as possible! However having composite keys (which will require collections or s.th. similar) is essential for some use cases. (e.g. see http://www.datastax.com/docs/1.1/ddl/column_family for data modeling stuff). If it works and you agree I would use the union type implementation from shapeless and make it a CassandraSerializable |v| List[CassandraSerializable].