Синоним типа (Haskell)

В функциональном языке программирования Haskell синонимом типа называется определение, записанное при помощи ключевого слова type. Такое определение формирует краткое (или мнемоническое) наименование некоторого типа, которое используется исключительно в качестве сокращения и является полностью тождественным самому типу. При определении синонимов типов можно использовать полиморфизм.

Основное назначение синонимов — создание единственного места, где определяется некоторый сложный тип данных, не связанный с конструированием объектов в памяти. Это единственное место (собственно, определение синонима) используется для того, чтобы в нужный момент заменить определение типа в одном месте, чтобы оно автоматически поменялось во всём исходном коде, где только используется.

Примеры:

type IntList = [Int]

type Field a = [[a]]

type Function a b = a -> b

Синонимы типов могут использоваться везде, где могут использоваться сами типы, за исключением одного места — определения экземпляров классов.