Re: generation of type signatures for Accessors
Nicolas Pouillard <[email protected]> Tue, 24 Mar 2009 23:26:14 +0100
| Newsgroups | gmane.comp.lang.haskell.template |
|---|---|
| Message-ID | <[email protected]> |
--=-1237933574-324082-56441-2684-1-= Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Excerpts from brian's message of Tue Mar 24 18:22:17 +0100 2009: > On Tuesday, 24.03.09 at 09:45, Nicolas Pouillard wrote: > > Excerpts from brian's message of Tue Mar 24 03:22:51 +0100 2009: > > > Hey, I'm trying to modify data-accessor-template 'deriveAccessors' to > > > generate type signatures so -Wall doesn't complain. > > > > You should look at data-accessor-template-0.2.1 for solution then ;) > > Well, Henning released 0.2.1 because of the patch I sent him. Various > projects are breaking right now because I didn't know about the > parameterized records thing. That's why I'm asking on the list. Ooops, I could have said something more useful then :) Basically one have to ask for the parameters of the type (`a' here). One then have to use these parameters to build a fully applied type (`P a' here), finally one must bind those type variables using a universal quantification (`forall a.' here). I attach a darcs patch that does exactly this. However I've only tested a few test cases. PS: I've put Henning in copy of this message. -- Nicolas Pouillard --=-1237933574-324082-56441-2684-1-= Content-Disposition: attachment; filename="generate-valid-signatures-for-accessor-in-presence-of-parameterized-types_.dpatch" Content-Type: application/octet-stream; name="generate-valid-signatures-for-accessor-in-presence-of-parameterized-types_.dpatch" Content-Transfer-Encoding: base64 VHVlIE1hciAyNCAyMzoxODoyNSBDRVQgMjAwOSAgTmljb2xhcyBQb3VpbGxh cmQgPG5pY29sYXMucG91aWxsYXJkQGdtYWlsLmNvbT4KICAqIEdlbmVyYXRl IHZhbGlkIHNpZ25hdHVyZXMgZm9yIGFjY2Vzc29yIGluIHByZXNlbmNlIG9m IHBhcmFtZXRlcml6ZWQgdHlwZXMuCgpOZXcgcGF0Y2hlczoKCltHZW5lcmF0 ZSB2YWxpZCBzaWduYXR1cmVzIGZvciBhY2Nlc3NvciBpbiBwcmVzZW5jZSBv ZiBwYXJhbWV0ZXJpemVkIHR5cGVzLgpOaWNvbGFzIFBvdWlsbGFyZCA8bmlj b2xhcy5wb3VpbGxhcmRAZ21haWwuY29tPioqMjAwOTAzMjQyMjE4MjUKIEln bm9yZS10aGlzOiBiYmYyNWU3MjRjZDg3ZGFiYmRmZjM0MWJkMDU0YWI3MApd IHsKaHVuayAuL3RlbXBsYXRlL3NyYy9EYXRhL0FjY2Vzc29yL1RlbXBsYXRl LmhzIDczCiAgICAgcmVpZmllZCA8LSBjYXNlIGluZm8gb2YKICAgICAgICAg ICAgICAgICAgICAgVHlDb25JIGRlYyAtPiByZXR1cm4gZGVjCiAgICAgICAg ICAgICAgICAgICAgIF8gLT4gZmFpbCBlcnJtc2cKLSAgICBjb25zIDwtIGNh c2UgcmVpZmllZCBvZgotICAgICAgICAgICAgICAgICBEYXRhRCBfIF8gXyBj b25zJyBfIC0+IHJldHVybiBjb25zJwotICAgICAgICAgICAgICAgICBOZXd0 eXBlRCBfIF8gXyBjb24nIF8gLT4gcmV0dXJuIFtjb24nXQorICAgIChwYXJh bXMsIGNvbnMpIDwtIGNhc2UgcmVpZmllZCBvZgorICAgICAgICAgICAgICAg ICBEYXRhRCBfIF8gcGFyYW1zIGNvbnMnIF8gLT4gcmV0dXJuIChwYXJhbXMs IGNvbnMnKQorICAgICAgICAgICAgICAgICBOZXd0eXBlRCBfIF8gcGFyYW1z IGNvbicgXyAtPiByZXR1cm4gKHBhcmFtcywgW2NvbiddKQogICAgICAgICAg ICAgICAgICBfIC0+IGZhaWwgZXJybXNnCmh1bmsgLi90ZW1wbGF0ZS9zcmMv RGF0YS9BY2Nlc3Nvci9UZW1wbGF0ZS5ocyA3NwotICAgIGRlY3MgPC0gbGlm dE0gY29uY2F0ICQgbWFwTSBtYWtlQWNjcyBjb25zCisgICAgZGVjcyA8LSBs aWZ0TSBjb25jYXQgJCBtYXBNIChtYWtlQWNjcyBwYXJhbXMpIGNvbnMKICAg ICB3aGVuIChudWxsIGRlY3MpICQgcVJlcG9ydCBGYWxzZSBub2RlZm1zZwog ICAgIHJldHVybiBkZWNzCiAKaHVuayAuL3RlbXBsYXRlL3NyYy9EYXRhL0Fj Y2Vzc29yL1RlbXBsYXRlLmhzIDkzCiAgICAgICAgICAgKysgIlxuICAgIG5h bWVEZXJpdmVBY2Nlc3NvcnMsIHJlbWVtYmVyIGFjY2Vzc29ycyBhcmUiCiAg ICAgICAgICAgKysgIlxuICAgIG9ubHkgZ2VuZXJhdGVkIGZvciBmaWVsZHMg ZW5kaW5nIHdpdGggYW4gdW5kZXJzY29yZSIKIAotICAgIG1ha2VBY2NzIDo6 IENvbiAtPiBRIFtEZWNdCi0gICAgbWFrZUFjY3MgKFJlY0MgXyB2YXJzKSA9 Ci0gICAgICAgIGxpZnRNIChjb25jYXQgLiBjYXRNYXliZXMpICQgbWFwTSAo XCAobmFtZSxfLGZ0eXBlKSAtPiBtYWtlQWNjRnJvbU5hbWUgbmFtZSBmdHlw ZSkgdmFycwotICAgIG1ha2VBY2NzIChGb3JhbGxDIF8gXyBjKSA9IG1ha2VB Y2NzIGMKLSAgICBtYWtlQWNjcyBfID0gcmV0dXJuIFtdCisgICAgbWFrZUFj Y3MgOjogW05hbWVdIC0+IENvbiAtPiBRIFtEZWNdCisgICAgbWFrZUFjY3Mg cGFyYW1zIChSZWNDIF8gdmFycykgPQorICAgICAgICBsaWZ0TSAoY29uY2F0 IC4gY2F0TWF5YmVzKSAkIG1hcE0gKFwgKG5hbWUsXyxmdHlwZSkgLT4gbWFr ZUFjY0Zyb21OYW1lIG5hbWUgcGFyYW1zIGZ0eXBlKSB2YXJzCisgICAgbWFr ZUFjY3MgcGFyYW1zIChGb3JhbGxDIF8gXyBjKSA9IG1ha2VBY2NzIHBhcmFt cyBjCisgICAgbWFrZUFjY3MgXyBfID0gcmV0dXJuIFtdCiAKICAgICB0cmFu c2Zvcm1OYW1lIDo6IE5hbWUgLT4gTWF5YmUgTmFtZQogICAgIHRyYW5zZm9y bU5hbWUgKE5hbWUgb2NjIGYpID0gZG8KaHVuayAuL3RlbXBsYXRlL3NyYy9E YXRhL0FjY2Vzc29yL1RlbXBsYXRlLmhzIDEwNAogICAgICAgICBuIDwtIG5h bWVyIChvY2NTdHJpbmcgb2NjKQogICAgICAgICByZXR1cm4gJCBOYW1lICht a09jY05hbWUgbikgZgogCi0gICAgbWFrZUFjY0Zyb21OYW1lIDo6IE5hbWUg LT4gVHlwZSAtPiBRIChNYXliZSBbRGVjXSkKLSAgICBtYWtlQWNjRnJvbU5h bWUgbmFtZSBmdHlwZSA9IGRvCisgICAgbWFrZUFjY0Zyb21OYW1lIDo6IE5h bWUgLT4gW05hbWVdIC0+IFR5cGUgLT4gUSAoTWF5YmUgW0RlY10pCisgICAg bWFrZUFjY0Zyb21OYW1lIG5hbWUgcGFyYW1zIGZ0eXBlID0gZG8KICAgICAg ICAgY2FzZSB0cmFuc2Zvcm1OYW1lIG5hbWUgb2YKICAgICAgICAgICAgIE5v dGhpbmcgLT4gcmV0dXJuIE5vdGhpbmcKaHVuayAuL3RlbXBsYXRlL3NyYy9E YXRhL0FjY2Vzc29yL1RlbXBsYXRlLmhzIDEwOAotICAgICAgICAgICAgSnVz dCBuIC0+IGxpZnRNIEp1c3QgJCBtYWtlQWNjIG5hbWUgZnR5cGUgbgorICAg ICAgICAgICAgSnVzdCBuIC0+IGxpZnRNIEp1c3QgJCBtYWtlQWNjIG5hbWUg cGFyYW1zIGZ0eXBlIG4KIAogICAgIC0tIGhhZGRvY2sgZG9lc24ndCBncm9r IFRICiAjaWZuZGVmIF9fSEFERE9DS19fCmh1bmsgLi90ZW1wbGF0ZS9zcmMv RGF0YS9BY2Nlc3Nvci9UZW1wbGF0ZS5ocyAxMTMKIAotICAgIG1ha2VBY2Mg OjogTmFtZSAtPiBUeXBlIC0+IE5hbWUgLT4gUSBbRGVjXQotICAgIG1ha2VB Y2MgbmFtZSBmdHlwZSBhY2NOYW1lID0gZG8KKyAgICBtYWtlQWNjIDo6TmFt ZSAtPiBbTmFtZV0gLT4gVHlwZSAtPiBOYW1lIC0+IFEgW0RlY10KKyAgICBt YWtlQWNjIG5hbWUgcGFyYW1zIGZ0eXBlIGFjY05hbWUgPSBkbworICAgICAg ICBsZXQgYXBwbGllZFQgPSBmb2xkbCBBcHBUIChDb25UIHQpIChtYXAgVmFy VCBwYXJhbXMpCiAgICAgICAgIGJvZHkgPC0gW3wKICAgICAgICAgICAgICAg ICAgQWNjZXNzb3IuZnJvbVNldEdldAogICAgICAgICAgICAgICAgICAgICAo IFx4IHMgLT4KaHVuayAuL3RlbXBsYXRlL3NyYy9EYXRhL0FjY2Vzc29yL1Rl bXBsYXRlLmhzIDEyMwogICAgICAgICAgICAgICAgICAgICAoICQoIHJldHVy biAkIFZhckUgbmFtZSApICkKICAgICAgICAgICAgICAgICB8XQogICAgICAg ICByZXR1cm4KLSAgICAgICAgICBbIFNpZ0QgYWNjTmFtZSAoQXBwVCAoQXBw VCAoQ29uVCAnJ0FjY2Vzc29yLlQpIChDb25UIHQpKSBmdHlwZSkKKyAgICAg ICAgICBbIFNpZ0QgYWNjTmFtZSAoRm9yYWxsVCBwYXJhbXMgW10gKEFwcFQg KEFwcFQgKENvblQgJydBY2Nlc3Nvci5UKSBhcHBsaWVkVCkgZnR5cGUpKQog ICAgICAgICAgICwgVmFsRCAoVmFyUCBhY2NOYW1lKSAoTm9ybWFsQiBib2R5 KSBbXQogICAgICAgICAgIF0KIAp9CgpDb250ZXh0OgoKW1RlbXBsYXRlLnN0 cmlwVW5kZXJzY29yZTogdXNlIHZpZXdSIGluc3RlYWQgb2YgbGFzdCBhbmQg aW5pdCBzaW5jZSB0aGlzIHNhZmVseSBwcmV2ZW50ICdlcnJvcidzCmhhc2tl bGxAaGVubmluZy10aGllbGVtYW5uLmRlKioyMDA5MDMxMjE2MTc1MV0gCltn ZW5lcmF0ZSB0eXBlIHNpZ25hdHVyZSBmb3IgYWNjZXNzb3JzIChwYXRjaCBi eSBicmlhbkBsb3JmLm9yZykKaGFza2VsbEBoZW5uaW5nLXRoaWVsZW1hbm4u ZGUqKjIwMDkwMzEyMTYwNTEyXSAKW0Jhc2ljLmxpZnQKaGFza2VsbEBoZW5u aW5nLXRoaWVsZW1hbm4uZGUqKjIwMDkwMzAyMTUyOTQwXSAKW2J1bXAgdmVy c2lvbiBtb25hZCBzdWJwYWNrYWdlcyB0byAwLjIuMQpoYXNrZWxsQGhlbm5p bmctdGhpZWxlbWFubi5kZSoqMjAwOTAyMjYyMjAwMDBdIApbbW9uYWRzLWZk LCBtdGwsIHRyYW5zZm9ybWVyczogc3ViLXBhY2thZ2VzIGZvciBoYW5kbGlu ZyBBY2Nlc3NvcnMgb24gU3RhdGUgaW4gdmFyaW91cyBNVEwgZm9ya3MKaGFz a2VsbEBoZW5uaW5nLXRoaWVsZW1hbm4uZGUqKjIwMDkwMjI2MjE1NDU5XSAK W3J1biB0ZXN0IHZpYSBNYWtlZmlsZQpoYXNrZWxsQGhlbm5pbmctdGhpZWxl bWFubi5kZSoqMjAwOTAyMjYyMTIxNDVdIApbYnVtcCB2ZXJzaW9uIHRvIDAu Mi4xCmhhc2tlbGxAaGVubmluZy10aGllbGVtYW5uLmRlKioyMDA5MDExMDIy NDIxOV0gCltUQUcgMC4yLjAuMgpoYXNrZWxsQGhlbm5pbmctdGhpZWxlbWFu bi5kZSoqMjAwOTAxMTAyMjIzNTJdIApbcmVsYXggdmVyc2lvbiBkZXBlbmRl bmN5IG9uIHRyYW5zZm9ybWVycwpoYXNrZWxsQGhlbm5pbmctdGhpZWxlbWFu bi5kZSoqMjAwOTAxMTAyMjIwMTddIApbVEFHIDAuMi4wLjEKaGFza2VsbEBo ZW5uaW5nLXRoaWVsZW1hbm4uZGUqKjIwMDkwMTA2MDEwMDU2XSAKUGF0Y2gg YnVuZGxlIGhhc2g6CjA4MTc0ZjE3MjUxNmU2NTBjZDJmMGVhM2Y3YzUzODM4 MWQ2OWYwMDkK --=-1237933574-324082-56441-2684-1-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ template-haskell mailing list [email protected] http://www.haskell.org/mailman/listinfo/template-haskell --=-1237933574-324082-56441-2684-1-=--