T>>http://lambda-the-ultimate.org/node/3319#comment-48760
T>>On the Logical Basis of Evaluation Order and Pattern Matching
T>>...the answer to the question of eager vs. lazy evaluation is encoded in types, rather than being a global property of the language.
T>>А действительно, почему бы и нет? Эффекты-то типами отделяют, так и с порядком вычислений можно сделать.
MC>Наличие чего-либо — в данном случае — контроля за lazy/strict на уровне типов — как правило лучше отсутствия. Но все-таки интересно было бы поглядеть на то, как это реализовано, что называется — подержать в руках.
Получится использование fmap вместо map, mplus вместо ++ и прочее.
Потребуется писать более обобщённый код. И обычный список, и строгий будут реализовывать все интерфейсы, что необходимы для быстрой смены кода.
Собственно, всё.
Жизнь, конечно, немного усложнится, как всегда при наличии выбора.