То, что сказано в заголовке. Если я напишу сигнатуру типа, возможно ли алгоритмически сгенерировать выражение, имеющее эту сигнатуру?
Кажется правдоподобным, что это возможно сделать. Мы уже знаем, что если тип является особым-случаем сигнатуры типа библиотечной функции, Hoogle может найти эту функцию алгоритмически. С другой стороны, многие простые проблемы, связанные с общими выражениями, на самом деле неразрешимы (, например, невозможно узнать, делают ли две функции одно и то же ), так что маловероятно, что это одна из них.
Вероятно, дурной тон задавать сразу несколько вопросов, но я хотел бы знать:
Можно ли это сделать?
Если да, то как?
Если нет, то существуют ли какие-либо ограниченные ситуации, когда это становится возможным?
Вполне возможно, что два разных выражения имеют сигнатуру одного и того же типа. Сможете ли вы вычислить все из них? Или даже некоторых из них?
Есть ли у кого-нибудь работающий код, который делает это на самом деле?