2021-08-23 00:00:13 +0200 | <_bin> | Where is the best source to learn about using monads to store information in the environment? Stuff like global config variables, logging stuff, etc.? |
2021-08-23 00:00:46 +0200 | adamflott | (~adamflott@c-73-60-249-202.hsd1.ma.comcast.net) (Quit: Connection closed) |
2021-08-23 00:01:31 +0200 | schuelermine | (~anselmsch@user/schuelermine) |
2021-08-23 00:03:10 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2021-08-23 00:03:18 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-23 00:03:38 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-23 00:05:05 +0200 | <maerwald> | that sounds like you want a parameter to your functions |
2021-08-23 00:05:17 +0200 | schuelermine | (~anselmsch@user/schuelermine) (Client Quit) |
2021-08-23 00:05:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-23 00:05:56 +0200 | <_bin> | If I'm supplying some logging stuff to most of my functions then that would get rather cumbersome. |
2021-08-23 00:06:03 +0200 | <_bin> | Is there a better way to do such things? |
2021-08-23 00:06:09 +0200 | <maerwald> | that's where ppl use Reader monad |
2021-08-23 00:06:22 +0200 | <maerwald> | which is basically just hiding a function argument |
2021-08-23 00:07:37 +0200 | <_bin> | That sounds helpful. What's the best resource to learn about using that for this purpose? |
2021-08-23 00:07:45 +0200 | talismanick | (~user@2601:644:8500:8350::e26b) |
2021-08-23 00:08:13 +0200 | <talismanick> | Has anyone encoded smooth infinitesimal analysis in Haskell? |
2021-08-23 00:08:23 +0200 | <sm> | you can do it in just IO too, if you're already in that |
2021-08-23 00:08:58 +0200 | <_bin> | sm: How would I do that |
2021-08-23 00:09:35 +0200 | <talismanick> | or, more generally, nilpotent infintesimals more "sophisticated" than dual numbers? |
2021-08-23 00:10:03 +0200 | <talismanick> | Because I remember seeing those used to explain forward-mode automatic differentiation somewhere |
2021-08-23 00:10:39 +0200 | <talismanick> | Although I don't remember if it was with Haskell (I might be confusing it with the "geometric algebra in Haskell" blogpost) |
2021-08-23 00:12:57 +0200 | <sm> | _bin: https://hackage.haskell.org/package/io-storage is one way. More generally there's https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Reader.html |
2021-08-23 00:15:54 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-08-23 00:16:24 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 00:20:14 +0200 | hseg | (~gesh@IGLD-84-228-238-79.inter.net.il) (Quit: WeeChat 3.2) |
2021-08-23 00:20:49 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 248 seconds) |
2021-08-23 00:21:34 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 250 seconds) |
2021-08-23 00:25:07 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 00:25:37 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-08-23 00:27:50 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-23 00:27:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fc6b:7277:c769:1dab) (Remote host closed the connection) |
2021-08-23 00:32:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 00:33:53 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 244 seconds) |
2021-08-23 00:34:21 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2021-08-23 00:38:19 +0200 | cjb | (~cjb@user/cjb) |
2021-08-23 00:42:06 +0200 | lotuseater | (~user@p200300e7871bf00038fb8d6cf7d8260d.dip0.t-ipconnect.de) |
2021-08-23 00:43:40 +0200 | acidjnk | (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-23 00:46:48 +0200 | <koz> | Can someone suggest a good infix ASCII approximation to the radix symbol? |
2021-08-23 00:46:54 +0200 | <koz> | (like, the square root symbol) |
2021-08-23 00:55:09 +0200 | <lotuseater> | in APL this can be performed with the operator (*รท) :) |
2021-08-23 00:55:36 +0200 | <hpc> | (-/) perhaps |
2021-08-23 00:56:02 +0200 | <hpc> | @let b -/ n = n ** (1/b) |
2021-08-23 00:56:03 +0200 | <lambdabot> | Defined. |
2021-08-23 00:56:05 +0200 | <hpc> | 3 -/ 8 |
2021-08-23 00:56:09 +0200 | <hpc> | > 3 -/ 8 |
2021-08-23 00:56:11 +0200 | <lambdabot> | 2.0 |
2021-08-23 00:57:08 +0200 | <koz> | -/ is pretty good actually, thanks hpc! |
2021-08-23 00:57:18 +0200 | <koz> | You are both intelligent and unusually attractive. |
2021-08-23 00:57:45 +0200 | <hpc> | lol |
2021-08-23 00:57:52 +0200 | acidjnk | (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) |
2021-08-23 00:59:16 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fc6b:7277:c769:1dab) |
2021-08-23 01:00:16 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 01:01:34 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 01:02:06 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 01:02:56 +0200 | Guest554 | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-08-23 01:04:39 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 01:06:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 01:07:46 +0200 | chris | (~chris@81.96.113.213) |
2021-08-23 01:07:50 +0200 | chris | Guest7041 |
2021-08-23 01:09:19 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-08-23 01:10:06 +0200 | acidjnk | (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-23 01:11:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fc6b:7277:c769:1dab) (Remote host closed the connection) |
2021-08-23 01:11:50 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds) |
2021-08-23 01:12:10 +0200 | Guest7041 | (~chris@81.96.113.213) (Ping timeout: 240 seconds) |
2021-08-23 01:12:16 +0200 | slep | (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 250 seconds) |
2021-08-23 01:12:16 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-08-23 01:15:24 +0200 | chris | (~chris@81.96.113.213) |
2021-08-23 01:15:29 +0200 | chris | Guest8337 |
2021-08-23 01:18:45 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-23 01:19:38 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 250 seconds) |
2021-08-23 01:24:10 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-08-23 01:28:20 +0200 | V | (~v@anomalous.eu) (Ping timeout: 256 seconds) |
2021-08-23 01:29:37 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 248 seconds) |
2021-08-23 01:33:43 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
2021-08-23 01:35:40 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) (Ping timeout: 250 seconds) |
2021-08-23 01:36:08 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 01:37:51 +0200 | <koz> | hpc: What would be a good fixity for (-/)? |
2021-08-23 01:38:10 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 240 seconds) |
2021-08-23 01:39:48 +0200 | <hpc> | hmm |
2021-08-23 01:41:16 +0200 | euouae | (~euouae@user/euouae) |
2021-08-23 01:41:55 +0200 | Topsi | (~Tobias@dyndsl-095-033-019-235.ewe-ip-backbone.de) |
2021-08-23 01:41:56 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-08-23 01:42:32 +0200 | <hpc> | (a -/ b -/ c) is definitely (a -/ (b -/ c)) imo |
2021-08-23 01:42:49 +0200 | <koz> | So that's... infixr? |
2021-08-23 01:43:20 +0200 | euouae | (~euouae@user/euouae) () |
2021-08-23 01:43:53 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) |
2021-08-23 01:44:18 +0200 | <hpc> | it's tempting to make it the same as (**) |
2021-08-23 01:44:30 +0200 | <koz> | That would make sense. |
2021-08-23 01:44:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 01:44:43 +0200 | <hpc> | infixr 8 ** |
2021-08-23 01:44:47 +0200 | <hpc> | so maybe that? |
2021-08-23 01:44:59 +0200 | dajoer | (~david@user/gvx) |
2021-08-23 01:45:00 +0200 | <koz> | Yeah, seems like a reasonable choice. |
2021-08-23 01:45:01 +0200 | <koz> | Thanks! |
2021-08-23 01:51:38 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2021-08-23 01:54:25 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2021-08-23 01:56:02 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-23 01:56:28 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-08-23 02:00:16 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:01:34 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 02:02:06 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:02:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 02:05:03 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 02:05:16 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:06:34 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 02:07:06 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:11:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 02:16:00 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:26:27 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 02:27:04 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:28:08 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 02:28:08 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 02:28:08 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 02:31:10 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 02:32:52 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-08-23 02:33:01 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
2021-08-23 02:33:27 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 02:34:01 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2021-08-23 02:35:07 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 02:35:07 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 02:35:07 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 02:36:00 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-23 02:36:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-23 02:37:21 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
2021-08-23 02:39:00 +0200 | thornAvery | (~thorn@137.147.64.16) |
2021-08-23 02:39:20 +0200 | <thornAvery> | whats the best way to get a version number for a --version flag+ |
2021-08-23 02:41:03 +0200 | <Axma47030> | In the past I have used https://hackage.haskell.org/package/configuration-tools which provides a few really nice things by default - version of the app and all its libraries and their licences |
2021-08-23 02:41:19 +0200 | <Axma47030> | licenses* |
2021-08-23 02:41:27 +0200 | Axma47030 | Axman6 |
2021-08-23 02:41:32 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds) |
2021-08-23 02:42:50 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-23 02:43:08 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-23 02:48:33 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 248 seconds) |
2021-08-23 02:56:36 +0200 | ikex1 | (ash@user/ikex) |
2021-08-23 02:57:07 +0200 | ikex | (~ash@user/ikex) (Ping timeout: 245 seconds) |
2021-08-23 02:57:22 +0200 | ikex1 | ikex |
2021-08-23 02:58:08 +0200 | meinside_ | (uid24933@id-24933.brockwell.irccloud.com) |
2021-08-23 02:58:33 +0200 | <thornAvery> | Axman6: thanks ill have a look at it |
2021-08-23 03:11:19 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-08-23 03:12:25 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-08-23 03:16:12 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 03:16:14 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-08-23 03:16:14 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-08-23 03:16:17 +0200 | allbery_b | geekosaur |
2021-08-23 03:17:35 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 03:18:22 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 03:21:15 +0200 | abrantesasf | (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) (Quit: Leaving) |
2021-08-23 03:22:46 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 258 seconds) |
2021-08-23 03:25:49 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-23 03:29:09 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-23 03:32:57 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-08-23 03:33:06 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-08-23 03:35:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
2021-08-23 03:37:08 +0200 | kimjetwav | (~user@2607:fea8:235f:9730:b47e:9266:a80c:4549) |
2021-08-23 03:39:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 250 seconds) |
2021-08-23 03:43:40 +0200 | xff0x | (~xff0x@2001:1a81:52ba:f800:f347:6f1f:6209:b9ad) (Ping timeout: 240 seconds) |
2021-08-23 03:45:41 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:ba09:60b5:ba3:60da) |
2021-08-23 03:48:05 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-08-23 03:48:12 +0200 | Kaipi | (~Kaiepi@156.34.44.192) |
2021-08-23 03:49:24 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
2021-08-23 03:51:51 +0200 | Kaipi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-08-23 03:51:54 +0200 | Merfont | (~Kaiepi@156.34.44.192) |
2021-08-23 03:54:29 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 03:54:49 +0200 | cjb | (~cjb@user/cjb) (Ping timeout: 256 seconds) |
2021-08-23 03:56:56 +0200 | Merfont | (~Kaiepi@156.34.44.192) (Ping timeout: 250 seconds) |
2021-08-23 03:58:33 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-08-23 04:03:00 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds) |
2021-08-23 04:08:41 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-23 04:12:15 +0200 | Kaipi | (~Kaiepi@156.34.44.192) |
2021-08-23 04:12:20 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-08-23 04:13:34 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-08-23 04:14:40 +0200 | <glguy> | thornAvery, This is what I do to get my version information: https://github.com/glguy/irc-core/blob/v2/src/Client/Options.hs#L135-L176 |
2021-08-23 04:15:53 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 04:18:27 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-08-23 04:18:27 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (cadmium.libera.chat (Nickname regained by services))) |
2021-08-23 04:18:27 +0200 | finn_elija | FinnElija |
2021-08-23 04:19:46 +0200 | cjb | (~cjb@user/cjb) |
2021-08-23 04:25:40 +0200 | ikex | (ash@user/ikex) (Ping timeout: 252 seconds) |
2021-08-23 04:25:46 +0200 | ikex1 | (~ash@user/ikex) |
2021-08-23 04:26:26 +0200 | ikex1 | ikex |
2021-08-23 04:33:20 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 04:38:19 +0200 | td_ | (~td@muedsl-82-207-238-124.citykom.de) (Ping timeout: 252 seconds) |
2021-08-23 04:40:05 +0200 | td_ | (~td@94.134.91.226) |
2021-08-23 04:43:32 +0200 | alx741 | (~alx741@181.196.68.94) (Quit: alx741) |
2021-08-23 04:45:15 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 04:46:34 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 04:47:33 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 04:48:13 +0200 | Kaipi | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-08-23 04:50:02 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-08-23 04:51:58 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds) |
2021-08-23 04:52:24 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
2021-08-23 04:56:51 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-08-23 04:57:33 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) (Quit: Leaving) |
2021-08-23 05:00:15 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 05:01:04 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection) |
2021-08-23 05:02:03 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 05:06:10 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 05:07:28 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-23 05:14:19 +0200 | travv0 | (sid293381@user/travv0) () |
2021-08-23 05:19:16 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-23 05:22:03 +0200 | ham | (~ham4@user/ham) (Ping timeout: 276 seconds) |
2021-08-23 05:22:44 +0200 | otto_s | (~user@p4ff27b55.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-23 05:24:35 +0200 | otto_s | (~user@p4ff270c5.dip0.t-ipconnect.de) |
2021-08-23 05:34:07 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) |
2021-08-23 05:36:11 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 05:39:38 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 250 seconds) |
2021-08-23 05:41:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds) |
2021-08-23 06:01:58 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
2021-08-23 06:07:21 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
2021-08-23 06:17:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 06:19:44 +0200 | dschrempf | (~dominik@2a01-036d-0118-46d4-79db-0a5e-b5da-2db0.pool6.digikabel.hu) |
2021-08-23 06:21:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
2021-08-23 06:25:54 +0200 | <sm> | glguy, is that using https://hackage.haskell.org/package/githash ? |
2021-08-23 06:26:20 +0200 | <glguy> | glirc --full-version | grep git |
2021-08-23 06:26:20 +0200 | <glguy> | gitrev-1.3.1 |
2021-08-23 06:26:33 +0200 | <sm> | ah |
2021-08-23 06:26:59 +0200 | <sm> | I think githash is just newer version of that |
2021-08-23 06:27:09 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) |
2021-08-23 06:27:42 +0200 | Topsi | (~Tobias@dyndsl-095-033-019-235.ewe-ip-backbone.de) (Quit: Leaving.) |
2021-08-23 06:27:52 +0200 | <glguy> | oh, maybe I need to update |
2021-08-23 06:27:57 +0200 | lotuseater | (~user@p200300e7871bf00038fb8d6cf7d8260d.dip0.t-ipconnect.de) (ERC (IRC client for Emacs 27.2)) |
2021-08-23 06:30:24 +0200 | safe | (~safe@cpe-74-64-165-24.nj.res.rr.com) |
2021-08-23 06:31:25 +0200 | <sm> | Axma47030: does that package let you print the version of all deps the program was built with ? |
2021-08-23 06:35:10 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Ping timeout: 240 seconds) |
2021-08-23 06:35:44 +0200 | vysn | (~vysn@user/vysn) |
2021-08-23 06:36:16 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-08-23 06:42:28 +0200 | dschrempf | (~dominik@2a01-036d-0118-46d4-79db-0a5e-b5da-2db0.pool6.digikabel.hu) (Ping timeout: 250 seconds) |
2021-08-23 06:44:37 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) |
2021-08-23 06:45:27 +0200 | LambdaDu1k | (~anka@ksit.fixme.fi) |
2021-08-23 06:45:28 +0200 | Hecate_ | (~mariposa@163.172.211.189) |
2021-08-23 06:45:29 +0200 | alinab_ | (sid468903@id-468903.brockwell.irccloud.com) |
2021-08-23 06:45:30 +0200 | peutri_ | (~peutri@ns317027.ip-94-23-46.eu) |
2021-08-23 06:45:37 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split) |
2021-08-23 06:45:37 +0200 | m4lvin_ | (~m4lvin@w4eg.de) (*.net *.split) |
2021-08-23 06:45:37 +0200 | codedmart | (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
2021-08-23 06:45:37 +0200 | a1paca_ | (~a1paca@user/a1paca) (*.net *.split) |
2021-08-23 06:45:37 +0200 | nerdypepper | (~nerdypepp@user/nerdypepper) (*.net *.split) |
2021-08-23 06:45:37 +0200 | ouroboros | (~ouroboros@user/ouroboros) (*.net *.split) |
2021-08-23 06:45:37 +0200 | glider | (~glider@user/glider) (*.net *.split) |
2021-08-23 06:45:37 +0200 | tolt | (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
2021-08-23 06:45:37 +0200 | orzo | (joe@lasker.childrenofmay.org) (*.net *.split) |
2021-08-23 06:45:37 +0200 | damien3 | (~damien@248.ip-149-56-13.net) (*.net *.split) |
2021-08-23 06:45:37 +0200 | LambdaDuck | (~anka@ksit.fixme.fi) (*.net *.split) |
2021-08-23 06:45:37 +0200 | choucavalier | (~choucaval@user/choucavalier) (*.net *.split) |
2021-08-23 06:45:37 +0200 | wrunt | (~ajc@vmx14030.hosting24.com.au) (*.net *.split) |
2021-08-23 06:45:37 +0200 | yahb | (xsbot@user/mniip/bot/yahb) (*.net *.split) |
2021-08-23 06:45:37 +0200 | peutri | (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split) |
2021-08-23 06:45:37 +0200 | Hecate | (~mariposa@user/hecate) (*.net *.split) |
2021-08-23 06:45:37 +0200 | alinab | (sid468903@id-468903.brockwell.irccloud.com) (*.net *.split) |
2021-08-23 06:45:37 +0200 | defanor | (~defanor@tart.uberspace.net) (*.net *.split) |
2021-08-23 06:45:37 +0200 | defanor_ | (~defanor@tart.uberspace.net) |
2021-08-23 06:45:38 +0200 | orzo_ | (joe@lasker.childrenofmay.org) |
2021-08-23 06:45:38 +0200 | codedmart_ | (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
2021-08-23 06:45:38 +0200 | alinab_ | alinab |
2021-08-23 06:45:43 +0200 | m4lvin | (~m4lvin@w4eg.de) |
2021-08-23 06:45:44 +0200 | choucavalier_ | (~choucaval@peanutbuttervibes.com) |
2021-08-23 06:45:44 +0200 | damien3 | (~damien@248.ip-149-56-13.net) |
2021-08-23 06:45:45 +0200 | glider_ | (~glider@user/glider) |
2021-08-23 06:45:47 +0200 | wrunt | (~ajc@vmx14030.hosting24.com.au) |
2021-08-23 06:45:48 +0200 | nshepper1 | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
2021-08-23 06:45:50 +0200 | uroboros | (~ouroboros@user/ouroboros) |
2021-08-23 06:46:14 +0200 | uroboros | ouroboros |
2021-08-23 06:46:27 +0200 | aegon | (~mike@174.127.249.180) |
2021-08-23 06:46:37 +0200 | yahb | (xsbot@user/mniip/bot/yahb) |
2021-08-23 06:46:40 +0200 | a1paca | (~a1paca@user/a1paca) |
2021-08-23 06:47:04 +0200 | tolt | (~weechat-h@li219-154.members.linode.com) |
2021-08-23 06:47:43 +0200 | nerdypepper | (~nerdypepp@user/nerdypepper) |
2021-08-23 06:48:50 +0200 | lechner | (~lechner@debian/lechner) (*.net *.split) |
2021-08-23 06:48:50 +0200 | awth13 | (~awth13@user/awth13) (*.net *.split) |
2021-08-23 06:48:50 +0200 | dminuoso | (~dminuoso@user/dminuoso) (*.net *.split) |
2021-08-23 06:48:50 +0200 | frobnicator | (~frobnicat@185-227-75-147.dsl.cambrium.nl) (*.net *.split) |
2021-08-23 06:48:50 +0200 | Eoco | (~ian@x-160-94-179-157.acm.umn.edu) (*.net *.split) |
2021-08-23 06:48:50 +0200 | Techcable_ | (~Techcable@168.235.93.147) (*.net *.split) |
2021-08-23 06:48:50 +0200 | polux | (~polux@51.15.169.172) (*.net *.split) |
2021-08-23 06:48:50 +0200 | mniip | (mniip@libera/staff/mniip) (*.net *.split) |
2021-08-23 06:48:50 +0200 | koala_man | (~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split) |
2021-08-23 06:48:50 +0200 | ent | (entgod@kapsi.fi) (*.net *.split) |
2021-08-23 06:48:50 +0200 | megaTherion | (~therion@unix.io) (*.net *.split) |
2021-08-23 06:48:50 +0200 | Sqaure | (~a@178.62.91.8) (*.net *.split) |
2021-08-23 06:48:50 +0200 | arkeet | (arkeet@moriya.ca) (*.net *.split) |
2021-08-23 06:48:50 +0200 | laman | (laman@2600:3c02::f03c:92ff:fe3e:c08d) (*.net *.split) |
2021-08-23 06:48:50 +0200 | mrus | (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) (*.net *.split) |
2021-08-23 06:48:50 +0200 | bastelfreak | (~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split) |
2021-08-23 06:48:50 +0200 | mstruebing | (~maex@2001:41d0:8:93c7::1) (*.net *.split) |
2021-08-23 06:48:50 +0200 | meridion | (~meridion@punt.hetgrotebos.org) (*.net *.split) |
2021-08-23 06:48:50 +0200 | drewolson | (~drewolson@user/drewolson) (*.net *.split) |
2021-08-23 06:48:50 +0200 | meejah | (~meejah@rutas.meejah.ca) (*.net *.split) |
2021-08-23 06:48:50 +0200 | enikar | (~enikar@user/enikar) (*.net *.split) |
2021-08-23 06:48:50 +0200 | Dykam | (Dykam@dykam.nl) (*.net *.split) |
2021-08-23 06:48:54 +0200 | panda_man | (~vidar@157.146.251.23.bc.googleusercontent.com) |
2021-08-23 06:48:54 +0200 | meridion_ | (~meridion@punt.hetgrotebos.org) |
2021-08-23 06:48:55 +0200 | ent- | (entgod@kapsi.fi) |
2021-08-23 06:48:58 +0200 | arkeet` | (arkeet@moriya.ca) |
2021-08-23 06:49:00 +0200 | meejah_ | (~meejah@rutas.meejah.ca) |
2021-08-23 06:49:02 +0200 | mniip | (mniip@libera/staff/mniip) |
2021-08-23 06:49:03 +0200 | drewolson1 | (~drewolson@user/drewolson) |
2021-08-23 06:49:04 +0200 | mstruebing | (~maex@2001:41d0:8:93c7::1) |
2021-08-23 06:49:18 +0200 | Eoco | (~ian@x-160-94-179-157.acm.umn.edu) |
2021-08-23 06:49:18 +0200 | laman | (laman@2600:3c02::f03c:92ff:fe3e:c08d) |
2021-08-23 06:49:19 +0200 | bastelfreak | (~bastelfre@basteles-bastelknecht.bastelfreak.org) |
2021-08-23 06:49:22 +0200 | arkeet` | arkeet |
2021-08-23 06:49:23 +0200 | frobnicator | (~frobnicat@185-227-75-147.dsl.cambrium.nl) |
2021-08-23 06:49:25 +0200 | polux | (~polux@51.15.169.172) |
2021-08-23 06:49:25 +0200 | lechner | (~lechner@letbox-vps.us-core.com) |
2021-08-23 06:49:36 +0200 | Dykam | (Dykam@dykam.nl) |
2021-08-23 06:49:36 +0200 | lechner | (~lechner@letbox-vps.us-core.com) (Changing host) |
2021-08-23 06:49:36 +0200 | lechner | (~lechner@debian/lechner) |
2021-08-23 06:49:43 +0200 | mrus | (~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) |
2021-08-23 06:49:47 +0200 | Techcable | (~Techcable@168.235.93.147) |
2021-08-23 06:50:07 +0200 | awth13 | (~awth13@user/awth13) |
2021-08-23 06:50:17 +0200 | enikar | (~enikar@user/enikar) |
2021-08-23 06:50:47 +0200 | nshepper1 | nshepperd |
2021-08-23 06:50:59 +0200 | <aegon> | when using things like --dump-simpl or profiling with haskell stack, where should i be looking for the core files? |
2021-08-23 06:51:04 +0200 | dminuoso | (~dminuoso@user/dminuoso) |
2021-08-23 06:52:51 +0200 | Square | (~a@178.62.91.8) |
2021-08-23 07:06:53 +0200 | xsperry | (~as@user/xsperry) () |
2021-08-23 07:09:42 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-08-23 07:09:44 +0200 | <fresheyeball> | ok, so I have a quandry |
2021-08-23 07:09:51 +0200 | <fresheyeball> | and it's going deeper than I would like |
2021-08-23 07:09:59 +0200 | <fresheyeball> | but, what is the right way to code a login form? |
2021-08-23 07:10:11 +0200 | <fresheyeball> | the server should set cookies I believe |
2021-08-23 07:10:21 +0200 | <fresheyeball> | but that means a redirect on each form submission |
2021-08-23 07:10:26 +0200 | <fresheyeball> | which is bad ux |
2021-08-23 07:10:38 +0200 | <fresheyeball> | So far the best I can think of is to have 2 login endpoints |
2021-08-23 07:10:53 +0200 | <fresheyeball> | one the checks creds and can give an error via AJAX |
2021-08-23 07:11:08 +0200 | <fresheyeball> | and the other that actually sets cookies, via redirect after the first endpoint approves |
2021-08-23 07:11:38 +0200 | mei | (~mei@user/mei) |
2021-08-23 07:11:55 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Client Quit) |
2021-08-23 07:12:35 +0200 | keutoi | (~keutoi@157.48.197.78) |
2021-08-23 07:15:06 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-08-23 07:22:26 +0200 | ham | (~ham4@user/ham) |
2021-08-23 07:25:22 +0200 | stefan-_ | (~cri@42dots.de) (Ping timeout: 250 seconds) |
2021-08-23 07:30:10 +0200 | stefan-_ | (~cri@42dots.de) |
2021-08-23 07:37:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) |
2021-08-23 07:42:40 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Ping timeout: 240 seconds) |
2021-08-23 07:45:40 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:ba09:60b5:ba3:60da) (Ping timeout: 240 seconds) |
2021-08-23 07:46:43 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) |
2021-08-23 07:51:28 +0200 | defanor_ | defanor |
2021-08-23 07:52:11 +0200 | <edwardk> | dumb q: as someone just now tuning into how icfp is running this year, uh, where are the chat rooms and the like that there have been in years past? did they do away with them entirely? |
2021-08-23 07:57:06 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) |
2021-08-23 08:00:21 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) |
2021-08-23 08:00:52 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Client Quit) |
2021-08-23 08:00:59 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-08-23 08:01:58 +0200 | PinealGlandOptic | (~PinealGla@37.115.210.35) () |
2021-08-23 08:05:28 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-08-23 08:05:38 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-23 08:06:43 +0200 | xsperry | (~as@user/xsperry) |
2021-08-23 08:09:44 +0200 | mnrmnaugh | (~mnrmnaugh@68.162.206.56) |
2021-08-23 08:11:54 +0200 | mnrmnaugh | (~mnrmnaugh@68.162.206.56) (Client Quit) |
2021-08-23 08:15:38 +0200 | Vajb | (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer) |
2021-08-23 08:15:57 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
2021-08-23 08:16:40 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds) |
2021-08-23 08:17:32 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 08:22:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-23 08:24:13 +0200 | sagax | (~sagax@213.138.71.146) (Remote host closed the connection) |
2021-08-23 08:25:24 +0200 | timCF | (~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving) |
2021-08-23 08:27:09 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-08-23 08:30:22 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 250 seconds) |
2021-08-23 08:30:35 +0200 | favonia | (~favonia@user/favonia) (Ping timeout: 258 seconds) |
2021-08-23 08:35:23 +0200 | <Axman6> | sm: I thhink so, but I don't remember - pretty sure it prints versions along with the license |
2021-08-23 08:35:49 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-23 08:45:44 +0200 | aegon | (~mike@174.127.249.180) (Quit: leaving) |
2021-08-23 08:50:44 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-08-23 08:51:10 +0200 | Hecate_ | Hecate |
2021-08-23 08:51:12 +0200 | Hecate | (~mariposa@163.172.211.189) (Changing host) |
2021-08-23 08:51:12 +0200 | Hecate | (~mariposa@user/hecate) |
2021-08-23 08:54:45 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) |
2021-08-23 08:55:56 +0200 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 268 seconds) |
2021-08-23 08:57:52 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-08-23 09:02:12 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-23 09:02:40 +0200 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
2021-08-23 09:04:57 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-08-23 09:05:17 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
2021-08-23 09:08:35 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-23 09:08:36 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-23 09:08:56 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2021-08-23 09:09:03 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-23 09:10:23 +0200 | Natch | (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
2021-08-23 09:11:53 +0200 | fendor | (~fendor@91.141.64.241.wireless.dyn.drei.com) |
2021-08-23 09:12:40 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2021-08-23 09:13:39 +0200 | bastelfreak | (~bastelfre@basteles-bastelknecht.bastelfreak.org) (Quit: WeeChat 3.2) |
2021-08-23 09:13:48 +0200 | bastelfreak | (~bastelfre@basteles-bastelknecht.bastelfreak.org) |
2021-08-23 09:16:19 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-08-23 09:24:39 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-08-23 09:25:28 +0200 | safe | (~safe@cpe-74-64-165-24.nj.res.rr.com) (Quit: Leaving) |
2021-08-23 09:28:13 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-08-23 09:31:13 +0200 | kuribas | (~user@ptr-25vy0iajat4u154jc6g.18120a2.ip6.access.telenet.be) |
2021-08-23 09:31:38 +0200 | acidjnk | (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) |
2021-08-23 09:32:49 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-08-23 09:33:37 +0200 | fef | (~thedawn@user/thedawn) |
2021-08-23 09:34:34 +0200 | megaTherion | (~therion@unix.io) |
2021-08-23 09:39:59 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-08-23 09:40:05 +0200 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-08-23 09:43:36 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
2021-08-23 09:44:52 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-08-23 09:45:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 09:47:06 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-08-23 09:51:46 +0200 | sagax | (~sagax@213.138.71.146) |
2021-08-23 09:52:25 +0200 | ubert | (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) |
2021-08-23 09:54:01 +0200 | d0ku | (~d0ku@178.43.19.40.ipv4.supernova.orange.pl) |
2021-08-23 09:56:41 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-23 09:57:23 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 09:57:41 +0200 | <kuribas> | I removed more type families from my mysql library. Now only one type family left. |
2021-08-23 09:58:03 +0200 | <kuribas> | Not much fancy haskell left now. Unless you count light usage of DataKinds as phantom types... |
2021-08-23 09:58:24 +0200 | <kuribas> | And generics... |
2021-08-23 09:59:28 +0200 | <Hecate> | kuribas: hurray for improved compilation times :D |
2021-08-23 09:59:44 +0200 | <kuribas> | Hecate: oh, and template haskell :) |
2021-08-23 09:59:48 +0200 | <kuribas> | but it's optional. |
2021-08-23 10:01:11 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) |
2021-08-23 10:02:14 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-08-23 10:03:40 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2021-08-23 10:03:48 +0200 | <Hecate> | kuribas: you should make a companion library with -th if you really have that many optional features implemented in TH :) |
2021-08-23 10:03:57 +0200 | <Hecate> | helps with portability as well |
2021-08-23 10:04:04 +0200 | <kuribas> | why? |
2021-08-23 10:04:08 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 10:04:15 +0200 | <kuribas> | you don't need to use it... |
2021-08-23 10:05:46 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) |
2021-08-23 10:05:46 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-08-23 10:07:32 +0200 | <kuribas> | If you are using the typed layer, the TH is very recommended... |
2021-08-23 10:07:54 +0200 | <kuribas> | I could however split the package into hasqlator-mysql and hasqlator-typed-mysql... |
2021-08-23 10:08:56 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-08-23 10:11:11 +0200 | __monty__ | (~toonn@user/toonn) |
2021-08-23 10:12:05 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-08-23 10:12:33 +0200 | oxide | (~lambda@user/oxide) |
2021-08-23 10:14:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 10:17:39 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-08-23 10:17:39 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-08-23 10:17:42 +0200 | allbery_b | geekosaur |
2021-08-23 10:18:58 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-08-23 10:21:55 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-23 10:24:16 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-08-23 10:24:28 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) |
2021-08-23 10:33:26 +0200 | cpape`` | (~user@2a01:4f9:c010:632d::1) (Quit: ERC (IRC client for Emacs 25.2.2)) |
2021-08-23 10:33:48 +0200 | cpape | (~user@2a01:4f9:c010:632d::1) |
2021-08-23 10:34:27 +0200 | <merijn> | !!! |
2021-08-23 10:34:37 +0200 | <merijn> | Breaking news that dramatically improves my life further! |
2021-08-23 10:34:45 +0200 | <merijn> | SQLite now supports strong typing! |
2021-08-23 10:34:48 +0200 | <merijn> | \o/ |
2021-08-23 10:35:25 +0200 | <dminuoso> | merijn: Source? |
2021-08-23 10:36:43 +0200 | <merijn> | dminuoso: https://www.sqlite.org/draft/stricttables.html |
2021-08-23 10:37:19 +0200 | <dminuoso> | Neat. :) |
2021-08-23 10:37:30 +0200 | <merijn> | Now I can shill SQLite *even harder* |
2021-08-23 10:41:41 +0200 | notzmv | (~zmv@user/notzmv) |
2021-08-23 10:45:13 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Remote host closed the connection) |
2021-08-23 10:46:05 +0200 | <Rembane_> | Sweet! |
2021-08-23 10:46:17 +0200 | <Rembane_> | SQLite be like: *flex!* |
2021-08-23 10:47:34 +0200 | lavaman | (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
2021-08-23 10:47:34 +0200 | awschnap | (~lavaman@98.38.249.169) |
2021-08-23 10:48:05 +0200 | gustik | (~gustik@2a01:c844:2410:9020:63ab:4bb6:83d2:e11b) (Quit: Leaving) |
2021-08-23 10:50:36 +0200 | <wz1000> | merijn: which version will this show up in? |
2021-08-23 10:52:09 +0200 | <tdammers> | "As far as we know, SQLite is the only SQL database engine that supports this advanced capability." |
2021-08-23 10:52:12 +0200 | <tdammers> | talk about flexing |
2021-08-23 10:58:31 +0200 | Gurkenglas | (~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) |
2021-08-23 10:59:18 +0200 | <merijn> | wz1000: Planned for 3.37 |
2021-08-23 10:59:21 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-08-23 10:59:36 +0200 | meridion_ | meridion |
2021-08-23 11:02:57 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2021-08-23 11:05:36 +0200 | amirouche | (~amirouche@user/amirouche) (Quit: WeeChat 2.8) |
2021-08-23 11:05:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) |
2021-08-23 11:05:48 +0200 | amirouche | (~amirouche@user/amirouche) |
2021-08-23 11:10:10 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 240 seconds) |
2021-08-23 11:12:03 +0200 | amirouche | babelbot |
2021-08-23 11:13:37 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds) |
2021-08-23 11:13:54 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 11:14:23 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-23 11:16:05 +0200 | babelbot | amirouche |
2021-08-23 11:18:39 +0200 | <merijn> | On an entirely different topic, given a (simple, if that helps) numerical function of N inputs. Which algorithms/techniques do I want to find the inputs with maximum output? |
2021-08-23 11:19:16 +0200 | amk | (~amk@109.255.169.126) (Ping timeout: 252 seconds) |
2021-08-23 11:21:26 +0200 | <kuribas> | merijn: multivariate optimization algorithm? |
2021-08-23 11:22:50 +0200 | <kuribas> | oh neat, I can use recordWildCards with other assignments :) |
2021-08-23 11:23:11 +0200 | <kuribas> | this works: Foo { foo = foo + 1, bar = bar <> "bar", ..} |
2021-08-23 11:23:16 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 11:23:30 +0200 | <merijn> | kuribas: Yes, but machine learning feels overkill the equations I'm dealing with |
2021-08-23 11:23:43 +0200 | <kuribas> | merijn: I wasn't talking about machine learning :) |
2021-08-23 11:24:06 +0200 | <merijn> | kuribas: Most results for multivariate optimisation return a billion ML things :p |
2021-08-23 11:24:17 +0200 | <Rembane_> | merijn: Is N big enough that a maximum [arg_1, ... arg_N] isn't feasible? |
2021-08-23 11:24:24 +0200 | <kuribas> | https://hackage.haskell.org/package/hmatrix-0.15.2.0/docs/Numeric-GSL-Minimization.html |
2021-08-23 11:24:32 +0200 | <kuribas> | merijn: because it's the same problem? |
2021-08-23 11:25:11 +0200 | <merijn> | Rembane_: number of values isn't super big, but the values are continuous |
2021-08-23 11:26:25 +0200 | amk | (~amk@109.255.169.126) |
2021-08-23 11:26:29 +0200 | <merijn> | kuribas: Incidentally, that doesn't appear to be in recent hmatrix releases anymore |
2021-08-23 11:27:11 +0200 | <merijn> | But I guess I want hmatrix-gsl |
2021-08-23 11:27:50 +0200 | <Rembane_> | merijn: Oh, okay. |
2021-08-23 11:28:20 +0200 | <dminuoso> | tdammers: My software also has this advanced capability of putting out smileys if you ask it nicely enough. |
2021-08-23 11:28:25 +0200 | <dminuoso> | It's the only known software that does this. |
2021-08-23 11:28:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 11:29:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b41a:667a:d6f9:5ad8) |
2021-08-23 11:30:36 +0200 | <merijn> | dminuoso: I've seen lots of software do that :p |
2021-08-23 11:30:39 +0200 | daeng | (~daeng@2401:3c00:18e:e603:bec7:e31f:ee15:3296) |
2021-08-23 11:30:56 +0200 | <merijn> | Hell, entire Discord bots seem to function by smiley reactions to messages, so... :p |
2021-08-23 11:31:01 +0200 | <dminuoso> | But one does it as well as mine does. |
2021-08-23 11:31:05 +0200 | <dminuoso> | none, even. |
2021-08-23 11:32:38 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 244 seconds) |
2021-08-23 11:33:10 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-bfe4-3f38-b8a5-8c39.fixed6.kpn.net) |
2021-08-23 11:33:24 +0200 | <int-e> | @botsnack |
2021-08-23 11:33:24 +0200 | <lambdabot> | :) |
2021-08-23 11:33:25 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-08-23 11:34:06 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b41a:667a:d6f9:5ad8) (Ping timeout: 250 seconds) |
2021-08-23 11:34:22 +0200 | <int-e> | merijn: see, it's just continuing a trend started on #haskell ;-) |
2021-08-23 11:35:04 +0200 | awschnap | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-23 11:43:18 +0200 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-08-23 11:44:04 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
2021-08-23 11:49:08 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 11:50:09 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-08-23 11:58:28 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3051:894e:a7f0:13fc) |
2021-08-23 11:59:55 +0200 | eggplant_ | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 12:00:07 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
2021-08-23 12:02:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:3051:894e:a7f0:13fc) (Ping timeout: 240 seconds) |
2021-08-23 12:03:42 +0200 | rosariopulella[m | (~rosariopu@2001:470:69fc:105::a57) |
2021-08-23 12:04:10 +0200 | eggplant_ | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 240 seconds) |
2021-08-23 12:05:37 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 12:05:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 12:06:25 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 12:06:48 +0200 | keutoi_ | (~keutoi@106.208.52.176) |
2021-08-23 12:07:21 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 12:07:33 +0200 | keutoi | (~keutoi@157.48.197.78) (Ping timeout: 258 seconds) |
2021-08-23 12:07:57 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-23 12:08:10 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 12:08:17 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-08-23 12:13:10 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
2021-08-23 12:13:26 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 12:16:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
2021-08-23 12:16:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 12:21:46 +0200 | LambdaDu1k | (~anka@ksit.fixme.fi) (Ping timeout: 250 seconds) |
2021-08-23 12:22:05 +0200 | LambdaDuck | (~anka@ksit.fixme.fi) |
2021-08-23 12:22:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-23 12:22:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 12:22:50 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) (Ping timeout: 256 seconds) |
2021-08-23 12:22:57 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) |
2021-08-23 12:23:25 +0200 | aguapesada | (~aguapesad@191.177.175.57) |
2021-08-23 12:25:43 +0200 | <tdammers> | frankly, I would love a bot that actively eradicates all smileys and other emoji nonsense from the face of the earth |
2021-08-23 12:27:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-23 12:28:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 12:33:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-23 12:34:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 12:35:27 +0200 | nvmd | (~nvmd@user/nvmd) (Ping timeout: 268 seconds) |
2021-08-23 12:35:37 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-08-23 12:39:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-23 12:40:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 12:41:05 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 248 seconds) |
2021-08-23 12:42:49 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 12:44:28 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 12:45:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-08-23 12:46:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 12:55:54 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
2021-08-23 12:57:10 +0200 | acidjnk | (~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-08-23 12:57:18 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 250 seconds) |
2021-08-23 12:58:00 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 12:58:21 +0200 | dminuoso[m] | (~dminuosom@2001:470:69fc:105::33bb) () |
2021-08-23 12:58:57 +0200 | timCF | (~timCF@m91-129-108-244.cust.tele2.ee) |
2021-08-23 12:59:34 +0200 | <timCF> | Hello! Does anybody know how to remove imports/definitions/aliases from ghci session? |
2021-08-23 13:01:00 +0200 | alx741 | (~alx741@181.196.68.94) |
2021-08-23 13:01:51 +0200 | <timCF> | Just to clear current scope from defined things |
2021-08-23 13:02:15 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 13:03:20 +0200 | <merijn> | Not even sure that's possible, tbh |
2021-08-23 13:03:32 +0200 | <dminuoso> | You can remove imports |
2021-08-23 13:03:44 +0200 | <merijn> | Sure, but not definitions inside ghci, I think? |
2021-08-23 13:03:49 +0200 | <merijn> | Or does :reload reset thos? |
2021-08-23 13:03:59 +0200 | <dminuoso> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#controlling-what-is-in-sโฆ |
2021-08-23 13:04:15 +0200 | <dminuoso> | timCF: ^- |
2021-08-23 13:07:42 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-23 13:07:55 +0200 | <timCF> | merijn: dminuoso: thanks! |
2021-08-23 13:08:43 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 252 seconds) |
2021-08-23 13:10:37 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 13:12:17 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 13:12:31 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 13:12:59 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 13:17:31 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
2021-08-23 13:19:37 +0200 | keutoi_ | keutoi |
2021-08-23 13:27:10 +0200 | <timCF> | I do have some "noob" problems with `microlens`. I'm using this library as consequence of usage of `proto-lens` which is the best protobuf library for Haskell I guess. Problem with `microlens` in my team is that for not very experienced Haskell programmers they are very confusing. For example there are 2 different access operators `^.` and `^?` and intuitevly second should be used for `Maybe` values. But |
2021-08-23 13:27:16 +0200 | <timCF> | it's not working as expected without `_Just` prism. For example `x ^? Msg.maybe'ok` will produce `Just Nothing` which will always return True with isJust (case where we just checking that response is ok or not). To make it work as expected, we should use `x ^? Msg.maybe'ok . _Just` or `x ^. Msg.maybe'ok`. And type system is not helping that much in case of this kind of errors. I thought maybe I can solve |
2021-08-23 13:27:22 +0200 | <timCF> | the issue if `^?` is not imported, then developers are forced to use `^.` but seems like it's not working with nested fields, for example `x ^. Msg.maybe'ok . _Just . Msg.maybe'user` will fail to compile with some strange error about Monoid instances. I don' |
2021-08-23 13:27:36 +0200 | <timCF> | I don't like solution like "triple check what you are actually writing" and prefer type system to help |
2021-08-23 13:27:54 +0200 | <dminuoso> | timCF: Switch to `optics` then. |
2021-08-23 13:27:58 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 252 seconds) |
2021-08-23 13:27:58 +0200 | <timCF> | Are there any suggestions how to fix this kind of issue? |
2021-08-23 13:28:04 +0200 | <dminuoso> | The underlying problem is roughly this: |
2021-08-23 13:28:58 +0200 | <dminuoso> | % :t view |
2021-08-23 13:28:59 +0200 | <yahb> | dminuoso: MonadReader s m => Getting a s a -> m a |
2021-08-23 13:29:01 +0200 | <dminuoso> | % :i Getting |
2021-08-23 13:29:02 +0200 | <yahb> | dminuoso: type Getting :: * -> * -> * -> *; type Getting r s a = (a -> Const r a) -> s -> Const r s; -- Defined in `Control.Lens.Getter' |
2021-08-23 13:29:09 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 13:29:34 +0200 | <dminuoso> | % :t _Just . _1 |
2021-08-23 13:29:34 +0200 | <yahb> | dminuoso: (Applicative f, Field1 a1 b1 a2 b2) => (a2 -> f b2) -> Maybe a1 -> f (Maybe b1) |
2021-08-23 13:30:14 +0200 | <dminuoso> | timCF: Notice how we have this `Applicative` constraint? |
2021-08-23 13:30:30 +0200 | <dminuoso> | Essentially what this all ends up doing is: |
2021-08-23 13:30:47 +0200 | <dminuoso> | In `lens` we can `view` through a Fold, and it will just `mappend` all targets together |
2021-08-23 13:30:52 +0200 | <dminuoso> | If no target exist, you get `mempty` back |
2021-08-23 13:30:57 +0200 | <dminuoso> | e.g.: |
2021-08-23 13:31:12 +0200 | <dminuoso> | % view folded [Product 1, Product 2, Product 3, Product 4] |
2021-08-23 13:31:13 +0200 | <yahb> | dminuoso: Product {getProduct = 24} |
2021-08-23 13:31:34 +0200 | <dminuoso> | This may not be what you intended, and its one of those things why I dont like `lens` either. |
2021-08-23 13:31:47 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
2021-08-23 13:32:23 +0200 | <dibblego> | timCF: a lens composed with a prism gives you a traversal |
2021-08-23 13:33:08 +0200 | <timCF> | dminuoso: I see. Does `optics` "solves" it somehow? Not sure is it bug or feature) |
2021-08-23 13:33:14 +0200 | <dminuoso> | Yes. |
2021-08-23 13:33:29 +0200 | <dminuoso> | Let me quickly give you the output |
2021-08-23 13:34:18 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-08-23 13:34:25 +0200 | <dminuoso> | timCF: https://gist.github.com/dminuoso/58f816500a5cd9fa4affff440e301af6 |
2021-08-23 13:34:49 +0200 | <dminuoso> | So if you wanted the behavior of `lens`, you'd have to explicitly use `foldOf` |
2021-08-23 13:35:03 +0200 | <dminuoso> | Otherwise you get very well written customed type errors |
2021-08-23 13:36:08 +0200 | <dminuoso> | Or perhaps, as a comparable example: |
2021-08-23 13:36:23 +0200 | <dminuoso> | % view (_Just . _1) (Just ("foo", bar)) |
2021-08-23 13:36:25 +0200 | <yahb> | dminuoso: ; <interactive>:13:33: error:; * Variable not in scope: bar; * Perhaps you meant `Sym.var' (imported from Data.Number.Symbolic) |
2021-08-23 13:36:28 +0200 | <dminuoso> | % view (_Just . _1) (Just ("foo", 1)) |
2021-08-23 13:36:29 +0200 | <yahb> | dminuoso: "foo" |
2021-08-23 13:37:00 +0200 | <dminuoso> | https://gist.github.com/dminuoso/4195934615b775b3ef7514f97b63dcc7 |
2021-08-23 13:37:07 +0200 | <dminuoso> | The output you'd get in optics |
2021-08-23 13:37:40 +0200 | <dminuoso> | (The output here means, that the composition of `_Just % _1` is an AffineTraversal, but `view` demands a Getter |
2021-08-23 13:37:40 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2021-08-23 13:37:50 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 13:38:57 +0200 | <timCF> | dminuoso: Thanks! I'll try this! I hope `optics` will be compatible with `proto-lens` |
2021-08-23 13:39:25 +0200 | <dminuoso> | timCF: Mmm not directly. |
2021-08-23 13:40:02 +0200 | <dminuoso> | I mean you can trivially convert between lens-style and optics-style optics, but its additional work |
2021-08-23 13:40:18 +0200 | <Jack> | Anyone ever taken a look at C++'s "functional" library? |
2021-08-23 13:42:22 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-23 13:44:17 +0200 | <[exa]> | Jack: yes |
2021-08-23 13:46:37 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-08-23 13:47:23 +0200 | cheater1__ | (~Username@user/cheater) |
2021-08-23 13:47:36 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2021-08-23 13:47:37 +0200 | cheater1__ | cheater |
2021-08-23 13:49:55 +0200 | <Jack> | It's kind of adorable, isn't it |
2021-08-23 13:51:49 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-08-23 13:51:57 +0200 | <[exa]> | depends on the kind of adorable you're after |
2021-08-23 13:52:07 +0200 | <[exa]> | std::bind is often a lifesaver |
2021-08-23 13:52:47 +0200 | <Rembane_> | [exa]: Is std::bind like $ in Haskell? |
2021-08-23 13:53:09 +0200 | <[exa]> | literally like ' ', yea |
2021-08-23 13:53:18 +0200 | favonia | (~favonia@user/favonia) |
2021-08-23 13:53:52 +0200 | <[exa]> | afaik it implements a pretty good static representation of the closure |
2021-08-23 13:54:32 +0200 | <Rembane_> | Do you get that sweet lisp scoping when you use std::bind? |
2021-08-23 13:54:58 +0200 | <[exa]> | lisp scope is structural or lexical? |
2021-08-23 13:55:03 +0200 | <[exa]> | (I can never remember) |
2021-08-23 13:55:14 +0200 | <Rembane_> | Me neither, so I guess we're stuck now. :) |
2021-08-23 13:55:25 +0200 | <[exa]> | anyway the scope is perfectly c++ish |
2021-08-23 13:55:41 +0200 | <Rembane_> | If everything works as expected it's fine imo |
2021-08-23 13:56:08 +0200 | <[exa]> | yeah it really works, if you want to do a partial application std::bind is the way |
2021-08-23 13:57:03 +0200 | <[exa]> | or a std::thunk <-- fiction |
2021-08-23 13:57:06 +0200 | haskl | (~haskl@user/haskl) (Remote host closed the connection) |
2021-08-23 13:59:05 +0200 | haskl | (~haskl@98.37.78.63) |
2021-08-23 13:59:09 +0200 | <Rembane_> | It's a good thunk. |
2021-08-23 14:00:35 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-23 14:00:54 +0200 | haskl | (~haskl@98.37.78.63) (Changing host) |
2021-08-23 14:00:54 +0200 | haskl | (~haskl@user/haskl) |
2021-08-23 14:01:12 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 14:01:54 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-23 14:03:51 +0200 | <timCF> | dminuoso: I also thought maybe I can avoid `^?` using monadic nature of maybe, so `x ^? maybe'foo . _Just . maybe'bar . _Just` can be rewritten as `x ^. maybe'foo >>= (^. maybe'bar)` but I'm afraid it's even more confusing. But maybe not :) |
2021-08-23 14:04:29 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) |
2021-08-23 14:05:46 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 250 seconds) |
2021-08-23 14:07:27 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-08-23 14:11:49 +0200 | pbrisbin | (~patrick@174-081-116-011.res.spectrum.com) |
2021-08-23 14:13:54 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1) |
2021-08-23 14:14:08 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) |
2021-08-23 14:20:32 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) |
2021-08-23 14:31:24 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
2021-08-23 14:35:43 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-23 14:36:04 +0200 | urdh | (~urdh@user/urdh) (Quit: Boom!) |
2021-08-23 14:36:50 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-08-23 14:37:04 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 14:38:16 +0200 | jacks2 | (~bc8167eb@217.29.117.252) |
2021-08-23 14:38:49 +0200 | <jacks2> | hi. given parsec's someParser :: Parser a, is it possible to get current line number in someParser? |
2021-08-23 14:42:07 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-23 14:42:11 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2021-08-23 14:42:27 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-23 14:42:51 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2021-08-23 14:44:17 +0200 | keutoi | (~keutoi@106.208.52.176) (Ping timeout: 248 seconds) |
2021-08-23 14:44:57 +0200 | markpythonicbtc | (~textual@2601:647:5a00:35:d936:f2de:ef6:f0f4) (Quit: My MacBook has gone to sleep. ZZZzzzโฆ) |
2021-08-23 14:45:13 +0200 | urdh | (~urdh@user/urdh) |
2021-08-23 14:47:29 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-08-23 14:49:40 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-08-23 14:50:18 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-08-23 14:52:16 +0200 | <[exa]> | Jack: not sure about parsec but megaparsec has `getSourcePos` |
2021-08-23 14:52:33 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-08-23 14:53:54 +0200 | <[exa]> | ha, parsec has equivalent `getPosition` |
2021-08-23 14:55:56 +0200 | keutoi | (~keutoi@157.48.226.59) |
2021-08-23 14:59:12 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-08-23 15:00:37 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-08-23 15:01:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 15:07:46 +0200 | tremon_ | (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Ping timeout: 240 seconds) |
2021-08-23 15:09:17 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-23 15:10:58 +0200 | markpythonicbtc | (~textual@50.228.44.6) |
2021-08-23 15:11:10 +0200 | <ggVGc> | isn't it about time Haskell gets one officially standard parsing library |
2021-08-23 15:12:14 +0200 | <tdammers> | "official" by whose authority? |
2021-08-23 15:12:57 +0200 | <merijn> | We already have an official standard parsing library in base :p |
2021-08-23 15:13:03 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-08-23 15:13:11 +0200 | <merijn> | Actually, two, I think |
2021-08-23 15:13:15 +0200 | <merijn> | And they suck :p |
2021-08-23 15:13:25 +0200 | <tdammers> | readP? |
2021-08-23 15:13:34 +0200 | <merijn> | and readS |
2021-08-23 15:13:40 +0200 | <tdammers> | ah yes |
2021-08-23 15:15:10 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) (Ping timeout: 240 seconds) |
2021-08-23 15:22:02 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-08-23 15:22:35 +0200 | <[exa]> | ggVGc: y tho |
2021-08-23 15:22:38 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) |
2021-08-23 15:25:55 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) |
2021-08-23 15:27:00 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-08-23 15:27:09 +0200 | <merijn> | If I've learned anything from my time in python, it's that "officially blessed and in the standard library" has a 100% fatality rate on libraries :p |
2021-08-23 15:28:06 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) (Ping timeout: 250 seconds) |
2021-08-23 15:28:07 +0200 | byorgey | (~byorgey@155.138.238.211) |
2021-08-23 15:31:23 +0200 | <ggVGc> | I just wish that wasn't the case |
2021-08-23 15:31:45 +0200 | <ggVGc> | imagine if we could collectively stop writing and rewriting 20 versions of the same things all the time |
2021-08-23 15:35:08 +0200 | <[exa]> | producing quality packages requires training on other ones |
2021-08-23 15:35:49 +0200 | <maerwald> | yeah, I will support streamly based parsers in base |
2021-08-23 15:35:52 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 15:35:59 +0200 | keutoi_ | (~keutoi@223.238.95.231) |
2021-08-23 15:36:29 +0200 | <merijn> | ggVGc: That seems an orthogonal issue |
2021-08-23 15:36:33 +0200 | keutoi | (~keutoi@157.48.226.59) (Killed (lithium.libera.chat (Nickname regained by services))) |
2021-08-23 15:36:33 +0200 | keutoi_ | keutoi |
2021-08-23 15:36:43 +0200 | <merijn> | ggVGc: If there is a good and adequate parser library, what's stopping you from using it |
2021-08-23 15:37:11 +0200 | <merijn> | Like, how would an "officially blessed and in base" version of megaparsec be better than, just megaparsec? |
2021-08-23 15:37:42 +0200 | <[exa]> | also I guess we can kinda agree that almost all SI-prefixed variants of parsec have their own place |
2021-08-23 15:37:46 +0200 | <maerwald> | well... haskell is really bad at composition |
2021-08-23 15:37:47 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 15:37:53 +0200 | <maerwald> | more stuff in base can improve that |
2021-08-23 15:37:54 +0200 | <ggVGc> | I believe the possible positive outcomes are always more focused efforts, and better documentation |
2021-08-23 15:37:55 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-08-23 15:38:02 +0200 | <merijn> | maerwald: So is pretty much every mainstream language :p |
2021-08-23 15:38:06 +0200 | <maerwald> | merijn: no |
2021-08-23 15:38:20 +0200 | <maerwald> | the weaker the types, the easier the composition, sometimes |
2021-08-23 15:38:32 +0200 | <maerwald> | since haskells API is all very type heavy, you can't easily exchange implementations |
2021-08-23 15:38:53 +0200 | <maerwald> | that's often less of an issue in, say, Go |
2021-08-23 15:39:10 +0200 | <maerwald> | because the few types they use are everywhere |
2021-08-23 15:39:13 +0200 | <[exa]> | can we count in the debugging time? :D |
2021-08-23 15:39:26 +0200 | <merijn> | maerwald: Depends how you define "easier", sure you can combine more things, but I assumed we only cared about *bugfree* combinations :p |
2021-08-23 15:40:05 +0200 | <maerwald> | merijn: you don't have bugfree anywhere |
2021-08-23 15:40:19 +0200 | <merijn> | maerwald: I also disagree that's an inherent flaw in Haskell, it's just a flaw in Haskell *programmers* to make their API's types inconvenient |
2021-08-23 15:40:45 +0200 | <maerwald> | sure, it's an ecosystem effect, but the language is more convenient for it |
2021-08-23 15:40:48 +0200 | <maerwald> | so it's both sides |
2021-08-23 15:40:49 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 248 seconds) |
2021-08-23 15:41:04 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 252 seconds) |
2021-08-23 15:42:02 +0200 | <maerwald> | people thought backpack might solve this, but lol |
2021-08-23 15:42:14 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 15:42:22 +0200 | <merijn> | I blame pytorch hijacking ezyang |
2021-08-23 15:42:24 +0200 | <maerwald> | you still have to agree on an API, like... what's parsing, what's streaming etc |
2021-08-23 15:44:06 +0200 | <maerwald> | and looking at conduit and streamly, the APIs are already incompatible |
2021-08-23 15:44:07 +0200 | <maerwald> | inherently |
2021-08-23 15:44:25 +0200 | <maerwald> | so backpack is not the solution |
2021-08-23 15:45:22 +0200 | <maerwald> | if we had an actual functioning CLC that is working on base actively, I don't think it would be an issue to broaden the scope |
2021-08-23 15:45:29 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
2021-08-23 15:45:50 +0200 | <[exa]> | ...write a grant? |
2021-08-23 15:46:10 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
2021-08-23 15:46:23 +0200 | <maerwald> | money solves it? |
2021-08-23 15:46:27 +0200 | <[exa]> | honestly I think e.g. MS research would not think twice about this precise ecosystem improvement |
2021-08-23 15:46:32 +0200 | <[exa]> | well, you need people to do that |
2021-08-23 15:46:37 +0200 | <maerwald> | HF has money |
2021-08-23 15:46:47 +0200 | <merijn> | I mean, base's problem is that it can't move fast without breaking *everything* |
2021-08-23 15:46:58 +0200 | <merijn> | Not to mention, significant parts are in the report |
2021-08-23 15:47:31 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-23 15:47:58 +0200 | <[exa]> | maerwald: still it somehow chooses to work on other stuff |
2021-08-23 15:48:02 +0200 | <maerwald> | yes |
2021-08-23 15:48:15 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 15:48:27 +0200 | <[exa]> | maerwald: anyway the issue might just be more problematic, driven by actual programming deficiency than just people being lazy |
2021-08-23 15:48:35 +0200 | <maerwald> | they're more concerned with broadening Haskell adoption in industry I think... at least that's what I gather from their mission statement discussion |
2021-08-23 15:49:11 +0200 | <[exa]> | writing super-compatible stuff that still has types and not just "FromResult a => IO a" takes insane amounts of abstraction |
2021-08-23 15:49:18 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 15:49:27 +0200 | <maerwald> | broadening adoption is more about building a brand/an image, providing consulting services, etc etc |
2021-08-23 15:49:31 +0200 | <maerwald> | less about improving ecosystem |
2021-08-23 15:49:36 +0200 | <[exa]> | monkeypatching stuff together (python/ruby way yay) certainly works but that's one thing we wanted to prevent right? |
2021-08-23 15:50:07 +0200 | <[exa]> | adoption broads itself with killer apps |
2021-08-23 15:51:22 +0200 | <[exa]> | anyway I'd certainly vote for having the internals of the packages exposed a bit more, having some way of recombining them in a little different way/with different glue types in case it's needed |
2021-08-23 15:51:51 +0200 | <[exa]> | the problem is that there's no such now, except for 1] having 100x more type variables 2] backpack, kinda |
2021-08-23 15:52:07 +0200 | <[exa]> | *no such standardized way to do that |
2021-08-23 15:52:36 +0200 | <[exa]> | not standardized -- not even available |
2021-08-23 15:55:28 +0200 | <[exa]> | hm now that's a research topic, assurance of some api compatibility without standardization |
2021-08-23 15:55:33 +0200 | <[exa]> | ...let's write a grant? |
2021-08-23 15:56:49 +0200 | aguapesada | (~aguapesad@191.177.175.57) (Ping timeout: 248 seconds) |
2021-08-23 15:57:15 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 15:59:46 +0200 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2021-08-23 16:00:37 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 16:01:55 +0200 | <jacks2> | [exa], nice, thanks! |
2021-08-23 16:02:37 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 16:02:42 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-08-23 16:02:47 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) (Ping timeout: 240 seconds) |
2021-08-23 16:03:10 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-23 16:05:21 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-08-23 16:05:36 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 16:06:40 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 240 seconds) |
2021-08-23 16:07:27 +0200 | azeem | (~azeem@176.201.15.223) (Ping timeout: 240 seconds) |
2021-08-23 16:07:42 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 16:10:04 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) |
2021-08-23 16:16:22 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) |
2021-08-23 16:17:04 +0200 | Guest8337 | (~chris@81.96.113.213) (Ping timeout: 250 seconds) |
2021-08-23 16:18:43 +0200 | codedmart_ | codedmart |
2021-08-23 16:18:59 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-08-23 16:20:04 +0200 | chris | (~chris@81.96.113.213) |
2021-08-23 16:20:07 +0200 | chris | Guest5712 |
2021-08-23 16:20:33 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-23 16:20:46 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-23 16:21:54 +0200 | chris | (~chris@81.96.113.213) |
2021-08-23 16:21:54 +0200 | Guest5712 | (~chris@81.96.113.213) (Read error: Connection reset by peer) |
2021-08-23 16:21:58 +0200 | chris | Guest2290 |
2021-08-23 16:22:10 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-08-23 16:25:18 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-08-23 16:26:26 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
2021-08-23 16:26:26 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) |
2021-08-23 16:26:37 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) (Quit: Reconnecting) |
2021-08-23 16:26:53 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-08-23 16:27:42 +0200 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host) |
2021-08-23 16:27:42 +0200 | zfnmxt | (~zfnmxtzfn@user/zfnmxt) |
2021-08-23 16:28:09 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-08-23 16:28:10 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 240 seconds) |
2021-08-23 16:28:39 +0200 | MoC | (~moc@user/moc) |
2021-08-23 16:28:50 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 16:29:46 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 16:30:33 +0200 | mal1 | lieven |
2021-08-23 16:30:36 +0200 | timCF | (~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving) |
2021-08-23 16:33:10 +0200 | pgib | (~textual@173.38.117.86) (Ping timeout: 240 seconds) |
2021-08-23 16:36:23 +0200 | VoidNoir0 | (~VoidNoir0@72.80.203.52) |
2021-08-23 16:36:44 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-08-23 16:40:51 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 16:42:52 +0200 | markpythonicbtc | (~textual@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzzโฆ) |
2021-08-23 16:43:10 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 16:43:28 +0200 | markpythonicbtc | (~textual@50.228.44.6) |
2021-08-23 16:43:58 +0200 | markpythonicbtc | (~textual@50.228.44.6) (Client Quit) |
2021-08-23 16:43:59 +0200 | dschrempf | (~dominik@92-249-199-97.pool.digikabel.hu) (Quit: WeeChat 3.2) |
2021-08-23 16:44:07 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2021-08-23 16:44:42 +0200 | cheater | (~Username@user/cheater) |
2021-08-23 16:45:42 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 16:45:58 +0200 | Boomerang | (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds) |
2021-08-23 16:49:01 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) |
2021-08-23 16:50:51 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 16:52:15 +0200 | zmt01 | (~zmt00@user/zmt00) |
2021-08-23 16:53:07 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 16:54:23 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) |
2021-08-23 16:55:25 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-08-23 17:02:28 +0200 | Square | Sqaure |
2021-08-23 17:03:52 +0200 | jose03 | (~a@p200300ef9702383b45b8de8f8152bf35.dip0.t-ipconnect.de) |
2021-08-23 17:04:16 +0200 | Ariakenom | (~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1) |
2021-08-23 17:05:57 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 17:06:21 +0200 | <jose03> | ghcup has nice terminal user interface. Does anybody know which haskell library they used for the UI? Or is it a C program? |
2021-08-23 17:07:10 +0200 | daeng | (~daeng@2401:3c00:18e:e603:bec7:e31f:ee15:3296) (Quit: Leaving) |
2021-08-23 17:08:29 +0200 | <[exa]> | jose03: apparently Options.Applicative and Brick |
2021-08-23 17:08:36 +0200 | <[exa]> | see code https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/app/ghcup/Main.hs |
2021-08-23 17:09:07 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-08-23 17:09:16 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 17:12:49 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 17:13:02 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 17:14:46 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 17:15:13 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) |
2021-08-23 17:16:04 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.2) |
2021-08-23 17:17:31 +0200 | burnsidesLlama | (~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-08-23 17:17:31 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 17:17:31 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 17:17:31 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 17:19:22 +0200 | <maerwald> | jose03: brick |
2021-08-23 17:20:27 +0200 | <maerwald> | https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/app/ghcup/BrickMain.hs |
2021-08-23 17:20:47 +0200 | <maerwald> | barely 500 LOC |
2021-08-23 17:20:58 +0200 | rmo | (~rmo@user/msr) (Read error: Connection reset by peer) |
2021-08-23 17:20:59 +0200 | <maerwald> | only downside is it doesn't support windows |
2021-08-23 17:21:46 +0200 | hexfive | (~eric@50.35.83.177) |
2021-08-23 17:22:30 +0200 | markpythonicbtc | (~textual@2601:647:5a00:35:f45e:90a7:31f1:d8ef) |
2021-08-23 17:23:27 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge) |
2021-08-23 17:23:28 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-23 17:23:48 +0200 | <merijn> | optparse-applicative for commandline arguments/flags |
2021-08-23 17:23:55 +0200 | <merijn> | brick for anything TUI like |
2021-08-23 17:23:59 +0200 | MidAutumnMoon | (~MidAutumn@user/midautumnmoon) |
2021-08-23 17:24:14 +0200 | hexfive | (~eric@50.35.83.177) (Client Quit) |
2021-08-23 17:25:10 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-23 17:26:56 +0200 | <jose03> | [exa]: maerwald: merijn: thank you |
2021-08-23 17:29:22 +0200 | nvmd | (~nvmd@user/nvmd) |
2021-08-23 17:39:18 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-08-23 17:43:35 +0200 | jippiedoe | (~david@2a02-a44c-e14e-1-bfe4-3f38-b8a5-8c39.fixed6.kpn.net) (Quit: Leaving) |
2021-08-23 17:44:01 +0200 | dsrt^ | (~dsrt@12.16.129.111) (Remote host closed the connection) |
2021-08-23 17:45:18 +0200 | epolanski | (uid312403@id-312403.brockwell.irccloud.com) |
2021-08-23 17:45:47 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) (Ping timeout: 240 seconds) |
2021-08-23 17:46:01 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-08-23 17:46:07 +0200 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2021-08-23 17:46:46 +0200 | xff0x | (~xff0x@2001:1a81:52f9:3300:b601:7649:8935:742b) |
2021-08-23 17:50:19 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
2021-08-23 17:51:26 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-23 17:55:09 +0200 | ubert | (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
2021-08-23 17:55:32 +0200 | ubert | (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) |
2021-08-23 17:56:52 +0200 | frtdlteo^ | (~frtdlteo@12.16.129.111) |
2021-08-23 17:56:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 18:02:53 +0200 | chexum_ | chexum |
2021-08-23 18:03:35 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 18:08:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2021-08-23 18:08:51 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
2021-08-23 18:09:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-08-23 18:09:40 +0200 | nate1 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-08-23 18:12:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 18:17:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-23 18:19:33 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 268 seconds) |
2021-08-23 18:22:18 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 250 seconds) |
2021-08-23 18:25:56 +0200 | hrnz | (~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb) |
2021-08-23 18:26:19 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-08-23 18:26:26 +0200 | hrnz | (~ulli@irc.plumbing) (Client Quit) |
2021-08-23 18:26:51 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-08-23 18:27:19 +0200 | hrnz | (~ulli@irc.plumbing) (Client Quit) |
2021-08-23 18:27:31 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2) |
2021-08-23 18:27:45 +0200 | hrnz | (~ulli@irc.plumbing) |
2021-08-23 18:29:04 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-08-23 18:29:35 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-08-23 18:38:05 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 18:40:26 +0200 | <siers> | I'm trying to understand the difference between {,G}ADTs. They both inductively create more elements in the set from old elements, but with GADTs you can restrict which elements you may use to to construct the next one, if you wish? |
2021-08-23 18:41:59 +0200 | <Lycurgus> | what does {,G} signify over what G does? |
2021-08-23 18:42:01 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-08-23 18:42:35 +0200 | <siers> | ah, that is a stupid shellism |
2021-08-23 18:42:43 +0200 | <siers> | echo {,G}ADTs |
2021-08-23 18:42:45 +0200 | <siers> | ADTs GADTs |
2021-08-23 18:42:49 +0200 | <Lycurgus> | i c |
2021-08-23 18:43:27 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-08-23 18:43:56 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-08-23 18:44:21 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 18:45:29 +0200 | jess | (~jess@libera/staff/jess) |
2021-08-23 18:49:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-23 18:50:28 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 250 seconds) |
2021-08-23 18:51:47 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 240 seconds) |
2021-08-23 18:52:02 +0200 | dajoer | (~david@user/gvx) (Quit: leaving) |
2021-08-23 18:53:18 +0200 | ubert1 | (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) |
2021-08-23 18:53:56 +0200 | <Drew[m]> | siers: This may be an oversimplification but my understanding is that GADTs let you define datatypes with type parameters, where what fills the parameter is decided by which constructor you constructed the datatype with. |
2021-08-23 18:53:58 +0200 | <Drew[m]> | If the constructor you use fixes a type parameter in a type then the reverse is also true: fixing the type parameter also fixes what data constructor you can construct a value in that type with. |
2021-08-23 18:54:44 +0200 | <Lycurgus> | like extra virgin olive oil, in this case extra abstact |
2021-08-23 18:54:47 +0200 | ubert | (~Thunderbi@178.165.179.240.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-08-23 18:54:47 +0200 | ubert1 | ubert |
2021-08-23 18:56:26 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-08-23 18:58:26 +0200 | <monochrom> | The GHC User's Guide has an example in its GADT section. |
2021-08-23 18:59:00 +0200 | <monochrom> | Generally 99% of the time the GHC User's Guide should be your first go-to source for this kind of consultations. |
2021-08-23 18:59:23 +0200 | <monochrom> | Has examples. Pinpointing. Cuts to the mustard. |
2021-08-23 19:02:15 +0200 | zebrag | (~chris@user/zebrag) |
2021-08-23 19:02:17 +0200 | obs\ | (~obscur1ty@156.192.129.164) |
2021-08-23 19:02:17 +0200 | obs\ | (~obscur1ty@156.192.129.164) (Changing host) |
2021-08-23 19:02:17 +0200 | obs\ | (~obscur1ty@user/obs/x-5924898) |
2021-08-23 19:02:57 +0200 | kuribas | (~user@ptr-25vy0iajat4u154jc6g.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-08-23 19:07:13 +0200 | <Lycurgus> | *abstract |
2021-08-23 19:08:24 +0200 | econo | (uid147250@user/econo) |
2021-08-23 19:12:01 +0200 | pbrisbin | (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 248 seconds) |
2021-08-23 19:13:55 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-08-23 19:14:01 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-23 19:14:10 +0200 | pbrisbin | (~patrick@199.66.179.206) |
2021-08-23 19:18:59 +0200 | pavonia | (~user@user/siracusa) |
2021-08-23 19:19:07 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 19:19:52 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
2021-08-23 19:20:27 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-08-23 19:22:39 +0200 | ubert | (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2021-08-23 19:23:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 19:29:51 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-23 19:30:26 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-08-23 19:33:50 +0200 | ubert | (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) |
2021-08-23 19:34:15 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 19:35:15 +0200 | <maerwald[m]> | GHC user guide is often better than haskell wiki |
2021-08-23 19:37:27 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
2021-08-23 19:38:27 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-23 19:38:37 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-08-23 19:39:02 +0200 | defanor | (~defanor@tart.uberspace.net) (Quit: .) |
2021-08-23 19:39:13 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds) |
2021-08-23 19:41:33 +0200 | fendor_ | (~fendor@77.119.197.208.wireless.dyn.drei.com) |
2021-08-23 19:43:47 +0200 | fendor | (~fendor@91.141.64.241.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-08-23 19:45:09 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-08-23 19:46:01 +0200 | azeem | (~azeem@176.201.15.223) |
2021-08-23 19:46:37 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-08-23 19:47:01 +0200 | <siers> | monochrom, I am trying to describe it with my own words differently after reading the user guide already. |
2021-08-23 19:47:14 +0200 | <fresheyeball> | is there a way to use CPP to special case code for test suites? |
2021-08-23 19:47:27 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-08-23 19:48:07 +0200 | <fresheyeball> | basically I want Arbitrary instances to be local to the type, not orphans, but not to have a dependency on QuickCheck in the exe |
2021-08-23 19:50:13 +0200 | <monochrom> | I think no. |
2021-08-23 19:50:41 +0200 | <tomsmeding> | fresheyeball: see also: https://www.michaelpj.com/blog/2020/10/29/your-orphans-are-fine.html |
2021-08-23 19:51:00 +0200 | <tomsmeding> | for some nuance regarding orphans |
2021-08-23 19:51:06 +0200 | jose03 | (~a@p200300ef9702383b45b8de8f8152bf35.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2021-08-23 19:51:18 +0200 | <sm> | sure ? you can define a cpp var in the test component ? |
2021-08-23 19:52:02 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 19:52:06 +0200 | <sm> | should you ? maybe not ? |
2021-08-23 19:53:03 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-08-23 19:53:09 +0200 | <fresheyeball> | tomsmeding: I have more problems than just orphans to be fair |
2021-08-23 19:53:25 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-23 19:54:50 +0200 | trcc | (~trcc@130.225.0.251) |
2021-08-23 19:55:03 +0200 | panda_man | koala_man |
2021-08-23 19:55:30 +0200 | aegon | (~mike@174.127.249.180) |
2021-08-23 19:56:12 +0200 | <aegon> | I see how the ffi works with basic characters, is there a way to use it to marshell haskell types into structs or structs into haskell types or keep a reference to an opaque type exposed by a c lib / what does that look like? |
2021-08-23 19:57:02 +0200 | pbrisbin | (~patrick@199.66.179.206) (Read error: Connection reset by peer) |
2021-08-23 19:58:16 +0200 | <fresheyeball> | I figured out a solution |
2021-08-23 19:58:31 +0200 | <fresheyeball> | cpp-options: -DTEST |
2021-08-23 19:58:36 +0200 | <fresheyeball> | in the suite is all that is needed |
2021-08-23 19:58:41 +0200 | <fresheyeball> | but I wish it was built in |
2021-08-23 20:00:20 +0200 | <aegon> | https://stackoverflow.com/questions/30026843/haskell-data-instance-for-opaque-data-type found this for opaque types but having trouble finding things on passing / parsing structs across the ffi |
2021-08-23 20:02:29 +0200 | pbrisbin | (~patrick@174-081-116-011.res.spectrum.com) |
2021-08-23 20:02:30 +0200 | Lycurgus | (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
2021-08-23 20:03:28 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-23 20:04:06 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 20:04:07 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 20:04:07 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 20:05:16 +0200 | <pavonia> | aegon: Have you read the wiki page on the FFI? https://wiki.haskell.org/Foreign_Function_Interface#Marshalling_data |
2021-08-23 20:05:52 +0200 | <aegon> | pavonia: nope, and that looks like it has everything i'm pondering spelled out |
2021-08-23 20:06:23 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) |
2021-08-23 20:07:04 +0200 | fendor_ | fendor |
2021-08-23 20:08:17 +0200 | Adran | (adran@botters/adran) (Quit: Este รฉ o fim.) |
2021-08-23 20:08:28 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-08-23 20:10:38 +0200 | Adran | (~adran@botters/adran) |
2021-08-23 20:10:47 +0200 | defanor | (~defanor@tart.uberspace.net) |
2021-08-23 20:14:22 +0200 | keutoi | (~keutoi@223.238.95.231) (Quit: leaving) |
2021-08-23 20:15:27 +0200 | <maerwald> | do we have some fuzzy function/class to determine if a list is null-ish? like ["", ""] |
2021-08-23 20:15:31 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
2021-08-23 20:15:57 +0200 | <maerwald> | I'm not striving for clear semantics, since the input isn't |
2021-08-23 20:16:16 +0200 | <monochrom> | I think no one has thought of it before. |
2021-08-23 20:16:51 +0200 | azeem | (~azeem@176.201.15.223) (Read error: Connection reset by peer) |
2021-08-23 20:17:28 +0200 | <monochrom> | My understanding is that this is a job more suitable for humans, in particular some of my weaker students who conflate 0, the empty set, the empty list, and the non-empty list that contains the non-empty set that contains the empty list. |
2021-08-23 20:18:15 +0200 | vysn | (~vysn@user/vysn) |
2021-08-23 20:18:52 +0200 | azeem | (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
2021-08-23 20:19:07 +0200 | <monochrom> | s/weaker/very weak/ |
2021-08-23 20:19:36 +0200 | <maerwald> | I can imagine this working with a class that just gets called recursively. As with `Default`, of course it's subject to heavy abuse |
2021-08-23 20:20:27 +0200 | <monochrom> | If you ever codify something into code, then unless there is non-determinism, you will end up with one clear semantics. |
2021-08-23 20:20:51 +0200 | <monochrom> | This is why for fuzzy things I would refer to weak humans. |
2021-08-23 20:21:51 +0200 | <maerwald> | you mean plug in your students neural network into my binary? |
2021-08-23 20:22:09 +0200 | <aegon> | maerwald: imo that type of problem points to bad data parsing / sanitizing, I'm trying to think of a place where this would be benificial to do in the middle of a computation as apposed to during injestion. If it's happening in the middle of a computation couldn't you use Maybe to signify possible failure or some other thing to be more explicit about the meaning of "nullish" |
2021-08-23 20:22:33 +0200 | <maerwald> | aegon: yes, I don't control the data |
2021-08-23 20:22:35 +0200 | <monochrom> | For example I wouldn't be against a simple recursive algorithm "is_nullish xs = every element of xs is_nullish". At the same time, I have zero confidence that this agrees with your user's expectation. |
2021-08-23 20:23:16 +0200 | <aegon> | maerwald: can you sanity check it at the IO layer where your consuming it? in that case you could write the sanity check into the parser |
2021-08-23 20:23:38 +0200 | <maerwald> | aegon: why would I sanity check? I want to accept as much junk as possible |
2021-08-23 20:23:54 +0200 | <aegon> | why do you want junk? |
2021-08-23 20:23:58 +0200 | <maerwald> | this is about supporting as many curl versions as possible and their funky output |
2021-08-23 20:24:33 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-08-23 20:24:49 +0200 | <maerwald> | so I'm doing half-assed parsing, not proper parsing |
2021-08-23 20:26:38 +0200 | <maerwald> | the real fix would have been to use `--suppress-connect-headers`, but of course, not all versions have it |
2021-08-23 20:29:21 +0200 | <[exa]> | maerwald: what about `not . any isAlphaNum . show` ? (might save time) |
2021-08-23 20:30:04 +0200 | <[exa]> | (counter-example: `map (flip replicate "" . ord) "oh hello there"`) |
2021-08-23 20:30:22 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) |
2021-08-23 20:30:54 +0200 | <maerwald> | yeah, for my use case T.stripEnd is enough with a later filter on `not . null` |
2021-08-23 20:32:23 +0200 | juri_ | (~juri@178.63.35.222) (Remote host closed the connection) |
2021-08-23 20:33:12 +0200 | <maerwald> | until a new curl version does something new :p |
2021-08-23 20:33:25 +0200 | <[exa]> | \o/ |
2021-08-23 20:33:41 +0200 | <maerwald> | wget seems much more stable |
2021-08-23 20:33:44 +0200 | <maerwald> | although a lot slower too |
2021-08-23 20:34:05 +0200 | <[exa]> | wget's got some internal machinery to make stuff faster, you can pipe URLs to it |
2021-08-23 20:34:39 +0200 | <maerwald> | wget performs REALLY bad with etags |
2021-08-23 20:34:46 +0200 | <[exa]> | whats etags |
2021-08-23 20:35:07 +0200 | <maerwald> | https://en.wikipedia.org/wiki/HTTP_ETag |
2021-08-23 20:35:27 +0200 | burnsidesLlama | (~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds) |
2021-08-23 20:36:07 +0200 | <maerwald> | compare: wget -q -S --header 'If-None-Match: "612388b3-1bc72"' https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml |
2021-08-23 20:36:17 +0200 | <maerwald> | curl -H 'If-None-Match: "612388b3-1bc72"' https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml |
2021-08-23 20:36:25 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds) |
2021-08-23 20:36:27 +0200 | <maerwald> | curl is twice as fast |
2021-08-23 20:36:32 +0200 | <maerwald> | at least here |
2021-08-23 20:37:56 +0200 | <[exa]> | hm interesting, right ~600ms curl vs ~800 for wget here |
2021-08-23 20:38:08 +0200 | <maerwald> | curl is 480ms here |
2021-08-23 20:38:24 +0200 | <[exa]> | +- a lot, ฯ~=100ms I'd say |
2021-08-23 20:38:32 +0200 | <maerwald> | but noticable |
2021-08-23 20:38:43 +0200 | <[exa]> | what does Dr. Strace say? |
2021-08-23 20:39:23 +0200 | <maerwald> | he's too chatty :p |
2021-08-23 20:41:29 +0200 | <[exa]> | well let's see actually, I'm interested |
2021-08-23 20:41:50 +0200 | <[exa]> | chances are that wget is doing something for free for some vaguely userfriendly reason |
2021-08-23 20:43:27 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds) |
2021-08-23 20:44:28 +0200 | <maerwald> | wouldn't be surprised if it makes a full download and then decides to show 304 |
2021-08-23 20:44:51 +0200 | <maerwald> | but that's quick to test |
2021-08-23 20:45:57 +0200 | derelict | (~derelict@user/derelict) (Quit: WeeChat 3.2) |
2021-08-23 20:46:45 +0200 | <maerwald> | doesn't seem so... I'm also having vastly different timings to downloads.haskell.org compared to www.haskell.org |
2021-08-23 20:46:56 +0200 | frtdlteo^ | (~frtdlteo@12.16.129.111) (Remote host closed the connection) |
2021-08-23 20:47:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 20:48:03 +0200 | <[exa]> | so, wget loads faster by like 20ms here |
2021-08-23 20:49:40 +0200 | <maerwald> | comparsion: wget -q -S --header 'If-None-Match: "61140ad8-3cbea20"' https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2 |
2021-08-23 20:49:43 +0200 | sim590 | (~simon@modemcable090.207-203-24.mc.videotron.ca) |
2021-08-23 20:49:45 +0200 | <maerwald> | this finishes in 200ms here |
2021-08-23 20:49:59 +0200 | <maerwald> | seems like a configuration issue |
2021-08-23 20:50:12 +0200 | <maerwald> | both should be cached |
2021-08-23 20:54:29 +0200 | <[exa]> | strace says the difference is really just in waiting for the replies from the server, guess there's something ugly in the headers |
2021-08-23 20:57:19 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-08-23 20:57:37 +0200 | hrdl | (~hrdl@mail.hrdl.eu) (Ping timeout: 248 seconds) |
2021-08-23 20:57:46 +0200 | maerwald | (~maerwald@user/maerwald) (Quit: gone) |
2021-08-23 20:57:51 +0200 | hrdl | (~hrdl@mail.hrdl.eu) |
2021-08-23 20:58:02 +0200 | Morrow_ | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-08-23 20:58:04 +0200 | maerwald | (~maerwald@mail.hasufell.de) |
2021-08-23 20:58:21 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-08-23 20:58:32 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-08-23 20:58:36 +0200 | lisq | (~quassel@lis.moe) (Remote host closed the connection) |
2021-08-23 20:58:54 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 244 seconds) |
2021-08-23 20:59:18 +0200 | maerwald | (~maerwald@mail.hasufell.de) (Changing host) |
2021-08-23 20:59:18 +0200 | maerwald | (~maerwald@user/maerwald) |
2021-08-23 20:59:32 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-08-23 20:59:44 +0200 | <maerwald> | [exa]: odd |
2021-08-23 20:59:45 +0200 | lisq | (~quassel@lis.moe) |
2021-08-23 21:00:38 +0200 | <[exa]> | maerwald: curl uses http/2 |
2021-08-23 21:02:10 +0200 | jacks2 | (~bc8167eb@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-08-23 21:03:38 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-08-23 21:04:12 +0200 | <[exa]> | hm got it, for me it's gnutls vs openssl |
2021-08-23 21:04:21 +0200 | <[exa]> | gnutls's got a bit more aggressive crypto in place by default |
2021-08-23 21:05:00 +0200 | teo | (~teo@137.220.120.222) |
2021-08-23 21:05:11 +0200 | <[exa]> | timing of `gnutls-cli` vs `openssl s_client` is consistent with what you see there |
2021-08-23 21:05:41 +0200 | <[exa]> | roughly the 800 vs 600 ms |
2021-08-23 21:06:11 +0200 | <maerwald> | hm, I should try curl linked against polarssl |
2021-08-23 21:06:44 +0200 | <[exa]> | there's also gnutls curl somewhere |
2021-08-23 21:06:47 +0200 | <[exa]> | at least debian has some |
2021-08-23 21:08:46 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-08-23 21:11:22 +0200 | jtomas_ | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
2021-08-23 21:12:32 +0200 | trcc | (~trcc@130.225.0.251) () |
2021-08-23 21:13:47 +0200 | jtomas | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2021-08-23 21:14:45 +0200 | peutri_ | peutri |
2021-08-23 21:18:51 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:5b4:1bf2:3392:8995) |
2021-08-23 21:19:41 +0200 | <carter> | i've been having fun figuruing out what monad transformer helpers are best for writing a snazzy interpreter / compiler lately |
2021-08-23 21:23:34 +0200 | <[exa]> | "snazzy"? :D |
2021-08-23 21:24:07 +0200 | juri_ | (~juri@178.63.35.222) |
2021-08-23 21:25:28 +0200 | <[exa]> | (I learned a new word) |
2021-08-23 21:27:53 +0200 | <maerwald> | carter: MonadChronicle? |
2021-08-23 21:28:08 +0200 | <carter> | maerwald: ooo, that sounds fun |
2021-08-23 21:28:10 +0200 | <[exa]> | maerwald: I can't dig what's openssl using for KEX but not expecting problems there; changing gnutls ciphersuites didn't help much. I guess it's dark magicks |
2021-08-23 21:28:20 +0200 | <carter> | maerwald: what would that do |
2021-08-23 21:28:23 +0200 | <carter> | [exa]: glad i could help |
2021-08-23 21:28:27 +0200 | <carter> | not a native speaker? |
2021-08-23 21:28:27 +0200 | <maerwald> | carter: express warnings and failure |
2021-08-23 21:28:44 +0200 | <maerwald> | it's like These |
2021-08-23 21:28:55 +0200 | <maerwald> | would probably be fun if you make it an open sum type, heh |
2021-08-23 21:29:10 +0200 | <carter> | oh that looks fun |
2021-08-23 21:29:27 +0200 | <carter> | thats probably the right thing for type checking a sect of SCC's |
2021-08-23 21:29:53 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2021-08-23 21:30:05 +0200 | teo | (~teo@137.220.120.222) (Quit: Lost terminal) |
2021-08-23 21:30:16 +0200 | <maerwald> | I think I'm a believer of cabal-docspec now |
2021-08-23 21:30:53 +0200 | <carter> | oh |
2021-08-23 21:31:53 +0200 | <maerwald> | no need to have a doctest target |
2021-08-23 21:31:55 +0200 | <carter> | is that in cabal 3.6 yet? |
2021-08-23 21:31:58 +0200 | <maerwald> | no |
2021-08-23 21:32:05 +0200 | <maerwald> | one of phadejs hidden projects |
2021-08-23 21:32:14 +0200 | <carter> | https://github.com/phadej/cabal-extras/tree/master/cabal-docspec this one? |
2021-08-23 21:32:21 +0200 | <maerwald> | ya |
2021-08-23 21:32:42 +0200 | <maerwald> | I can run it without a doctest target, without a Main, just over my codebase |
2021-08-23 21:33:02 +0200 | derelict | (~derelict@user/derelict) |
2021-08-23 21:33:14 +0200 | <maerwald> | it just needs the project to be built before, probably needs plan.json etc |
2021-08-23 21:33:42 +0200 | <maerwald> | but can change comments without recompiling and it will still pick them up |
2021-08-23 21:34:58 +0200 | bgamari | (~bgamari@2001:470:e438::1) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-08-23 21:35:18 +0200 | bgamari | (~bgamari@2001:470:e438::1) |
2021-08-23 21:35:25 +0200 | <carter> | oh thats nice |
2021-08-23 21:35:35 +0200 | <carter> | how do you script it in? |
2021-08-23 21:35:47 +0200 | neo | (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 240 seconds) |
2021-08-23 21:36:12 +0200 | <carter> | hrmm |
2021-08-23 21:36:15 +0200 | <maerwald> | carter: https://github.com/hasufell/shortbytestring/blob/219b6f0f48bb29ec20015a36db5ad97eab072e64/.github/โฆ |
2021-08-23 21:36:18 +0200 | <carter> | would be nice if it was cabal-ized |
2021-08-23 21:36:41 +0200 | <carter> | oh nice |
2021-08-23 21:37:16 +0200 | <maerwald> | carter: I whined about it here https://github.com/haskell/cabal/issues/2327 |
2021-08-23 21:43:16 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-08-23 21:44:14 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
2021-08-23 21:44:33 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-08-23 21:48:23 +0200 | venue | (~venue@user/venue) (Quit: was tired) |
2021-08-23 21:49:07 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-08-23 21:49:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 21:51:22 +0200 | mei | (~mei@user/mei) (Ping timeout: 258 seconds) |
2021-08-23 21:52:23 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-08-23 21:59:29 +0200 | <maerwald> | , |
2021-08-23 21:59:36 +0200 | <tomsmeding> | ! |
2021-08-23 22:03:08 +0200 | <maerwald> | `traverseFold f = foldl (\mb a -> (<>) <$> mb <*> f a) (pure mempty)` -- I don't remember why I wrote this function |
2021-08-23 22:03:11 +0200 | <maerwald> | and it's confusing |
2021-08-23 22:03:31 +0200 | <maerwald> | try `traverseFold (:[]) ["1","2","3","4","5"]` vs `traverseFold (:[","]) ["1","2","3","4","5"]` lol |
2021-08-23 22:04:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 22:04:09 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 22:04:09 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 22:05:31 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 252 seconds) |
2021-08-23 22:07:33 +0200 | juhp | (~juhp@128.106.188.220) |
2021-08-23 22:08:11 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-08-23 22:09:27 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-08-23 22:09:33 +0200 | ent- | ent |
2021-08-23 22:11:21 +0200 | <maerwald> | don't use list monad :p |
2021-08-23 22:11:41 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-08-23 22:15:41 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-23 22:16:46 +0200 | chisui | (~chisui@200116b868b0580051414fea9b4eac83.dip.versatel-1u1.de) |
2021-08-23 22:18:24 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2021-08-23 22:18:41 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
2021-08-23 22:18:53 +0200 | <fresheyeball> | can I set cpp-options in hie.yaml? |
2021-08-23 22:20:09 +0200 | jgeerds | (~jgeerds@55d4b311.access.ecotel.net) |
2021-08-23 22:21:27 +0200 | <maerwald> | fresheyeball: why? |
2021-08-23 22:21:39 +0200 | <fresheyeball> | well I set it in the cabal file |
2021-08-23 22:21:43 +0200 | <fresheyeball> | and everything compiles fine |
2021-08-23 22:21:56 +0200 | <fresheyeball> | but hls is acting like those options are not set for the target |
2021-08-23 22:22:10 +0200 | <maerwald> | cabal.project? |
2021-08-23 22:22:21 +0200 | <fresheyeball> | I don't have one of those |
2021-08-23 22:22:28 +0200 | <maerwald> | create one |
2021-08-23 22:22:44 +0200 | tommd | (~tommd@75-164-130-101.ptld.qwest.net) |
2021-08-23 22:23:32 +0200 | <fresheyeball> | ok done |
2021-08-23 22:23:39 +0200 | <fresheyeball> | I enumerate my three exes |
2021-08-23 22:23:42 +0200 | <fresheyeball> | and set tests: True |
2021-08-23 22:23:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-23 22:24:17 +0200 | <fresheyeball> | now hls just crashes |
2021-08-23 22:24:27 +0200 | <tommd> | I've been wanting to get into haskell.nix for a while now (for build time improvements on large projects) but quickly run into issues such as `error: attribute 'cabal-to-nix' missing, at ...`. How should I learn up on Nix? |
2021-08-23 22:24:48 +0200 | <tommd> | That is, nix + Haskell to be quite clear. Less learning nix and more applying to improve my Haskell experience. |
2021-08-23 22:24:58 +0200 | chisui | (~chisui@200116b868b0580051414fea9b4eac83.dip.versatel-1u1.de) (Quit: Client closed) |
2021-08-23 22:25:27 +0200 | <fresheyeball> | maerwald: actually what would it even be in my case? I just have 1 cabal file |
2021-08-23 22:25:45 +0200 | <maerwald> | fresheyeball: package foo\n\tghc-options: -optPFOO |
2021-08-23 22:25:48 +0200 | <maerwald> | or sth? |
2021-08-23 22:25:53 +0200 | <maerwald> | you also need `packages: ./` |
2021-08-23 22:26:44 +0200 | chisui | (~chisui@200116b868b05800c65627e740591fd3.dip.versatel-1u1.de) |
2021-08-23 22:26:45 +0200 | <fresheyeball> | ok so now cabal is not building it |
2021-08-23 22:26:53 +0200 | <fresheyeball> | now cabal is not seeing that I set this in the cabal file |
2021-08-23 22:26:57 +0200 | <fresheyeball> | it was before cabal.project |
2021-08-23 22:27:00 +0200 | <fresheyeball> | I am confused |
2021-08-23 22:27:04 +0200 | <maerwald> | too vague, links |
2021-08-23 22:29:14 +0200 | <geekosaur> | -optP-DFOO perhaps? although I thinkk ghc itself accepts -DFOO |
2021-08-23 22:29:59 +0200 | <maerwald> | yeah |
2021-08-23 22:30:16 +0200 | <maerwald> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/phases.html#ghc-flag--D%E2%9F%A8symbol%E2%9F%A9[=%E2%9F%A8value%E2%9F%A9] |
2021-08-23 22:31:32 +0200 | <fresheyeball> | ok so sorta a red hering |
2021-08-23 22:31:44 +0200 | <fresheyeball> | the cabal.project file actually has no effect on hls |
2021-08-23 22:31:57 +0200 | <fresheyeball> | I figured out what was wrong with cabal, I just didn't import something |
2021-08-23 22:32:16 +0200 | <fresheyeball> | but still hls is not picking up that I have cpp-options set in the cabal file |
2021-08-23 22:32:43 +0200 | <fresheyeball> | http://ix.io/3wLR |
2021-08-23 22:32:46 +0200 | <fresheyeball> | here is the cabal file |
2021-08-23 22:33:39 +0200 | <fresheyeball> | here is the hie.yml http://ix.io/3wLT |
2021-08-23 22:33:49 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 22:34:03 +0200 | <fresheyeball> | cabal.project http://ix.io/3wLS |
2021-08-23 22:35:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 22:35:25 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 22:35:25 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 22:37:17 +0200 | abrantesasf | (~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) |
2021-08-23 22:40:10 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-08-23 22:40:58 +0200 | immae | (~immae@2a01:4f8:141:53e7::) (Ping timeout: 240 seconds) |
2021-08-23 22:40:58 +0200 | JeHugawa | (~jehugawa@2a01:4f9:c010:4649::1) (Ping timeout: 240 seconds) |
2021-08-23 22:42:11 +0200 | JeHugawa | (~jehugawa@2a01:4f9:c010:4649::1) |
2021-08-23 22:42:23 +0200 | immae | (~immae@2a01:4f8:141:53e7::) |
2021-08-23 22:44:36 +0200 | <maerwald> | try to set it in cabal.project |
2021-08-23 22:46:33 +0200 | <fresheyeball> | maerwald: how? |
2021-08-23 22:46:40 +0200 | <fresheyeball> | https://cabal.readthedocs.io/en/latest/cabal-projectindex.html#cap-cabal.project%20fields |
2021-08-23 22:46:45 +0200 | <fresheyeball> | I don't see it as an option |
2021-08-23 22:47:04 +0200 | <maerwald> | fresheyeball: we described it earlier |
2021-08-23 22:47:28 +0200 | <maerwald> | https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=ghc-options#package-configurationโฆ |
2021-08-23 22:47:46 +0200 | hseg | (~gesh@IGLD-84-228-238-79.inter.net.il) |
2021-08-23 22:49:23 +0200 | <hseg> | hi. have a type (of multisets) that can be given a Num instance, except that (*) requirs some constraints on tyvars. which forces me to constrain the entire instance. which locks me out of using linear operations on the type at types failing the constraint. advice? |
2021-08-23 22:49:57 +0200 | <hseg> | (in particular, need (*) :: Monoid a => MSet a -> MSet a -> MSet a, but would like (+) :: MSet a -> MSet a -> MSet a) |
2021-08-23 22:50:20 +0200 | <glguy> | You can use a different class/operator for the unconstrained + operation |
2021-08-23 22:50:46 +0200 | <fresheyeball> | yay! |
2021-08-23 22:50:48 +0200 | <fresheyeball> | that worked |
2021-08-23 22:51:17 +0200 | <hseg> | yeah, but that's ugly and duplicates names |
2021-08-23 22:51:29 +0200 | <fresheyeball> | http://ix.io/3wLY |
2021-08-23 22:51:31 +0200 | <fresheyeball> | this did the trick |
2021-08-23 22:51:36 +0200 | <fresheyeball> | now hls is working for test suites |
2021-08-23 22:51:43 +0200 | <fresheyeball> | maerwald:++ |
2021-08-23 22:52:19 +0200 | <glguy> | hseg: perhaps, but you can't have different constraints for the different methods of Num, so you'll need a solution that isn't Num for that |
2021-08-23 22:52:29 +0200 | <hseg> | shame |
2021-08-23 22:52:56 +0200 | <hseg> | current solution is to just fmap (fromJust . getFirst) . ... . fmap (First . Just) |
2021-08-23 22:53:41 +0200 | <hseg> | which is annoying, and since my underlying implementation uses Data.Map, cannot be turned into coercions |
2021-08-23 22:54:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-08-23 22:56:16 +0200 | <hseg> | not to mention that this doesn't generalize well -- if I need to tag all the parameters to a function, lift a retagging, etc I need a new combinator |
2021-08-23 22:56:24 +0200 | dsrt^ | (~dsrt@12.16.129.111) |
2021-08-23 22:56:38 +0200 | <hseg> | unlike coerce, which I can fit to the usecase with judicious tyapps |
2021-08-23 22:58:47 +0200 | <dminuoso> | hseg: By the way, did you make any progress with your tyfam errors last night? |
2021-08-23 22:59:56 +0200 | <hseg> | y, reported, mpickering suggested it might be due to ANN interacting with binding groups https://gitlab.haskell.org/ghc/ghc/-/issues/20265 |
2021-08-23 23:02:17 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-08-23 23:02:17 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-08-23 23:02:17 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-08-23 23:03:10 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-4-39.prtc.net) |
2021-08-23 23:03:13 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-08-23 23:03:29 +0200 | <hseg> | hm. could live with the retagging if I could write sth like retag @(MSet :.: MSet) @MSet :: (forall f. Monoid (f l) => MSet (MSet (f k)) -> MSet (f l)) -> MSet (MSet k) -> MSet l |
2021-08-23 23:05:05 +0200 | d0ku | (~d0ku@178.43.19.40.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds) |
2021-08-23 23:05:27 +0200 | <hseg> | ... iow, want retag @f1 @f2 @f3 ... :: (forall f. Monoid (f r) => f1 (f x1) -> f2 (f x2) -> ... -> fn (f r)) -> f1 x1 -> f2 x2 -> ... fn r |
2021-08-23 23:05:41 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) |
2021-08-23 23:06:08 +0200 | <hseg> | ... which might be doable with a combination of the van laarhoven trick, the printf trick, and a fundep |
2021-08-23 23:06:17 +0200 | <dminuoso> | Interesting |
2021-08-23 23:06:29 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) |
2021-08-23 23:09:11 +0200 | retro_ | (~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds) |
2021-08-23 23:09:54 +0200 | <hseg> | ... actually printf=van laarhoven here |
2021-08-23 23:11:14 +0200 | Hobbyboy | (Hobbyboy@hobbyboy.co.uk) (Quit: The BNC has broken!) |
2021-08-23 23:11:26 +0200 | Hobbyboy | (Hobbyboy@hobbyboy.co.uk) |
2021-08-23 23:12:10 +0200 | megaTherion | (~therion@unix.io) (Ping timeout: 240 seconds) |
2021-08-23 23:12:34 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 240 seconds) |
2021-08-23 23:12:34 +0200 | kawzeg | (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (Ping timeout: 240 seconds) |
2021-08-23 23:12:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection) |
2021-08-23 23:12:58 +0200 | jocke-l | (jocke-l@a.x0.is) (Ping timeout: 240 seconds) |
2021-08-23 23:13:45 +0200 | farn | (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) |
2021-08-23 23:13:49 +0200 | kawzeg | (kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) |
2021-08-23 23:15:03 +0200 | jocke-l | (jocke-l@a.x0.is) |
2021-08-23 23:18:55 +0200 | batch12 | (~user@192.152.118.97) |
2021-08-23 23:20:17 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-08-23 23:23:26 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) |
2021-08-23 23:23:42 +0200 | Guest86 | (~Guest86@68.233.176.29) |
2021-08-23 23:23:58 +0200 | <Guest86> | is this the correct place to get support for haskell vscode extension? |
2021-08-23 23:25:04 +0200 | <batch12> | How do I put a constraint on a type-level list? |
2021-08-23 23:25:04 +0200 | <batch12> | I have: class Thing a |
2021-08-23 23:25:04 +0200 | <batch12> | and a GADT: data Carrier (is :: [i]) |
2021-08-23 23:25:04 +0200 | <batch12> | I know I can say: data Carrier (is :: [Nat]) |
2021-08-23 23:25:07 +0200 | <batch12> | But I want to say that any i that is allowed to be in that type-level list, must have a Thing instance. |
2021-08-23 23:25:11 +0200 | <batch12> | Something like: data Carrier (is :: [forall i => Thing i]) |
2021-08-23 23:25:14 +0200 | <batch12> | Any idea about how to do this? |
2021-08-23 23:26:19 +0200 | <dminuoso> | batch12: newtype it |
2021-08-23 23:26:34 +0200 | jtomas_ | (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
2021-08-23 23:26:36 +0200 | <dminuoso> | Or use a GADT |
2021-08-23 23:27:06 +0200 | <dminuoso> | % data IsShow where Show a => a -> IsShow |
2021-08-23 23:27:06 +0200 | <yahb> | dminuoso: ; <interactive>:15:24: error: parse error on input `a' |
2021-08-23 23:27:13 +0200 | <dminuoso> | % data IsShow where MkShow :: Show a => a -> IsShow |
2021-08-23 23:27:14 +0200 | <yahb> | dminuoso: |
2021-08-23 23:27:47 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 240 seconds) |
2021-08-23 23:28:53 +0200 | <batch12> | So I can do that, and that's what I would do at the value level. But why do I need to do that here? It's already a list of types holding any type of kind * (so a heterogeneous list) |
2021-08-23 23:29:14 +0200 | megaTherion | (~therion@coruscant.unix.io) |
2021-08-23 23:29:44 +0200 | <batch12> | It feels like an existential type is solving an entirely different problem |
2021-08-23 23:30:05 +0200 | ubert | (~Thunderbi@178.165.201.23.wireless.dyn.drei.com) (Ping timeout: 250 seconds) |
2021-08-23 23:31:28 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2) |
2021-08-23 23:32:39 +0200 | <dminuoso> | mmm |
2021-08-23 23:33:02 +0200 | <dminuoso> | % type T = '[Show i => i] |
2021-08-23 23:33:02 +0200 | <yahb> | dminuoso: ; <interactive>:17:17: error: Not in scope: type variable `i'; <interactive>:17:22: error: Not in scope: type variable `i' |
2021-08-23 23:33:06 +0200 | <dminuoso> | % type T = '[forall i. Show i => i] |
2021-08-23 23:33:07 +0200 | <yahb> | dminuoso: ; <interactive>:18:1: error:; * Illegal polymorphic type: forall i. Show i => i; GHC doesn't yet support impredicative polymorphism; * In the type synonym declaration for `T' |
2021-08-23 23:33:16 +0200 | <dminuoso> | batch12: ^- here. impredicativity is the issue |
2021-08-23 23:33:41 +0200 | <dminuoso> | being in a type list doesnt help, as under the hood its all TypeInType |
2021-08-23 23:33:54 +0200 | <hseg> | btw, ghci has stopped listing loaded modules recently. anyone know what's up with that? |
2021-08-23 23:34:43 +0200 | <dminuoso> | hseg: http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/9.0.1-notes.html#ghci |
2021-08-23 23:34:56 +0200 | <sm> | a long awaited ux fix |
2021-08-23 23:35:29 +0200 | <tomsmeding> | hseg: :set prompt "%s> " |
2021-08-23 23:35:45 +0200 | <dminuoso> | batch12: With quick look (9.2?), you should be able to use that in the future. |
2021-08-23 23:35:52 +0200 | <dminuoso> | batch12: and mind you, an existential is just an encoding of the same fact. |
2021-08-23 23:35:54 +0200 | <hseg> | ok, fair, has annoyed me in the past |
2021-08-23 23:36:11 +0200 | <hseg> | but is there a way to list all loaded modules, then? |
2021-08-23 23:37:17 +0200 | <dminuoso> | % :show imports -- hseg |
2021-08-23 23:37:18 +0200 | <yahb> | dminuoso: syntax: :show [args | prog | editor | stop | imports | modules | bindings | linker | breaks | context | packages | paths | language | targets] |
2021-08-23 23:37:20 +0200 | <dminuoso> | % :show imports |
2021-08-23 23:37:21 +0200 | <yahb> | dminuoso: import Control.Applicative; import Control.Arrow; import Control.Concurrent; import Control.Concurrent.Chan; import Control.Concurrent.MVar; import Control.Concurrent.STM; import Control.Concurrent.STM.TChan; import Control.Concurrent.STM.TVar; import Control.Comonad.Store; import Control.Exception; import Control.Exception.Lens; import Control.Monad; import Control.Monad.Cont; import Control.Monad.Except; impo |
2021-08-23 23:37:32 +0200 | <hseg> | awesome, thanks |
2021-08-23 23:37:44 +0200 | <dminuoso> | hseg: Try using the GHC manual more! It's superb :) |
2021-08-23 23:37:57 +0200 | <dminuoso> | One of the few manuals that are really well maintained |
2021-08-23 23:38:03 +0200 | <batch12> | @dminuoso Thanks. Yeah, the variant with the constraint there leads to impredicative types. But this problem doesn't have anything to do with impredicativity. Given that you can write '[Nat] there, which is a kind of constraint already, I don't see why having a type class constraint would be any different? |
2021-08-23 23:38:03 +0200 | <lambdabot> | Unknown command, try @list |
2021-08-23 23:38:12 +0200 | <hseg> | usually do! didn't find this one though |
2021-08-23 23:38:28 +0200 | <dminuoso> | batch12: The problem has nothing to do with the constraint, it has to do with the quantification. |
2021-08-23 23:38:37 +0200 | <dminuoso> | Consider: |
2021-08-23 23:38:43 +0200 | <dminuoso> | [forall a. a] |
2021-08-23 23:38:43 +0200 | <batch12> | dminuoso: but the quantification always exists even with [Nat] |
2021-08-23 23:38:45 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-4-39.prtc.net) (Quit: Client closed) |
2021-08-23 23:38:53 +0200 | <dminuoso> | No, Nat is not quantified. |
2021-08-23 23:39:18 +0200 | <batch12> | data Carrier (is :: [Nat]); is allowing for a type list that contains any type of kind Nat |
2021-08-23 23:39:27 +0200 | pbrisbin | (~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds) |
2021-08-23 23:39:37 +0200 | <dminuoso> | batch12: The key thing here is that given `type T = [forall a. a]`, with impredicativity you are allowed to instantiate `a` at T. |
2021-08-23 23:39:59 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:20c9:56f0:4ff9:be7b) |
2021-08-23 23:40:08 +0200 | elf_fortrez | (~elf_fortr@adsl-72-50-6-134.prtc.net) |
2021-08-23 23:40:13 +0200 | <dminuoso> | batch12: but with `data All where All :: a -> All`, [All] no longer has that self referential property |
2021-08-23 23:40:41 +0200 | <batch12> | That's at the type level, but this is a kind annotation instead |
2021-08-23 23:40:55 +0200 | <dminuoso> | With TypeInType there's no difference |
2021-08-23 23:41:03 +0200 | <dminuoso> | We no longer have kinds |
2021-08-23 23:41:34 +0200 | <dminuoso> | 23:39:18 batch12 | data Carrier (is :: [Nat]); is allowing for a type list that contains any type of kind Nat |
2021-08-23 23:41:41 +0200 | <dminuoso> | Yes, there is still no quantification on Nat. |
2021-08-23 23:41:52 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:20c9:56f0:4ff9:be7b) (Client Quit) |
2021-08-23 23:42:56 +0200 | <dminuoso> | batch12: TypeInType is on the brink of deprecation I think, because under the hood its been TypeInType for a few years even! |
2021-08-23 23:43:05 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:5b4:1bf2:3392:8995) (Ping timeout: 250 seconds) |
2021-08-23 23:43:16 +0200 | <batch12> | Right, it's deprecated for PolyKinds already |
2021-08-23 23:43:39 +0200 | <batch12> | But I don't see why quantification is needed here at all. There should be some other approach that avoids this issue |
2021-08-23 23:43:45 +0200 | <dminuoso> | you want a constraint |
2021-08-23 23:43:57 +0200 | <dminuoso> | Which type variable do you want a constraint on? |
2021-08-23 23:44:13 +0200 | <dminuoso> | Or do you want a nullary constraint like |
2021-08-23 23:44:17 +0200 | <elf_fortrez> | Turkey? |
2021-08-23 23:45:04 +0200 | <batch12> | dminuoso: The answer is probably to write a type family that takes the list and provides a Constraint which enforces that they're all members of this type class |
2021-08-23 23:45:15 +0200 | <dminuoso> | batch12: Ohh hold on I think I misunderstood what you're trying to do. |
2021-08-23 23:45:38 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-08-23 23:45:56 +0200 | <dminuoso> | batch12: Wouldn't that be a lifted GADT? |
2021-08-23 23:46:07 +0200 | <dminuoso> | Not sure whether that is even a thing |
2021-08-23 23:46:26 +0200 | <dminuoso> | % :set -XDataKinds |
2021-08-23 23:46:26 +0200 | <yahb> | dminuoso: |
2021-08-23 23:46:29 +0200 | <dminuoso> | % :set -XGADTs |
2021-08-23 23:46:29 +0200 | <yahb> | dminuoso: |
2021-08-23 23:46:45 +0200 | <elf_fortrez> | kind is child in germa |
2021-08-23 23:46:56 +0200 | <elf_fortrez> | German |
2021-08-23 23:46:57 +0200 | <dminuoso> | % data F where MkF :: Num a => a -> F |
2021-08-23 23:46:57 +0200 | <yahb> | dminuoso: |
2021-08-23 23:47:07 +0200 | <elf_fortrez> | Therefore Kinder |
2021-08-23 23:47:11 +0200 | <dminuoso> | % :k F |
2021-08-23 23:47:11 +0200 | <yahb> | dminuoso: * |
2021-08-23 23:47:17 +0200 | <dminuoso> | % :k MkF |
2021-08-23 23:47:17 +0200 | <yahb> | dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkF' cannot be used here (it has an unpromotable context `Num a'); * In the type `MkF' |
2021-08-23 23:49:22 +0200 | <monochrom> | I feel left out that all #haskell questions are now type-level programming questions. |
2021-08-23 23:49:45 +0200 | <dminuoso> | % data G = forall a. Num a => MkG |
2021-08-23 23:49:45 +0200 | <yahb> | dminuoso: ; <interactive>:14:10: error:; * Could not deduce (Num a0); from the context: Num a; bound by the type of the constructor `MkG':; forall a. Num a => G; at <interactive>:14:10-31; The type variable `a0' is ambiguous; * In the ambiguity check for `MkG'; To defer the ambiguity check to use sites, enable AllowAmbiguousTypes; In the definition of |
2021-08-23 23:49:50 +0200 | <monochrom> | (To clarify, I haven't studied or practiced that.) |
2021-08-23 23:49:56 +0200 | <dminuoso> | Uh what? |
2021-08-23 23:50:01 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-08-23 23:50:03 +0200 | <dminuoso> | % :q |
2021-08-23 23:50:03 +0200 | <yahb> | dminuoso: |
2021-08-23 23:50:05 +0200 | <dminuoso> | % data G = forall a. Num a => MkG |
2021-08-23 23:50:06 +0200 | <yahb> | dminuoso: ; <interactive>:1:10: error:; * Could not deduce (Num a0); from the context: Num a; bound by the type of the constructor `MkG':; forall a. Num a => G; at <interactive>:1:10-31; The type variable `a0' is ambiguous; * In the ambiguity check for `MkG'; To defer the ambiguity check to use sites, enable AllowAmbiguousTypes; In the definition of d |
2021-08-23 23:50:34 +0200 | <dminuoso> | Oh |
2021-08-23 23:50:36 +0200 | <dminuoso> | % data G = forall a. Num a => MkG a |
2021-08-23 23:50:37 +0200 | <yahb> | dminuoso: |
2021-08-23 23:50:40 +0200 | <dminuoso> | % :k MkG |
2021-08-23 23:50:40 +0200 | <yahb> | dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkG' cannot be used here (it has an unpromotable context `Num a'); * In the type `MkG' |
2021-08-23 23:50:54 +0200 | <dminuoso> | % class Foo (i :: k) |
2021-08-23 23:50:54 +0200 | <yahb> | dminuoso: |
2021-08-23 23:50:58 +0200 | <dminuoso> | % data G = forall a. Foo a => MkG a |
2021-08-23 23:50:59 +0200 | <yahb> | dminuoso: |
2021-08-23 23:51:01 +0200 | <dminuoso> | % :k MkG |
2021-08-23 23:51:02 +0200 | <yahb> | dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkG' cannot be used here (it has an unpromotable context `Foo a'); * In the type `MkG' |
2021-08-23 23:51:06 +0200 | <monochrom> | Or I should be happy that the reason there are no more value-level programming questions is because everyone is already an expert in Haskell value-level programming. :) |
2021-08-23 23:51:20 +0200 | <dminuoso> | batch12: No idea. But you'd need this. |
2021-08-23 23:51:37 +0200 | <dminuoso> | batch12: Or, you can just wait for quick look in GHC 9.2, flip on impredicativity and enjoy the rest. |
2021-08-23 23:51:52 +0200 | <hseg> | monochrom: what kind of questions are you missing? |
2021-08-23 23:52:06 +0200 | <monochrom> | Value-level programming questions. |
2021-08-23 23:52:32 +0200 | <monochrom> | "How do I traverse a list at the value level only?" |
2021-08-23 23:52:56 +0200 | <dminuoso> | https://aphyr.com/posts/342-typing-the-technical-interview |
2021-08-23 23:53:04 +0200 | <dminuoso> | monochrom: You knew this was coming, didn't you? |
2021-08-23 23:53:05 +0200 | <hseg> | oh that's a classic |
2021-08-23 23:54:52 +0200 | <monochrom> | I enjoyed that one as a joke. Didn't think of it as prophecy though. Well, I guess I didn't have foresight. |
2021-08-23 23:55:48 +0200 | <monochrom> | But yeah some of that could be improved by type families today. |
2021-08-23 23:56:41 +0200 | <monochrom> | On second thought, I didn't study type-level programming, I don't actually know whether type families would help that one. |
2021-08-23 23:58:23 +0200 | <monochrom> | And then you can also criticize me for turning down term-level questions when they actually come up, such as yesterday, with "I can't believe that your prof's course material didn't show examples". |