Dường như có thể tạo ra một hệ thống loại phân loại đặc tính hiệu suất của các loại(ví dụ: "nhanh / chậm đối với truy cập nối tiếp," nhanh / chậm đối với truy cập ngẫu nhiên "," hiệu quả bộ nhớ / không hiệu quả "). Những đặc điểm đó có thể là các loại trừu tượng được đặt vào hệ thống phân cấp theo cách mà các loại cụ thể hơn được thừa hưởng từ chúng. Tuy nhiên, hiệu suất của bất kỳ chương trình nào sử dụng các loại đó sẽ phụ thuộc vào cách chúng thực sự được sử dụng / truy cập. Đối với hệ thống loại để đưa ra tuyên bố về chính chương trình, việc sử dụng (truy cập) các loại đó sẽ được thể hiện dưới dạng các loại Điều này có nghĩa là từ bỏ việc sử dụng các cấu trúc điều khiển tích hợp (ví dụ: vòng lặp for / while) và thay vào đó sử dụng các kiểu thực hiện chúng. Do đó, hệ thống phân cấp có thể có kiểu truy cập nối tiếp trừu tượng và truy cập nối tiếp danh sách con cháu, nối tiếp cây các loại -access và như vậy.Hiệu quả sử dụng sau đó có thể được thể hiện ít nhất một phần bằng sự kết hợp và ứng dụng các loại này với nhau.
Trong một ngôn ngữ chức năng như Haskell - gần như không có cấu trúc điều khiển nào - điều này đối với tôi khá thực tế và có thể thi hành được. Tuy nhiên, trong Java, một hệ thống như vậy dường như nhiều ít có thể đạt được (không quá nhiều từ việc thực hiện kể từ khả năng thực thi / độ tin cậy của kết quả).
Haskell đã cho phép chúng tôi tuyên bố dứt khoát bao nhiêu chương trình là thuần túy và cung cấp các cách giới hạn các hoạt động cụ thể trong các hộp kín. Do tính song song / đồng thời trong Haskell được triển khai thông qua hệ thống loại , nên có thể lập luận rằng nó đã là một phần của cách đó (với những gì bạn muốn). Ngược lại, các ngôn ngữ bắt buộc (ngay cả những ngôn ngữ được gõ tĩnh như Java) cung cấp cho người viết mã nhiều, nhiều cách để lật đổ mọi nỗ lực này.
if condition then expensive_operation else cheap_operation
?