получается где то захаркодили с этим IO, этим он отличается от монады которую я сделать могу сам, правильно? как он знает что нельзя зависеть от терма который содержить вызов с IO. ? Вообще же поидее не от любого выражения можно делать завтипы. хм не понятно.