Tiplerin performans karakteristiklerini kategorize eden bir tip sistemi oluşturmak son derece mümkün görünüyor(örn. "seri erişim için hızlı / yavaş," rasgele erişim için hızlı / yavaş "," bellek verimli / verimsiz ") Bu özellikler hiyerarşiye daha somut türler miras kalacak şekilde yerleştirilen soyut türler olabilir. Bununla birlikte, bu türleri kullanan herhangi bir programın performansı, gerçekte nasıl kullanıldıklarına / erişildiklerine bağlı olacaktır.Tip sisteminin programın kendisi hakkında açıklama yapması için, bu türlerin (erişim) kullanımının kendisinin tür olarak temsil edilmesi gerekir. Bu, yerleşik kontrol yapılarının (örn. / While döngüleri için) kullanılmasının devam etmesi ve bunları uygulayan türlerin kullanılması anlamına gelir.Bu nedenle hiyerarşinin soyut bir seri erişim tipi ve alt öğe listesi seri erişimi, ağaç seri olabilir - erişim türleri vb.Bu durumda kullanımın etkinliği en azından kısmen bu tiplerin birbirine birleştirilmesi ve uygulanması ile ifade edilebilir.
Neredeyse hiç kontrol yapısı olmayan Haskell gibi işlevsel bir dilde bu bana oldukça pratik ve uygulanabilir görünüyor . Java Ancak, bu tür bir sistem (değil çok daha az ulaşılabilir görünüyor böylece sonucun uygulanabilirliği / güvenilirliğinden itibaren uygulanmasından çok).
Haskell zaten bir programın ne kadar saf olduğunu kesin olarak belirtmemize izin veriyor ve mühürlü kutulardaki belirli faaliyetleri sınırlandırmanın yollarını sunuyor. Haskell'deki paralellik / eşzamanlılık tip sistemi aracılığıyla uygulandığından , zaten orada (istediğinize) yolun bir parçası olduğu söylenebilir. Buna karşılık, zorunlu diller (Java gibi statik olarak yazılanlar bile) kodlayıcıya bu girişimi engellemenin birçok yolunu sunar.
if condition then expensive_operation else cheap_operation
?