<div dir="auto">This makes sense to me, and provides a good explanation for why I mix up the terms. </div><div dir="auto"><br></div><div dir="auto">So usual parlance is reify brings stuff back down/ reflect bounces it up?</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 23, 2021 at 2:16 AM Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io">arnaud.spiwack@tweag.io</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><p style="margin:0px 0px 1.2em!important">While I do value consistency, let me pet-peeve for a minute here (sorry in advance Edward for the rant). The word “reify” comes from the latin “res”, which means object/thing. It should always mean something along the line of “making more concrete”. In normalisation by evaluation, for instance, you reify a semantic value as syntax (an object of the language of study), and you reflect values of the language into the semantic domain.</p>
<p style="margin:0px 0px 1.2em!important">To me, the reflection library uses the terms inconsistently. For instance you have the type <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">ReifiedMonoid</code> for the concrete type representing a monoid instance. This is, in my opinion, the right terminology. However, a <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">ReifiedMonoid</code> should be the product of reification, but in the <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">reflection</code> library it actually gets <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">reify</code>-d further. This doesn’t seem to work at the grammar level. I contend that the function should have been <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">reflect</code> all along: you reflect a concrete dictionary object into the nebulous, untouchable world of type class instances.</p>
<p style="margin:0px 0px 1.2em!important">It’s probably too late to fix the reflection library, hence me never complaining about it (in public :-) ). But I vote we don’t perpetuate this situation, and still call the function <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">reflectDict</code>.</p>
<div title="MDH:PGRpdj5XaGlsZSBJIGRvIHZhbHVlIGNvbnNpc3RlbmN5LCBsZXQgbWUgcGV0LXBlZXZlIGZvciBh
IG1pbnV0ZSBoZXJlIChzb3JyeSBpbiBhZHZhbmNlIEVkd2FyZCBmb3IgdGhlIHJhbnQpLiBUaGUg
d29yZCDigJxyZWlmeeKAnSBjb21lcyBmcm9tIHRoZSBsYXRpbiDigJxyZXPigJ0sIHdoaWNoIG1l
YW5zIG9iamVjdC90aGluZy4gSXQgc2hvdWxkIGFsd2F5cyBtZWFuIHNvbWV0aGluZyBhbG9uZyB0
aGUgbGluZSBvZiDigJxtYWtpbmcgbW9yZSBjb25jcmV0ZeKAnS4gSW4gbm9ybWFsaXNhdGlvbiBi
eSBldmFsdWF0aW9uLCBmb3IgaW5zdGFuY2UsIHlvdSByZWlmeSBhIHNlbWFudGljIHZhbHVlIGFz
IHN5bnRheCAoYW4gb2JqZWN0IG9mIHRoZSBsYW5ndWFnZSBvZiBzdHVkeSksIGFuZCB5b3UgcmVm
bGVjdCB2YWx1ZXMgb2YgdGhlIGxhbmd1YWdlIGludG8gdGhlIHNlbWFudGljIGRvbWFpbi48L2Rp
dj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRvIG1lLCB0aGUgcmVmbGVjdGlvbiBsaWJyYXJ5IHVzZXMg
dGhlIHRlcm1zIGluY29uc2lzdGVudGx5LiBGb3IgaW5zdGFuY2UgeW91IGhhdmUgdGhlIHR5cGUg
YFJlaWZpZWRNb25vaWRgIGZvciB0aGUgY29uY3JldGUgdHlwZSByZXByZXNlbnRpbmcgYSBtb25v
aWQgaW5zdGFuY2UuIFRoaXMgaXMsIGluIG15IG9waW5pb24sIHRoZSByaWdodCB0ZXJtaW5vbG9n
eS4gSG93ZXZlciwgYSBgUmVpZmllZE1vbm9pZGAgc2hvdWxkIGJlIHRoZSBwcm9kdWN0IG9mIHJl
aWZpY2F0aW9uLCBidXQgaW4gdGhlIGByZWZsZWN0aW9uYCBsaWJyYXJ5IGl0IGFjdHVhbGx5IGdl
dHMgYHJlaWZ5YC1kIGZ1cnRoZXIuIFRoaXMgZG9lc24ndCBzZWVtIHRvIHdvcmsgYXQgdGhlIGdy
YW1tYXIgbGV2ZWwuIEkgY29udGVuZCB0aGF0IHRoZSBmdW5jdGlvbiBzaG91bGQgaGF2ZSBiZWVu
IGByZWZsZWN0YCBhbGwgYWxvbmc6IHlvdSByZWZsZWN0IGEgY29uY3JldGUgZGljdGlvbmFyeSBv
YmplY3QgaW50byB0aGUgbmVidWxvdXMsIHVudG91Y2hhYmxlIHdvcmxkIG9mIHR5cGUgY2xhc3Mg
aW5zdGFuY2VzLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SXQncyBwcm9iYWJseSB0b28gbGF0
ZSB0byBmaXggdGhlIHJlZmxlY3Rpb24gbGlicmFyeSwgaGVuY2UgbWUgbmV2ZXIgY29tcGxhaW5p
bmcgYWJvdXQgaXQgKGluIHB1YmxpYyA6LSkgKS4gQnV0IEkgdm90ZSB3ZSBkb24ndCBwZXJwZXR1
YXRlIHRoaXMgc2l0dWF0aW9uLCBhbmQgc3RpbGwgY2FsbCB0aGUgZnVuY3Rpb24gYHJlZmxlY3RE
aWN0YC48YnI+PC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div>