Na przykład mam klasy typ:W Haskell, czy możliwe jest zapewnienie domyślnej implementacji dla częściowo zastosowanej klasy typu wieloparametrowego?
class MyClass a b c where
fun01 :: a -> b
fun02 :: a -> c
fun03 :: a -> b -> c ->()
fun04 :: a -> WhatEver
chciałbym zapewnić realizację domyślny dla mojej, nazwijmy to BaseDataType
który określa implementacje fun03
chodzi o to samo i fun01
i fun02
. Wtedy mam coś takiego:
class MyClass BaseDataType b c where
fun03 = fun01 <$> fun02 ...
fun04 = fun02 ...
I niż sfinalizować moje wystąpienie klasy i uniknąć cały kod szablonowe dla fun03
i fun04
bym po prostu dostarczyć fun01
i fun02
takiego:
instance MyClass BaseDataType Int Char where
fun01 = 1
fun02 = 'C'
Czy jest możliwe rozszerzenie języka, które pozwala na takie zachowanie? Nie mogłem znaleźć niczego na ten temat.
+1, ale nie liczyć to usuable dla PO, bo domyślnie jest _for all_ 'przypadki MyClass', nie tylko dla' MojaKlasa BaseDataType' specjalizacja. (W innych przypadkach domyślna implementacja spowoduje po prostu błąd typu niejasnego w celu wskazania, że niestandardowe wystąpienie musi zostać zastąpione). – leftaroundabout