A default signature in general does not alleviate the user from implementing the corresponding method in instances. They only apply to special situations. Thus, they should not be taken into account when computing the MINIMAL complete definition.
If I think about it, it is probably best to never try to compute the minimal complete definition automatically, but only verbalize the contents of the MINIMAL pragma when it is given.
A
default
signature in general does not alleviate the user from implementing the corresponding method in instances. They only apply to special situations. Thus, they should not be taken into account when computing theMINIMAL
complete definition.E.g., in https://hackage.haskell.org/package/equivalence-0.4.0.1/docs/Data-Equivalence-Monad.html#t:MonadEquiv the "Minimal complete definition" is stated to be
Nothing
because every method has adefault
signature or a conventional default implementation. However, this statement is wrong in the sense that a nakedinstance
will lead to broken code in all cases.If I think about it, it is probably best to never try to compute the minimal complete definition automatically, but only verbalize the contents of the
MINIMAL
pragma when it is given.