while - это структурное программирование, проверяемое компилятором. Монады как они сейчас с законами, но без проверки их исполнения - это goto времён Дейкстры - suggestions, а не laws.
Как только эти laws будут проверяемы компилятором (не знамо как - либо новый синтаксис, как в случае со структурным программированием, либо "умным компилятором"), тогда и можно говорить о чём-то.
Я вот даже когда на динамически-типизированных языках пишу, я пишу на самом деле на статически-типизированных языках, только типизация энфорсится методом пристального взгляда.