Я только понял, что на самом деле законно писать это:
let _ = sum [1..100]
in "Hello"
Передача let-binding, кажется, ничего не делает.
Но теперь я задаюсь вопросом о точной семантике здесь. Можно написать программу, которая содержит привязку _
, и все же удаление этой привязки заметно изменит значение указанной программы?
В принципе, мне интересно, можно ли автоматически удалить такие привязки. Насколько я могу судить, значение этой привязки не может ни на что повлиять. Тем не менее, кажется гипотетически возможным, что этот тип может повлиять на что-то еще. Может ли кто-нибудь построить пример?