I noticed that the *By functions (deleteBy, deleteFirstsBy, elemBy,
etc.) in the current on-line HTML library documentation have type signatures
which restrict the types beyond that required by the implementation.
For instance:
elemBy, notElemBy :: (a -> a -> Bool) -> a -> [a] -> Bool
elemBy eq _ [] = False
elemBy eq x (y:ys) = x `eq` y || elemBy eq x ys
My recollection is that when I brought this up last on this mailing
list, public input ran in favor of not restricting the type signature.
(For instance
elemBy, notElemBy :: (a -> b -> Bool) -> a -> [b] -> Bool
)
I bring this up because I've written code using the more general type
signature.
Has this issue been decided one way or the other?
mike gunter
P.S. I think there are minor errors in one of the definitions of
elemBy and the definition of deleteBy.