[Haskell-cafe] Serialization of (a -> b) and IO a

Dan Doel dan.doel at gmail.com
Thu Nov 11 17:28:00 EST 2010


On Thursday 11 November 2010 12:34:21 pm John Lato wrote:
> I think the only way this would work would be if you consider functions to
> be equal only to themselves, i.e. "x+x" and "2*x" are not equal.  That's
> not a trade-off I would be willing to make.

In general, it doesn't even have to be based on a mathematical identity. As 
has been stated, this would in general simply break referential transparency. 
Are these two functions equal:

  f x = k (h x) (h x)
  g x = let y = h x in k y y

Presumably, no, if serialize exists (and they may have different performance 
characteristics).

You cannot factor out or inline subexpressions or without the difference being 
observable (presumably) by serialize.

-- Dan


More information about the Haskell-Cafe mailing list