Есть ли какая-то логика в том, что для ExceptT инстанс MonadFail определен через "внутреннюю" монаду, а MonadError "как есть"?
А не логичней бы было какой-нибудь такой инстанс иметь? instance (Monad m, IsString e) => MonadFail (ExceptT e m)
Переменная среды %http_proxy% случайно определена?
Что показывает вызов stack exec -- hie --version в каталоге проекта?
Потому что людям как-то сложновато его собрать и заставить работать?
А если попробовать stack dot :binary2?
Это типа самописный?