public function nestedCassandraTypes()
{
$compositeCassandraTypes = $this->compositeCassandraTypes();
foreach ($compositeCassandraTypes as $nestedType) {
$type = Type::collection($nestedType[0]);
$nestedCassandraTypes[] = array($type, array($type->create($nestedType[1][0])));
}
foreach ($compositeCassandraTypes as $nestedType) {
$type = Type::set($nestedType[0]);
$nestedCassandraTypes[] = array($type, array($type->create($nestedType[1][0])));
}
foreach ($compositeCassandraTypes as $nestedType) {
$type = Type::map($nestedType[0], $nestedType[0]);
$nestedCassandraTypes[] = array($type, array($type->create($nestedType[1][0], $nestedType[1][1])));
}
foreach ($compositeCassandraTypes as $nestedType) {
$type = Type::tuple($nestedType[0], $nestedType[0]);
$nestedCassandraTypes[] = array($type, array($type->create($nestedType[1][0], $nestedType[1][1])));
}
foreach ($compositeCassandraTypes as $nestedType) {
$type = Type::userType("a", $nestedType[0], "b", $nestedType[0]);
$type = $type->withName(self::userTypeString($type));
$nestedCassandraTypes[] = array($type, array($type->create("a", $nestedType[1][0], "b", $nestedType[1][1])));
}
return $nestedCassandraTypes;
}