On 25/05/13 06:06, Alexander Solla wrote: > On Fri, May 24, 2013 at 10:41 AM, Niklas Hambüchen <m...@nh2.me > <mailto:m...@nh2.me>> wrote: > > On Sat 25 May 2013 00:37:59 SGT, TP wrote: > > Is this the right way to go? Is there any other solution? > > I believe whether it's right or just depends on what you want to > express. > > > Do you confirm that tilde in s~s1 means "s has the same type as s1"? > > It means: Both your s and s1 are "Eq"s but not necessarily the same one. > > > No, it doesn't. s1 ~ s2 means the types are the same. ~ is the > "equality constraint". > > http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/equality-constraints.html > > To say that s1 and s2 are Eq's, but not necessarily the same one, we > would write a constraint of the form:
Sorry, I didn't formulate that clearly: I meant to describe what the problem in the complaint about s1 ~ s2 is, not what s1 ~ s2 means. > Your first example allows that, so you could have one with an Int and > one with a String inside (both are Eqs). > > ... > > Nope. It would perform (Just 1) == (cast "hello"), which is completely > possible, since (cast "hello") has the same type as (Just 1). That's why I said "your first example"; there is no cast in it. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe