প্রদত্ত :
data Foo =
FooString String
…
class Fooable a where --(is this a good way to name this?)
toFoo :: a -> Foo
আমি String
একটি উদাহরণ তৈরি করতে চাই Fooable
:
instance Fooable String where
toFoo = FooString
জিএইচসি তারপরে অভিযোগ করেছেন:
Illegal instance declaration for `Fooable String'
(All instance types must be of the form (T t1 ... tn)
where T is not a synonym.
Use -XTypeSynonymInstances if you want to disable this.)
In the instance declaration for `Fooable String'
পরিবর্তে যদি আমি ব্যবহার করি [Char]
:
instance Fooable [Char] where
toFoo = FooString
জিএইচসি অভিযোগ করেছেন:
Illegal instance declaration for `Fooable [Char]'
(All instance types must be of the form (T a1 ... an)
where a1 ... an are type *variables*,
and each type variable appears at most once in the instance head.
Use -XFlexibleInstances if you want to disable this.)
In the instance declaration for `Fooable [Char]'
প্রশ্ন :
- আমি স্ট্রিং এবং টাইপক্লাসের উদাহরণটি তৈরি করতে পারি না কেন?
- যদি আমি অতিরিক্ত পতাকা যুক্ত করি তবে জিএইচসি আমাকে এখান থেকে সরিয়ে নিতে রাজি মনে হচ্ছে। এই একটি ভাল ধারণা?