Sepertinya instance Bounded harus memiliki implementasi Enum yang waras. Saya pribadi tidak bisa memikirkan contoh tandingan, meskipun jika seseorang menemukan yang tidak patologis maka saya akan mengerti mengapa ini tidak terjadi.
Dari melakukan :i
pada dua typeclasses sepertinya satu-satunya pengecualian saat ini di perpustakaan standar adalah untuk tupel, yang Dibatasi tetapi tidak Enum. Namun tuple Terikat juga harus Enumerable dengan cara yang waras, dengan hanya menambah elemen terakhir dan kemudian membungkus ketika sampai ke maxBound.
Perubahan ini mungkin juga akan melibatkan penambahan predB
dan nextB
atau sesuatu seperti itu ke Dibatasi untuk cara yang aman / berulang untuk melintasi melalui nilai-nilai Enum. Dalam hal ini toEnum 0 :: (...)
akan sama dengan(toEnum 0, toEnum 0, ...) :: (...)
Double
/ Float
dan semua jenis yang sama Enum
tetap menerapkan , mereka hanya membuat succ = (+ 1)
dan fromEnum = truncate
. Cara Haskell benar-benar masuk akal dari perspektif kepraktisan sebagaimana sebaliknya [0, 0,5 ..] dan yang serupa tidak akan berhasil, sehingga tampaknya Haskell tidak khawatir tentang kemampuan berhitung ketika datang ke Enums.