Re: Functional design question
[email protected] Mon, 23 Mar 2026 02:15:11 +0100
| Newsgroups | gmane.comp.lang.haskell.cafe |
|---|---|
| Message-ID | <[email protected]> |
QW0gMjMuMDMuMjYgdW0gMDE6MDcgc2NocmllYiBBa2hyYSBHYW5ub246DQo+IGhvbmVzdGx5LCB0 aGUgd2F5IHlvdSd2ZSBsYWlkIGl0IG91dCBsb29rcyBwZXJmZWN0bHkgcmVhc29uYWJsZSB0byBt ZSEgDQo+IGl0IGdlbmVyYWxseSBmb2xsb3dzIHRoZSBwcmluY2lwbGUgb3QgInBhcnNlLCBkb24n dCB2YWxpZGF0ZSIgbGFpZCBvdXQgDQo+IGhlcmU6IGh0dHBzOi8vbGV4aS1sYW1iZGEuZ2l0aHVi LmlvL2Jsb2cvMjAxOS8xMS8wNS9wYXJzZS1kb24tdC0gDQo+IHZhbGlkYXRlLyA8aHR0cHM6Ly9s ZXhpLWxhbWJkYS5naXRodWIuaW8vYmxvZy8yMDE5LzExLzA1L3BhcnNlLWRvbi10LSANCj4gdmFs aWRhdGUvPg0KDQpIZWguIFRvb2sgbWUgbG9uZyBlbm91Z2ggdG8gYXJyaXZlIGF0IHRoZSBzYW1l IGNvbmNsdXNpb25zLCB0aG91Z2ggaXQgDQp3YXMgbW9yZSBhbiBpbnR1aXRpdmUgcHJvY2VzcyB0 aGFuIHRoZSBjbGVhcihpc2gpIGV4cGxhbmF0aW9ucyB0aGVyZS4NCg0KPiB0aGUgb25seSBjb3Jl IGNoYW5nZSBJIG1pZ2h0IG1ha2UgaXMgdG8gcmVtb3ZlIHRoZSBwYXlsb2FkIGZyb20gDQo+IENv bmZpZ0RhdGEgYW5kIHVzZSBhIHR1cGxlIG9mIChTb3VyY2VJbmRleCwgYSkgaW5zdGVhZCwgc28g eW91IGNhbiANCj4gb3BlcmF0ZSBvbiBvbmUgd2l0aG91dCBleGFtaW5pbmcgdGhlIG90aGVyLiB0 aGlzIGxldHMgeW91IGRvIGFsbCB0aGUgDQo+IHNvdXJjZS1yZWxhdGVkIGFuYWx5c2lzIHdpdGgg bW9ub21vcnBoaWMgY29kZTsgYW5kIGluIGNhc2VzIHdoZXJlIHRoZSANCj4gZmluYWwgcGF5bG9h ZCB0eXBlIGlzIHVuY2hhbmdlZCwgeW91IGNhbiBqdXN0IGRpc2NhcmQgdGhlIHR1cGxlIHdyYXBw ZXIgDQo+IHRvIGZpbmFsaXplLg0KPiANCj4gYXQgdGhlIHRvcCBsZXZlbCwgZm9yIGVhY2ggZmlu YWwtY29uZmlnIGl0ZW0gSSdkIGltYWdpbmUgdGhlIHByb2Nlc3MgDQo+IHdvdWxkIChpbiBIYXNr ZWxsKSBsb29rIHNvbWV0aGluZyBsaWtlOg0KPiANCj4gZmluYWxpemVDb25maWdWYWx1ZQ0KPiAg wqAgOjogKGEgLT4gTWF5YmUgYikNCj4gIMKgIC0+IFsoU291cmNlSW5kZXgsIGEpXQ0KPiAgwqAg LT4gTWF5YmUgYg0KPiBmaW5hbGl6ZUNvbmZpZ1ZhbHVlIHZhbHVlUGFyc2VyDQo+ICDCoCA9IGxp c3RUb01heWJlDQo+ICDCoCAuIG1hcE1heWJlICh2YWx1ZVBhcnNlciAuIHNuZCkNCj4gIMKgIC4g c29ydE9uIGZzdA0KPiANCj4gd2l0aCBhbiBPcmQgaW5zdGFuY2Ugb24gU291cmNlSW5kZXgsIGFu ZCB0aGUgTWF5YmUgb3V0cHV0IHJlcHJlc2VudGluZyANCj4gZmFpbHVyZSBvZiBhbGwgY2FuZGlk YXRlcyB0byBwYXJzZSAoeW91IGNvdWxkIGFsc28gdXNlIGRlZmF1bHRpbmcgYW5kL29yIA0KPiBl eGNlcHRpb25zKQ0KT2theS4uLiBJIGhhdmUgdG8gcmVhZCB0aGlzIGNhcmVmdWxseS4NCg0KSnVz dCB0byB2ZXJpZnkgSSB1bmRlcnN0b29kIGl0IGNvcnJlY3RseToNCg0KSXQncyBkZWNsYXJpbmcg ZnVuY3Rpb24gZmluYWxpemVDb25maWdWYWx1ZSwNCndpdGggdHdvIHBhcmFtZXRlcnMgKGRpc3Jl Z2FyZGluZyBjdXJyeWluZyksDQpvbmUgaXMgYSBmdW5jdGlvbiBhIC0+IE1heWJlIGIsDQpzZWNv bmQgaXMgYSBsaXN0IG9mIFNvdXJjZUluZGV4L2EgdHVwbGVzOw0KcmVzdWx0IGlzIGEgTWF5YmUg Qi4NCg0KV2hhdCBraW5kIG9mIHR5cGUgaXMgYT8gQSByYXcgcGFyc2UgdHJlZSBhcyBkZWxpdmVy ZWQgZnJvbSB0aGUgeWFtbCANCnBhcnNlciwgaS5lLiBhIGhpZXJhcmNoaWNhbCBibG9iIG9mIE1h cHMsIExpc3RzLCBhbmQgU3RyaW5ncyBmb3IgDQp0ZXJtaW5hbHM/IChJIGRlY2lkZWQgdG8gY29u ZmlndXJlIHRoZSBwYXJzZXIgZm9yICJldmVyeXRoaW5nIGlzIGEgDQpzdHJpbmciIGJlY2F1c2Ug KGEpIG5vIHJlYWwgbmVlZCBmb3IgbnVtYmVycyBpbiBteSB1c2UgY2FzZSBhbmQgKGIpIA0KcG9z c2libHkgWUFNTCBoYXMgc29tZSB3ZWlyZCBkZWZpbml0aW9uIG9mIHdoYXQncyBudW1iZXIgYW5k IHdoYXQncyBhIA0Kc3RyaW5nLikNCg0KV2hhdCBkb2VzIGxpc3RUb01heWJlIGRvPw0KSG0uIFdo aWNoIHBhcmFtZXRlciBkb2VzIGl0IHBpY2sgdXAsIHRoZSBmaXJzdCBvciB0aGUgc2Vjb25kPyBJ J20gbm90IA0Kc3VyZSBob3cgZG90IG5vdGF0aW9uIGFuZCBjdXJyeWluZyBpbnRlcmFjdC4NCg0K dmFsdWVQYXJzZXIgc2VlbXMgY29tcG9zZWQgd2l0aCBzbmQgKCJzZWNvbmQiKSAtIGFoIG9rLCB0 aGlzIGlzIA0KZXNzZW50aWFsbHkgcHJvY2Vzc2luZyBhbiBldmVudCBsaXN0L3N0cmVhbSAoInN0 cmVhbSIgd291bGQgYmUgYSBsaXN0IA0KdGhhdCBoYXBwZW5zIHRvIGJlIGxhenkgaW4gSGFza2Vs bCBsYW5kKS4NCg0KTm90IHN1cmUgd2hhdCB0aGUgbWFwTWF5YmUgc2VydmVzLiBJIGd1ZXNzIGl0 J3MgZGVhbGluZyB3aXRoIGVycm9yIGNhc2VzIA0Kb3Igc29tZSBzdWNoLCBidXQgSSBjYW4ndCBp bmZlciB3aGF0IGtpbmQgb2YgY2FzZXMgdGhhdCB3b3VsZCBiZSBhbmQgDQp3aGF0IHRoZSBpbnRl bmRlZCBlZmZlY3QgaXQgKG15IGxhY2sgb2YgSGFza2VsbCBrbm93bGVkZ2Ugc2hvd3MgYWdhaW4p Lg0KDQpBaCByaWdodC4gVGhlIChzb3J0T24gZnN0KSBzb21laG93IGdldHMgcm91dGVkIHRvIHRo ZSBldmVudCBzdHJlYW0uDQpOb3Qgc3VyZSB3aHkgdGhhdCdzIG5lZWRlZCwgYXMgdGhlIGlucHV0 cyBzaG91bGQgYWxyZWFkeSBiZSBzb3J0ZWQgYnkgDQpzb3VyY2UgcG9zaXRpb24sIGJ1dCBtYXli ZSB5b3UncmUgdGhpbmtpbmcgYWJvdXQgc2l0dWF0aW9ucyB3aGVyZSB0aGluZ3MgDQphcmUgcHJv Y2Vzc2VkIGluIGEgZGlmZmVyZW50IG9yZGVyIHRoYW4gdGhleSBhcmUgcmVhZCAtIGRvZXNuJ3Qg aGFwcGVuIA0KaW4gbXkgdXNlIGNhc2UsIHNvIG1heWJlIHRoYXQncyB3aHkgSSdtIGd1ZXNzaW5n IGluc3RlYWQgb2YgDQp1bmRlcnN0YW5kaW5nLCBJJ20gYmxvY2tlZCBieSBkaWZmZXJlbmNlcyBp biBpbXBsaWNpdCBhc3N1bXB0aW9ucy4NCkkgZ3Vlc3MuDQoNCkkgYmVsaWV2ZSB0aGUgbWFpbiBi bG9jayB0byBtZSB1bmRlcnN0YW5kaW5nIHN1Y2ggY29kZSBpcyB0aGF0IEkgZG9uJ3QgDQprbm93 IGhvdyBtYW55IHBhcmFtZXRlcnMgYSBmdW5jdGlvbiBoYXMgLSBvciwgaW4gdGhlIGN1cnJ5aW5n IA0KcGVyc3BlY3RpdmUsIHdoYXQgb3JkZXIgYSBmdW5jdGlvbiBpcy4NCkl0J3MgYSBncmVhdCB3 YXkgdG8gd3JpdGUgYW5kIHJlYXNvbiBhYm91dCBoaWdoZXItbGV2ZWwgY29kZSwgYnV0IGZvciAN Cm5vb2JzIGxpa2UgbWUgaXQncyBtYWtpbmcgaXQgcmVhbGx5IGhhcmQgdG8gdW5kZXJzdGFuZCB3 aGF0J3MgZ29pbmcgb24gLSANCkkgc3VzcGVjdCBpdCdzIGJlY2F1c2UgSSBkb24ndCBrbm93IHdo YXQgb3JkZXIgdGhlIGZ1bmN0aW9ucyBpbnNpZGUgdGhlIA0KZnVuY3Rpb24ncyBib2R5IGFyZSAo cmVzcC4gaG93IG1hbnkgcGFyYW1ldGVycyB0aGV5IHRha2UpLiBJIGFsc28gDQpzdXNwZWN0IGl0 J3MgcmVhbGx5IGFuIGlzc3VlIHdpdGggZG90LW5vdGF0aW9uIHBpcGVsaW5lcyBsaWtlIGFib3Zl OiBJZiANCnlvdSBkb24ndCBrbm93IHRoZSBvcmRlciBhbmQgcmV0dXJuIHR5cGVzIG9mIHRoZSBm dW5jdGlvbnMgYmVpbmcgDQpjb21wb3NlZCwgeW91IGhhdmUgbm8gY2x1ZSBhYm91dCB3aGF0IGZ1 bmN0aW9uIGlzIHdvcmtpbmcgb24gaG93IG1hbnkgDQpwYXJhbWV0ZXJzIC0gbWlnaHQgYmUgdHdv LCBvciBtaWdodCBiZSBqdXN0IG9uZSBhbmQgdGhlIGV4dHJhIHBhcmFtZXRlciANCmlzIGFjY2Vw dGVkIGxhdGVyIGluIHRoZSBxdWV1ZSAobWF5YmU/IEkgYW0gc29vbyB1bnN1cmUgaGVyZS4uLikN Cg0KT2ggbXkuDQpJIGd1ZXNzIEknbSBnb2luZyB0byBsZWFybiBhIHdob2xlIGxvdCBoZXJlLg0K V2hpY2ggaXMgZXhhY3RseSB0aGUgcG9pbnQsIGFjdHVhbGx5IDotKQ0KDQpSZWdhcmRzLA0KSm8N Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkhhc2tlbGwt Q2FmZSBtYWlsaW5nIGxpc3QgLS0gaGFza2VsbC1jYWZlQGhhc2tlbGwub3JnClRvICh1bilzdWJz Y3JpYmUsIG1vZGlmeSBvcHRpb25zIG9yIHZpZXcgYXJjaGl2ZXMgZ28gdG86Ck9ubHkgbWVtYmVy cyBzdWJzY3JpYmVkIHZpYSB0aGUgbWFpbG1hbiBsaXN0IGFyZSBhbGxvd2VkIHRvIHBvc3Qu