В том определении "этот код монадный", есть неявный постулат, что "монадный" код - это полиморфный по типу монады код, а вовсе не код, реализующий монадчическое поведение. И этот неявный постулат не выдерживает критики. Потому что в другом коде тоже есть unless, when, repeatM. Вот если бы определение было "код монадный полиморфно, когда есть 1 unless, when, etc" - можно было бы согласиться. В противном случае он таки "монадный", даже если не полиморфный