<div dir="ltr"><div>Hello Oleg,</div><div><br></div><div>Is there a good, somewhat up-to-date source of reference to find out what exactly is different? Is it the STG paper from 1992 (“Implementing lazy functional languages on stock hardware”)?</div><div><br></div><div>--</div><div>Best wishes,</div><div>Artem Pelenitstyn<br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 25 Feb 2019 at 10:17 Oleg Grenrus <<a href="mailto:oleg.grenrus@iki.fi">oleg.grenrus@iki.fi</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><div style="direction:inherit"><span style="background-color:rgba(255,255,255,0)">Two data types are `Coercible` (as in Data.Coerce) if their representation in memory is the same: they are representiationally equivalent You ask for looser structural isomorphism, consider e.g. </span></div><div style="direction:inherit"><span style="background-color:rgba(255,255,255,0)"><br></span></div><div style="direction:inherit"><span style="background-color:rgba(255,255,255,0)">    data B b = B {-# UNPACK #-} !Int b</span></div><div style="direction:inherit"><span style="background-color:rgba(255,255,255,0)"><br></span></div><div style="direction:inherit">and</div><div style="direction:inherit"><br></div><div style="direction:inherit">    (Int, b)</div><div style="direction:inherit"><br></div><div style="direction:inherit">The values of these types have quite different representation/memory layout.</div></div></div><div dir="auto"><div><div style="direction:inherit"><br></div><div style="direction:inherit">- Oleg</div></div></div><div dir="auto"><div><br>On 25 Feb 2019, at 16.38, Georgi Lyubenov <<a href="mailto:godzbanebane@gmail.com" target="_blank">godzbanebane@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Greetings!<br><br>Is there any reason behind/what is the reason behind<br>```<br>data A a b = A a b<br>```<br>and<br>```<br>(a, b)<br>```<br><br>not being coercible?<br><br>And in general all n-ary constructors not being coercible to one another?<br><br>Thanks in advance!<div><br>=======<br>Georgi</div></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Haskell-Cafe mailing list</span><br><span>To (un)subscribe, modify options or view archives go to:</span><br><span><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a></span><br><span>Only members subscribed via the mailman list are allowed to post.</span></div></blockquote></div>_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div></div>