я кстати нашел для себя способ признать этот синтаксик корректным, а не как багу. Через лисповый аналог
(let [(a 42)
(b
(+ a 1))]
(+ a b))
ну то есть это конечно не обязательно, но так стало намного проще лично мне, потому что причины такого отступа в лиспе уже очевидны
а, ну можно и в хаскеле так же написать, тогда тоже будет очевидно
let a =
42
b =
a + 1
in a + b
в общем нужно просто принять, что let для множества байндингов, а не только для одного как привычно из массовых языков