इस कोड को ठीक संकलित:समस्या जब प्रकार वर्गों और प्रकार परिवारों मिश्रण
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances,
UndecidableInstances, FlexibleContexts, EmptyDataDecls, ScopedTypeVariables,
TypeOperators, TypeSynonymInstances, TypeFamilies #-}
class Sel a s b where
type Res a s b :: *
instance Sel a s b where
type Res a s b = (s -> (b,s))
instance Sel a s (b->(c,a)) where
type Res a s (b->(c,a)) = (b -> s -> (c,s))
लेकिन जैसे ही मैं आर विधेय GHC जोड़ने के रूप में विफल रहता है:
Illegal type synonym family application in instance:
b -> (c, Rec a)
In the instance declaration for `Sel a s (b -> (c, Rec a))'
:
{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances,
UndecidableInstances, FlexibleContexts, EmptyDataDecls, ScopedTypeVariables,
TypeOperators, TypeSynonymInstances, TypeFamilies #-}
class Sel a s b where
type Res a s b :: *
instance Sel a s b where
type Res a s b = (s -> (b,s))
class R a where
type Rec a :: *
cons :: a -> Rec a
elim :: Rec a -> a
instance Sel a s (b->(c,Rec a)) where
type Res a s (b->(c,Rec a)) = (b -> s -> (c,s))
कि शिकायत
इसका क्या अर्थ है और (सबसे महत्वपूर्ण बात यह है कि मैं इसे कैसे ठीक करूं?
धन्यवाद
कोड का पहला भाग मेरे लिए ठीक संकलित नहीं करता है। जीएचसी (6.12.1) ने 'विवादित पारिवारिक उदाहरण घोषणाओं' की शिकायत की है। – kennytm