Без заголовка
The benefits of lazy evaluation include (http://en.wikipedia.org/wiki/Lazy_evaluation):
-- Performance increases by avoiding needless calculations, and error conditions in evaluating compound expressions
-- The ability to construct potentially infinite data structures
-- The ability to define control flow (structures) as abstractions instead of primitives
Вот два последних -- это для меня непосредственное отношение к расширяемости языков имеет.
А про макросы Хаскеля я не слишком хорошо знаю, мы консерваториев этих не кончали (что, кстати, лишний раз иллюстрирует тезис моего псто).
Ну, и есть еще вариант, что я вообще что-то по-крупному не понимаю в этих нишевых боданиях "будущих Паскалей и Джав". Я всё-таки не практикующий ныне программист, а сильно из бывших :-)