Ответы на другие вопросы объяснили, что все программы Agda заканчиваются.
Насколько я понимаю, завершение любой действующей программы Adga - это требование, регулируемое усовершенствованной системой зависимых типов Agda.Это строгое требование, похоже, устранит множество ошибок.Тем не менее, также кажется, что запрет на не завершающиеся программы не позволит языку выразить некоторые полезные программы.Например, сервер - это программа, в которой возможность прерывания является критическим аспектом его функции.
Можно ли написать сервер в Agda?Я полагаю, что в этом случае можно практически обойти ограничение без прерываний, настроив сервер в конечном итоге завершить работу в течение миллиарда лет или около того.Но мне интересно, есть ли какая-то хитрость системы типов, которая может позволить Agda выражать некоторые такие не завершающиеся программы, возможно, только те, которые достигают статического замкнутого цикла какого-то рода.Если нет, то теоретически можно было бы когда-нибудь придумать такой трюк?
Без этой возможности кажется, что концепция Агды принципиально ограничена в наборе полезных программ, которые она может выразить.