Avoiding "No explicit method ..." warnings
Keean Schupke
k.schupke@imperial.ac.uk
Tue, 21 Jan 2003 13:45:54 +0000
I think if you define a default method in the class definition you will not
get this message - the default one can do nothing.
Regards,
Keean Schupke
George Russell wrote:
>This isn't a bug, just a suggestion. It's not even a very important
>suggestion, but one that might be worth implementing if it's easy and you can
>find the the time. Or perhaps I am just doing things the wrong way?
>
>The point is that I sometimes have something like the following situation
>
>class ComplicatedClass x where
> simpleTitleFn :: x -> String
> muchMoreComplicatedTitleFn :: extra arguments -> x -> IO (WithError (Source blah blah blah String)
>
> muchMoreComplicatedTitleFn _ x = [ ... some expression involving simpleTitleFn ...]
>
>The idea is that only muchMoreComplicatedTitleFn must always work; however instances may
>choose to implement it directly, or implement the much simpler function simpleTitleFn
>(if that does all they want).
>
>At the moment the situation is that someone who defines just "muchMoreComplicatedTitleFn"
>will get an unnecessary warning message from the compiler about "No explicit method or
>default method for simpleTitleFn". I suggest instead introducing a new class of
>optional method (for example, via a pragma {-# OPTIONAL_METHOD simpleTitleFn #-}) which
>compiles exactly as normal except that (1) no warning is given for instances which don't
>define it; (2) a warning is given whenever anyone outside the class declaration *uses*
>simpleTitleFn.
>_______________________________________________
>Glasgow-haskell-users mailing list
>Glasgow-haskell-users@haskell.org
>http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>
>