Yanlışlıkla aşağıdaki gayet derleme kod olduğunu keşfettim:Neden sınıflar tip parametreleri olarak ve ne için kullanılabilir?
class SomeClass a
someValue :: Maybe (SomeClass a)
someValue = undefined
Ben sadece tip kısıtlamaları sınıfları görmeye alışkınım, bu yüzden anlamıyorum neden kod typechecks ve amacı nedir bu sınıfları bu şekilde kullanarak.
GHC'deyim 7.6.2.
Herhangi bir GHC uzantısı var mı? Kısıtlama türleri etkinleştirildiğinde, türün bir uyumsuzluğunu, yani 'Belki :: * -> * 've' SomeClass :: * -> Constraint' türlerini alacağınızı umuyorum. Bellek bana hizmet ediyorsa sınıflar ve türler aynı ad alanını paylaşır ve bu en iyi ihtimalle bir tür hatadır, bu yüzden derleyicinin neden kabul edileceğinden emin değilim. –
@ C.A.McCann No. Yok. Sadece soruların içeriği ile bir dosyanın basit bir 'runghc'. –
Merak etme, 'undefined' yerine 'Nothing' ile değiştirirseniz ne olur? –