<div dir="ltr"><div class="markdown-here-wrapper" style=""><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>