ile eşleşemedi Bir dizenin N karakterden daha az olmasını garanti eden bir tür oluşturmaya çalışıyorum. src/Simple/Reporting/Metro2/TextMax.hs:18:50: error:
• Couldn't match kind ‘*’ with ‘Nat’
üzerinden endekslenen bir veri türü ile eşleşen kalıplarda yer alan kalıpları anlamak için, Haskell'de DataKinds ve TypeFamilies ile oynuyordum ve oluşturulan Core GHC'ye bakmaya başladım. İşte sorumu
Tür, GHC.TypeLits.Nat türlerine göre nasıl yeni bir hesaplama tanımlar? Bir tür aileyi tanımlayabilecek umuyorum type family WIDTH (n :: Nat) :: Nat
öyle ki WIDTH 0 ~ 0 ve WIDTH (n+1) ~ log2 n
yüzden son zamanlarda bu düzgün fikir geldi bir terfi veri türü bütün davaları kapsayan: {-# LANGUAGE FlexibleInstances, DataKinds, KindSignatures #-}
module State where
data Strictness = Strict |
Tip aileleriyle veri türlerini kullanırken ilginç bir durum buldum. Derleyicinin hata iletisi No instance for (C (ID())) arising from a use of W. Doymuş olsa bile, bir tip aile uygulamasının tam olara