[Haskell-cafe] Language extensions

Tomasz Zielonka tomasz.zielonka at gmail.com
Thu May 31 03:22:31 EDT 2007


On Wed, May 30, 2007 at 11:21:45PM +0200, Roberto Zunino wrote:
> Tomasz Zielonka wrote:
> > In the Ord variant, the result value pretty much has to come from the
> > input list or be bottom. It has to be bottom for the empty list. If
> > f :: Ord a => [a] -> a and g preserves order (is monotonic) then
> >     f (map g l) == g (f l)
> > This could be nice for testing Ord instances. Unfortunately, for bounded
> > types the only order preserving function is id.
> 
> Interesting... are the following g allowed? (I am relatively new to
> parametericity results.)

And I am only using my intuition, not a deep knowledge of such results
:-)

> (\!x -> (x,4))            -- bounded types (?)

Ah, right! I unneccesarily restricted g's type to be (compatible with)
t -> t.

> ($!) Data.List.repeat     -- ;-) unbounded types

You got me - I'm not sure how to respond to that. Let's try: this
function doesn't preserve computable equality. I probably should
require that at the beginning.

BTW, why so many exclamation marks in your code? Are they essential?

Best regards
Tomek


More information about the Haskell-Cafe mailing list