
On Dec 15, 2011, at 12:03 PM, Ross Paterson wrote:
The current definition says that some and many should be the least solutions of the equations
some v = (:) <$> v <*> many v many v = some v <|> pure []
We could relax that to just requiring that they satisfy these equations (which I think is what John wants). In that case there would be another possible definition for Maybe:
some Nothing = Nothing some (Just x) = Just (repeat x)
many Nothing = Just [] many (Just x) = Just (repeat x)
That is a really good idea! In fact, this behavior was exactly what my intuition had at first suggested to me that these methods should do. But the part that still confuses me is: why are these not considered the "least" solutions of the equations? Cheers, Greg