Также остается свобода в выборе формирователей типов. Единственным средством формирования типов, наличия которого мы требуем, является инкапсуляция. Возможны другие формирователи типов, такие как родовые типы или генераторы типов (например, set[T], где T может быть произвольным типом), ограничение, объединение или стрелка (функции).
Система типов может быть первого или второго порядка. Наконец, система типов для переменных может быть богаче системы типов для объектов.