Status of nubOrd (Proposal #2629)
bertram.felgenhauer at googlemail.com
Thu Oct 9 11:08:22 EDT 2008
Wolfgang Jeltsch wrote:
> Am Donnerstag, 9. Oktober 2008 10:41 schrieb Bart Massey:
> > > nubBool = take 2 . nub
Hmm, I wrote that.
> nub [False,True,undefined] => _|_
Surely you mean False : True : _|_
> nubBool [False,True,undefined] => [False,True]
> right? Is this really intended?
Yes. It's a feature. I'm perfectly happy with
nub :: [Bool] -> [Bool] ⊑ nubBool,
which means that pure functions using 'nubBool' will never fail when
using 'nub' instead works, because pure functions are monotonous. Most
of the time, relaxing the strictness of functions is not a problem.
> Take care. Bool has three values (False, True and _|_).
> This is no Agda. ;-)
Yes, I know. But for some reason people rarely try to actually evaluate
a _|_ value, even in Haskell. ;-)
More information about the Libraries