2023-02-17 00:01:33 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) (Ping timeout: 255 seconds) |
2023-02-17 00:04:06 +0100 | kupper | (~kupper@2a02:ab88:7609:4700:31a8:9d0c:ebbe:24d9) (Quit: Client closed) |
2023-02-17 00:06:05 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-02-17 00:10:09 +0100 | mei | (~mei@user/mei) (Remote host closed the connection) |
2023-02-17 00:12:30 +0100 | mei | (~mei@user/mei) |
2023-02-17 00:15:54 +0100 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-02-17 00:16:48 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 248 seconds) |
2023-02-17 00:20:14 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 00:24:57 +0100 | freeside | (~mengwong@103.252.202.170) (Ping timeout: 255 seconds) |
2023-02-17 00:26:59 +0100 | caryhartline | (~caryhartl@cpe-76-184-187-103.tx.res.rr.com) |
2023-02-17 00:31:58 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a) |
2023-02-17 00:32:15 +0100 | kee | (~~kee@user/wizzwizz4) (Read error: Connection reset by peer) |
2023-02-17 00:32:23 +0100 | <azure_vermilion> | you can make your own Data.Map.insertWith with the type I gave in a few lines actually |
2023-02-17 00:32:56 +0100 | kee | (~~kee@user/wizzwizz4) |
2023-02-17 00:47:05 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-02-17 00:51:34 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) |
2023-02-17 00:55:59 +0100 | the_proffesor | (~theproffe@2601:282:8880:20:cbd6:9442:3ec7:7047) |
2023-02-17 00:55:59 +0100 | the_proffesor | (~theproffe@2601:282:8880:20:cbd6:9442:3ec7:7047) (Changing host) |
2023-02-17 00:55:59 +0100 | the_proffesor | (~theproffe@user/theproffesor) |
2023-02-17 00:56:00 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:1ba3:5839:e59a:9486) (Ping timeout: 260 seconds) |
2023-02-17 01:00:05 +0100 | theproffesor | (~theproffe@user/theproffesor) (Ping timeout: 260 seconds) |
2023-02-17 01:00:58 +0100 | mncheck | (~mncheck@193.224.205.254) (Ping timeout: 246 seconds) |
2023-02-17 01:01:43 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) |
2023-02-17 01:16:42 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 01:17:03 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 248 seconds) |
2023-02-17 01:21:12 +0100 | freeside | (~mengwong@103.252.202.170) (Ping timeout: 255 seconds) |
2023-02-17 01:21:25 +0100 | mauke_ | (~mauke@user/mauke) |
2023-02-17 01:22:33 +0100 | mauke | (~mauke@user/mauke) (Ping timeout: 255 seconds) |
2023-02-17 01:22:33 +0100 | mauke_ | mauke |
2023-02-17 01:24:56 +0100 | stackdroid18 | (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!) |
2023-02-17 01:46:23 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-02-17 01:49:15 +0100 | tomboy64 | (~tomboy64@user/tomboy64) |
2023-02-17 01:52:09 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-02-17 01:52:09 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-02-17 01:52:09 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-02-17 02:00:14 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Quit: Off to see the wizard.) |
2023-02-17 02:01:33 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a) (Remote host closed the connection) |
2023-02-17 02:01:52 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a) |
2023-02-17 02:02:08 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-02-17 02:04:10 +0100 | califax | (~califax@user/califx) |
2023-02-17 02:04:49 +0100 | gpncarl | (~gpncarl@210.12.195.6) (Read error: Connection reset by peer) |
2023-02-17 02:05:12 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 02:05:14 +0100 | gpncarl | (~gpncarl@210.12.195.6) |
2023-02-17 02:07:28 +0100 | caryhartline | (~caryhartl@cpe-76-184-187-103.tx.res.rr.com) (Quit: caryhartline) |
2023-02-17 02:09:15 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!) |
2023-02-17 02:10:56 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-02-17 02:13:04 +0100 | freeside | (~mengwong@103.252.202.170) (Ping timeout: 246 seconds) |
2023-02-17 02:13:51 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 02:14:53 +0100 | tomboy64 | (~tomboy64@user/tomboy64) |
2023-02-17 02:17:04 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-02-17 02:18:21 +0100 | freeside | (~mengwong@103.252.202.170) (Ping timeout: 255 seconds) |
2023-02-17 02:18:49 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
2023-02-17 02:18:50 +0100 | tomboy65 | (~tomboy64@user/tomboy64) |
2023-02-17 02:24:52 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-02-17 02:37:35 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9a0c:738d:f5ce:fcbe) (Ping timeout: 252 seconds) |
2023-02-17 02:37:56 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-17 02:43:06 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-02-17 02:44:11 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:fe23:2879:3575:ce6a) (Ping timeout: 252 seconds) |
2023-02-17 02:45:57 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-17 02:56:13 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8) |
2023-02-17 02:57:14 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-02-17 03:04:38 +0100 | king_gs1 | (~Thunderbi@2806:103e:29:1779:adfe:a3a2:67c6:583e) |
2023-02-17 03:04:46 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Read error: Connection reset by peer) |
2023-02-17 03:04:46 +0100 | king_gs1 | king_gs |
2023-02-17 03:08:45 +0100 | Sinbad | (~Sinbad@user/sinbad) (WeeChat 3.8) |
2023-02-17 03:12:07 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 03:16:46 +0100 | freeside | (~mengwong@103.252.202.170) (Ping timeout: 246 seconds) |
2023-02-17 03:22:42 +0100 | rettahcay | (~kaushikv@c-24-20-37-193.hsd1.or.comcast.net) |
2023-02-17 03:23:13 +0100 | oldfashionedcow | (~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.8) |
2023-02-17 03:23:36 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-02-17 03:24:22 +0100 | bilegeek | (~bilegeek@2600:1008:b00e:a774:6a7c:cc22:f7ac:e202) |
2023-02-17 03:25:10 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2023-02-17 03:27:52 +0100 | ddellacosta | (~ddellacos@146.70.171.157) |
2023-02-17 03:28:32 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2023-02-17 03:31:58 +0100 | lackita | (~user@73.114.250.252) |
2023-02-17 03:35:43 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-02-17 03:39:10 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
2023-02-17 03:40:48 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) |
2023-02-17 03:45:10 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds) |
2023-02-17 03:48:46 +0100 | cheater_ | (~Username@user/cheater) |
2023-02-17 03:50:22 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) (Ping timeout: 246 seconds) |
2023-02-17 03:51:30 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2023-02-17 03:51:40 +0100 | cheater_ | cheater |
2023-02-17 03:56:19 +0100 | khumba | (~khumba@user/khumba) |
2023-02-17 03:59:33 +0100 | lackita` | (~user@73.114.250.252) |
2023-02-17 04:01:20 +0100 | lackita | (~user@73.114.250.252) (Ping timeout: 248 seconds) |
2023-02-17 04:01:48 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
2023-02-17 04:04:51 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-02-17 04:21:09 +0100 | lackita`` | (~user@73.114.250.252) |
2023-02-17 04:23:33 +0100 | lackita` | (~user@73.114.250.252) (Ping timeout: 268 seconds) |
2023-02-17 04:30:05 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-02-17 04:35:02 +0100 | <sm> | how do you get a stack trace for a bad head or printf call again... ? build with profiling and -rtsopts, then +RTS -Xc or something ? |
2023-02-17 04:35:11 +0100 | burnsidesLlama | (~burnsides@119247164140.ctinets.com) |
2023-02-17 04:39:26 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-17 04:39:39 +0100 | opticblast | (~Thunderbi@172.58.82.191) (Ping timeout: 255 seconds) |
2023-02-17 04:42:30 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat) |
2023-02-17 04:42:49 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 04:42:59 +0100 | lackita`` | (~user@73.114.250.252) (Ping timeout: 252 seconds) |
2023-02-17 04:43:53 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:4e8c::) |
2023-02-17 04:44:09 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-02-17 04:46:50 +0100 | opticblast | (~Thunderbi@172.58.82.191) |
2023-02-17 04:47:45 +0100 | freeside | (~mengwong@103.252.202.170) (Ping timeout: 255 seconds) |
2023-02-17 04:49:27 +0100 | <sm> | no |
2023-02-17 04:51:16 +0100 | td_ | (~td@i5387092D.versanet.de) (Ping timeout: 246 seconds) |
2023-02-17 04:51:16 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:adfe:a3a2:67c6:583e) (Ping timeout: 252 seconds) |
2023-02-17 04:52:01 +0100 | <sm> | boom! stack exec --profile -- hledger test +RTS -xc -RTS -- -p '/one space/' |
2023-02-17 04:52:12 +0100 | razetime | (~Thunderbi@117.193.4.84) |
2023-02-17 04:53:11 +0100 | <sm> | but it shows nothing below Test.Tasty.CmdLine.defaultMainWithIngredients. Disappointing, haskell.... |
2023-02-17 04:53:17 +0100 | td_ | (~td@i53870917.versanet.de) |
2023-02-17 04:54:35 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-02-17 04:55:40 +0100 | <sm> | oops, my mistake. It has printed about 50 stack traces. lol |
2023-02-17 04:56:06 +0100 | <sm> | man it's a good thing bugs are rare |
2023-02-17 04:57:02 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-02-17 04:57:02 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-17 04:57:02 +0100 | finn_elija | FinnElija |
2023-02-17 04:57:49 +0100 | <albet70> | what's the relationship between foldr and foldr1? |
2023-02-17 04:58:41 +0100 | <albet70> | foldr isn't natural, reduce is natural |
2023-02-17 04:59:01 +0100 | <albet70> | foldl1 I mean |
2023-02-17 05:03:32 +0100 | bilegeek | (~bilegeek@2600:1008:b00e:a774:6a7c:cc22:f7ac:e202) (Quit: Leaving) |
2023-02-17 05:16:03 +0100 | <jackdk> | foldr1 is partial on standard lists |
2023-02-17 05:16:28 +0100 | <[Leary]> | azure_vermilion: The signature would need to be `(a -> b -> b) -> b -> [(k, a)] -> Map k b`. However, we don't need to consider the case of "folding down zero duplicates", so it's natural to "do `foldr1` rather than `foldr`". If this were for total-map instead, the `foldr` version would make sense and the supplied `b` would become the fallback value of the Map. |
2023-02-17 05:16:40 +0100 | <[Leary]> | Oh, I didn't notice I was scrolled. |
2023-02-17 05:17:15 +0100 | burnsidesLlama | (~burnsides@119247164140.ctinets.com) () |
2023-02-17 05:18:57 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-17 05:19:00 +0100 | ddellacosta | (~ddellacos@146.70.171.157) (Quit: WeeChat 3.8) |
2023-02-17 05:19:55 +0100 | freeside | (~mengwong@103.252.202.170) |
2023-02-17 05:26:35 +0100 | mbuf | (~Shakthi@49.205.81.25) |
2023-02-17 05:26:36 +0100 | Everything | (~Everythin@46.185.124.65) (Quit: leaving) |
2023-02-17 05:50:45 +0100 | codaraxis | (~codaraxis@user/codaraxis) (Ping timeout: 255 seconds) |
2023-02-17 05:54:36 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-17 05:59:45 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2023-02-17 06:05:16 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:8a0c:7c12:4cf9:ecf7) |
2023-02-17 06:07:50 +0100 | EvanR | (~EvanR@user/evanr) (Remote host closed the connection) |
2023-02-17 06:08:11 +0100 | EvanR | (~EvanR@user/evanr) |
2023-02-17 06:12:28 +0100 | thegeekinside | (~thegeekin@189.180.66.126) (Ping timeout: 246 seconds) |
2023-02-17 06:16:50 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2023-02-17 06:21:43 +0100 | dsrt^ | (~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) |
2023-02-17 06:25:08 +0100 | codaraxis | (~codaraxis@user/codaraxis) |
2023-02-17 06:36:32 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:8a0c:7c12:4cf9:ecf7) (Ping timeout: 255 seconds) |
2023-02-17 06:37:03 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
2023-02-17 06:53:38 +0100 | ormaaj | (~ormaaj@user/ormaaj) (Quit: Reconnecting) |
2023-02-17 06:54:02 +0100 | ormaaj | (~ormaaj@user/ormaaj) |
2023-02-17 07:04:06 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds) |
2023-02-17 07:10:58 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 252 seconds) |
2023-02-17 07:11:02 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-02-17 07:12:22 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-02-17 07:18:02 +0100 | rburkholder | (~blurb@96.45.2.121) (Remote host closed the connection) |
2023-02-17 07:21:57 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-02-17 07:28:04 +0100 | tomboy65 | (~tomboy64@user/tomboy64) (Ping timeout: 246 seconds) |
2023-02-17 07:28:05 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-02-17 07:32:45 +0100 | jespada | (~jespada@77.98.179.16) (Ping timeout: 252 seconds) |
2023-02-17 07:34:27 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-02-17 07:34:40 +0100 | Vajb | (~Vajb@2001:999:404:9516:d621:6cbe:c71e:5686) (Ping timeout: 248 seconds) |
2023-02-17 07:35:31 +0100 | Vajb | (~Vajb@85-76-71-140-nat.elisa-mobile.fi) |
2023-02-17 07:39:55 +0100 | king_gs | (~Thunderbi@187.201.41.239) |
2023-02-17 07:41:42 +0100 | tomboy65 | (~tomboy64@user/tomboy64) |
2023-02-17 07:41:42 +0100 | Vajb | (~Vajb@85-76-71-140-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
2023-02-17 07:42:14 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
2023-02-17 07:46:18 +0100 | mbuf | (~Shakthi@49.205.81.25) (Quit: Leaving) |
2023-02-17 07:48:09 +0100 | trev_ | (~trev@109-252-35-99.nat.spd-mgts.ru) |
2023-02-17 07:49:48 +0100 | Guest47 | (~Guest47@180.150.112.145) |
2023-02-17 07:51:28 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
2023-02-17 07:52:44 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-02-17 07:53:46 +0100 | Vajb | (~Vajb@2001:999:502:6a4f:9704:5f5a:6e8e:4cd2) |
2023-02-17 07:54:04 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-02-17 07:55:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-17 07:59:27 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Read error: Connection reset by peer) |
2023-02-17 07:59:43 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:51d4:7b92:8f3c:afa1) |
2023-02-17 08:02:07 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds) |
2023-02-17 08:03:02 +0100 | michalz | (~michalz@185.246.207.203) |
2023-02-17 08:06:13 +0100 | Vajb | (~Vajb@2001:999:502:6a4f:9704:5f5a:6e8e:4cd2) (Ping timeout: 246 seconds) |
2023-02-17 08:06:21 +0100 | Vajb | (~Vajb@2001:999:484:9db9:7ff5:c370:5511:7e1c) |
2023-02-17 08:06:33 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-02-17 08:07:52 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2023-02-17 08:10:30 +0100 | sefidel | (~sefidel@user/sefidel) (Remote host closed the connection) |
2023-02-17 08:12:32 +0100 | sefidel | (~sefidel@user/sefidel) |
2023-02-17 08:13:14 +0100 | tcard_ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2023-02-17 08:15:03 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-02-17 08:21:11 +0100 | phma_ | (~phma@2001:5b0:211c:dd68:d177:f289:9796:1bf1) (Read error: Connection reset by peer) |
2023-02-17 08:22:24 +0100 | opticblast | (~Thunderbi@172.58.82.191) (Ping timeout: 255 seconds) |
2023-02-17 08:23:47 +0100 | phma_ | (~phma@host-67-44-208-65.hnremote.net) |
2023-02-17 08:25:27 +0100 | Lycurgus | (~juan@user/Lycurgus) |
2023-02-17 08:25:48 +0100 | kenran | (~user@user/kenran) |
2023-02-17 08:33:23 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-02-17 08:38:28 +0100 | akegalj | (~akegalj@78.3.33.72) |
2023-02-17 08:40:45 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) |
2023-02-17 08:43:13 +0100 | mncheckm | (~mncheck@193.224.205.254) |
2023-02-17 08:44:08 +0100 | andrewboltachev | (~andrey@178.141.125.176) |
2023-02-17 08:46:47 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2023-02-17 08:59:30 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-02-17 09:01:29 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::dfd9) |
2023-02-17 09:02:40 +0100 | razetime | (~Thunderbi@117.193.4.84) (Ping timeout: 248 seconds) |
2023-02-17 09:03:16 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-02-17 09:04:15 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds) |
2023-02-17 09:05:47 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
2023-02-17 09:09:11 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-02-17 09:12:40 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-02-17 09:18:35 +0100 | rburkholder | (~blurb@96.45.2.121) |
2023-02-17 09:18:55 +0100 | razetime | (~Thunderbi@117.193.4.84) |
2023-02-17 09:21:23 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::dfd9) (Quit: Where is it) |
2023-02-17 09:22:23 +0100 | czy | (~user@50.30.140.22) (Ping timeout: 252 seconds) |
2023-02-17 09:24:19 +0100 | codaraxis__ | (~codaraxis@user/codaraxis) |
2023-02-17 09:24:29 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2023-02-17 09:25:19 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-02-17 09:26:51 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 248 seconds) |
2023-02-17 09:27:26 +0100 | tomsmeding | (~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-02-17 09:28:07 +0100 | tomsmeding | (~tomsmedin@static.21.109.88.23.clients.your-server.de) |
2023-02-17 09:28:16 +0100 | codaraxis | (~codaraxis@user/codaraxis) (Ping timeout: 248 seconds) |
2023-02-17 09:30:03 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::9fd1) |
2023-02-17 09:30:24 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::9fd1) (Remote host closed the connection) |
2023-02-17 09:32:21 +0100 | ircbrowse_tom | (~ircbrowse@2a01:4f8:1c1c:9319::1) |
2023-02-17 09:32:27 +0100 | Server | +Cnt |
2023-02-17 09:34:23 +0100 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
2023-02-17 09:34:49 +0100 | yahb2 | (~yahb2@static.56.27.47.78.clients.your-server.de) |
2023-02-17 09:36:38 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2023-02-17 09:37:01 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-02-17 09:40:17 +0100 | Guest47 | (~Guest47@180.150.112.145) (Quit: Client closed) |
2023-02-17 09:43:07 +0100 | <hololeap> | I think I finally just got this and I want to check to see if I understand it correctly: logic :: (forall r. (a -> r -> r) -> r -> r) -> Logic a |
2023-02-17 09:44:15 +0100 | <hololeap> | you would use this as: logic $ \(f :: a -> r -> r) (e :: r) -> ... |
2023-02-17 09:44:59 +0100 | <hololeap> | f is a function that takes any value (x :: a) and some r and will return another r |
2023-02-17 09:45:18 +0100 | <hololeap> | e is basically the r that signifies an early error state |
2023-02-17 09:46:32 +0100 | <hololeap> | and f signifies continuing the computation which may continue or fail but it's out of your control if that's what you choose to return |
2023-02-17 09:46:50 +0100 | <hololeap> | damn this is tricky |
2023-02-17 09:51:51 +0100 | <hololeap> | I understand that it is essentially a list, but I'm trying to understand this other way of looking at it |
2023-02-17 09:53:25 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-02-17 09:54:10 +0100 | ft | (~ft@p3e9bc443.dip0.t-ipconnect.de) (Quit: leaving) |
2023-02-17 09:55:47 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-02-17 09:57:01 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-17 09:59:37 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-02-17 10:02:39 +0100 | nihonium | (~nihonium@46.148.105.76) |
2023-02-17 10:11:14 +0100 | MajorBiscuit | (~MajorBisc@c-001-018-019.client.tudelft.eduvpn.nl) |
2023-02-17 10:19:02 +0100 | thongpv | (~thongpv87@2402:9d80:3aa:dcd6:977e:e11f:15c9:9293) |
2023-02-17 10:19:11 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) |
2023-02-17 10:28:59 +0100 | cfricke | (~cfricke@user/cfricke) |
2023-02-17 10:39:40 +0100 | chele | (~chele@user/chele) |
2023-02-17 10:48:33 +0100 | akegalj | (~akegalj@78.3.33.72) (Ping timeout: 252 seconds) |
2023-02-17 10:51:04 +0100 | ubert | (~Thunderbi@2a02:8109:abc0:6434:f290:bfbc:97a0:5afc) |
2023-02-17 10:54:55 +0100 | yoneda | (~mike@193.206.102.122) |
2023-02-17 10:55:56 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::9fd1) |
2023-02-17 11:00:19 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2023-02-17 11:03:30 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds) |
2023-02-17 11:04:22 +0100 | thib | (~Thunderbi@2a00:8a60:c000:1:8a13:bf74:b2:8d47) |
2023-02-17 11:04:31 +0100 | thib | Guest9909 |
2023-02-17 11:07:56 +0100 | akegalj | (~akegalj@lns01-0595.dsl.iskon.hr) |
2023-02-17 11:09:04 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:51d4:7b92:8f3c:afa1) (Ping timeout: 248 seconds) |
2023-02-17 11:09:37 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2023-02-17 11:10:04 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-02-17 11:11:04 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::9fd1) (Quit: Where is it) |
2023-02-17 11:13:34 +0100 | myxokeph | (~myxokeph@cpe-65-28-251-121.cinci.res.rr.com) |
2023-02-17 11:13:36 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-02-17 11:32:53 +0100 | amano | (~amano@45.8.223.209) |
2023-02-17 11:33:56 +0100 | <amano> | Check out brick-tabular-list on hackage. It contains two tabular list widgets for brick terminal UI library. It is suitable for a list of different kinds of items that have different columns or a uniform spreadsheet. |
2023-02-17 11:34:42 +0100 | amano | (~amano@45.8.223.209) (Client Quit) |
2023-02-17 11:48:09 +0100 | Guest9909 | (~Thunderbi@2a00:8a60:c000:1:8a13:bf74:b2:8d47) (Quit: Guest9909) |
2023-02-17 11:52:06 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds) |
2023-02-17 11:53:54 +0100 | jespada | (~jespada@148.252.128.104) |
2023-02-17 11:54:48 +0100 | dtman34 | (~dtman34@76.156.89.180) (Ping timeout: 255 seconds) |
2023-02-17 11:57:04 +0100 | dtman34 | (~dtman34@76.156.89.180) |
2023-02-17 11:58:42 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2023-02-17 11:59:45 +0100 | <jonathanx> | I want to learn how to handle persistent database migrations properly. Right now the goal is a simple migration, but in the future I might need more complex ones. I noticed that there's a dedicated library for persistent migrations here: https://hackage.haskell.org/package/persistent-migration |
2023-02-17 12:00:09 +0100 | <jonathanx> | Is the lib good, or should I go with defining migrations using the migration support in persistent? |
2023-02-17 12:00:39 +0100 | <jonathanx> | (technically not a dichotomy, but any takes/recommendations would be appreciated) |
2023-02-17 12:01:55 +0100 | phma_ | (~phma@host-67-44-208-65.hnremote.net) (Read error: Connection reset by peer) |
2023-02-17 12:08:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-17 12:10:32 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) |
2023-02-17 12:10:50 +0100 | phma_ | (~phma@host-67-44-208-191.hnremote.net) |
2023-02-17 12:12:43 +0100 | <Hecate> | jonathanx: I usually put migrations in their own folder like this: https://github.com/flora-pm/flora-server/tree/development/migrations |
2023-02-17 12:15:00 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds) |
2023-02-17 12:17:36 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-02-17 12:19:50 +0100 | <[exa]> | jonathanx: migrations are hard™ |
2023-02-17 12:20:51 +0100 | <[exa]> | I had luck with these given by selda, not totally optimal but worked well. |
2023-02-17 12:33:50 +0100 | nihonium | (~nihonium@46.148.105.76) (Remote host closed the connection) |
2023-02-17 12:36:38 +0100 | codaraxis | (~codaraxis@user/codaraxis) |
2023-02-17 12:38:54 +0100 | codaraxis__ | (~codaraxis@user/codaraxis) (Ping timeout: 255 seconds) |
2023-02-17 12:42:57 +0100 | akegalj | (~akegalj@lns01-0595.dsl.iskon.hr) (Ping timeout: 255 seconds) |
2023-02-17 12:51:40 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:8e16:45ff:feeb:cfcf) |
2023-02-17 12:51:55 +0100 | razetime | (~Thunderbi@117.193.4.84) (Remote host closed the connection) |
2023-02-17 12:54:54 +0100 | elevenkb | (~elevenkb@105.225.107.107) |
2023-02-17 13:00:19 +0100 | xff0x | (~xff0x@2405:6580:b080:900:1ef3:42f8:594a:9997) |
2023-02-17 13:02:47 +0100 | elevenkb | (~elevenkb@105.225.107.107) (Quit: Client closed) |
2023-02-17 13:20:34 +0100 | akegalj | (~akegalj@213.202.86.88) |
2023-02-17 13:31:01 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 246 seconds) |
2023-02-17 13:33:55 +0100 | lyle | (~lyle@104.246.145.237) |
2023-02-17 13:34:31 +0100 | gpncarl | (~gpncarl@210.12.195.6) (Ping timeout: 246 seconds) |
2023-02-17 13:34:34 +0100 | <merijn> | jonathanx: I think the best way to handle them is not letting persistent handle them xD |
2023-02-17 13:35:02 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-02-17 13:35:15 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) (Quit: use-value) |
2023-02-17 13:35:23 +0100 | <merijn> | jonathanx: Alternately, you can be inspired by the giant atrocity I've built, I guess |
2023-02-17 13:35:33 +0100 | <merijn> | 'https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Migration.hs |
2023-02-17 13:43:22 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) |
2023-02-17 13:46:50 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2023-02-17 13:48:46 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) (Quit: use-value) |
2023-02-17 13:51:16 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:8e16:45ff:feeb:cfcf) (Remote host closed the connection) |
2023-02-17 13:51:36 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:b9af:9316:97a3:301e) |
2023-02-17 13:51:58 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) |
2023-02-17 13:54:28 +0100 | cheater | (~Username@user/cheater) (Read error: Connection timed out) |
2023-02-17 13:57:04 +0100 | cheater | (~Username@user/cheater) |
2023-02-17 14:08:05 +0100 | king_gs | (~Thunderbi@2806:103e:29:1779:b9af:9316:97a3:301e) (Quit: king_gs) |
2023-02-17 14:08:13 +0100 | king_gs1 | (~Thunderbi@187.201.41.239) |
2023-02-17 14:10:31 +0100 | king_gs1 | king_gs |
2023-02-17 14:27:30 +0100 | ft_ | (~ft@p3e9bc443.dip0.t-ipconnect.de) |
2023-02-17 14:29:15 +0100 | jespada | (~jespada@148.252.128.104) (Read error: Connection reset by peer) |
2023-02-17 14:31:13 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-02-17 14:34:47 +0100 | jespada | (~jespada@77.98.179.16) |
2023-02-17 14:36:23 +0100 | king_gs | (~Thunderbi@187.201.41.239) (Quit: king_gs) |
2023-02-17 14:37:02 +0100 | ft_ | ft |
2023-02-17 14:42:29 +0100 | <dminuoso_> | [exa]: They arent hard. |
2023-02-17 14:42:57 +0100 | <dminuoso_> | Between all the problems a software developer may be required to solve, migrations tends to be one of the simpler things. |
2023-02-17 14:43:48 +0100 | <dminuoso_> | I just have a migration table in which I keep a counter, and each schema change becomes appended to `[Connection -> IO ()]` |
2023-02-17 14:44:03 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2023-02-17 14:44:03 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Write error: Broken pipe) |
2023-02-17 14:44:04 +0100 | <dminuoso_> | It's super easy, and has a very simple hook for facilitating data migrations too |
2023-02-17 14:44:37 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-17 14:44:40 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-02-17 14:44:45 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal) |
2023-02-17 14:45:05 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) |
2023-02-17 14:45:05 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-02-17 14:47:04 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
2023-02-17 14:50:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2023-02-17 14:51:28 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-17 14:52:07 +0100 | zer0bitz | (~zer0bitz@2001:2003:f443:d600:74f8:d485:92d1:ab7d) |
2023-02-17 14:54:48 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) (Ping timeout: 255 seconds) |
2023-02-17 14:56:55 +0100 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2023-02-17 14:57:39 +0100 | cheater | (~Username@user/cheater) |
2023-02-17 14:59:07 +0100 | rlj | (~rlj@c-5eea659e-74736162.cust.telenor.se) |
2023-02-17 15:04:27 +0100 | __monty__ | (~toonn@user/toonn) |
2023-02-17 15:06:48 +0100 | mbuf | (~Shakthi@49.205.81.25) |
2023-02-17 15:11:49 +0100 | Cale | (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 246 seconds) |
2023-02-17 15:20:09 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
2023-02-17 15:20:15 +0100 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-02-17 15:20:36 +0100 | mbuf | (~Shakthi@49.205.81.25) (Quit: Leaving) |
2023-02-17 15:21:46 +0100 | califax | (~califax@user/califx) |
2023-02-17 15:22:14 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
2023-02-17 15:22:48 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-02-17 15:24:05 +0100 | rettahcay | (~kaushikv@c-24-20-37-193.hsd1.or.comcast.net) () |
2023-02-17 15:24:06 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-02-17 15:24:31 +0100 | thegeekinside | (~thegeekin@189.180.66.126) |
2023-02-17 15:28:29 +0100 | megaTherion | (~therion@unix.io) (Remote host closed the connection) |
2023-02-17 15:28:53 +0100 | xkuru | (~xkuru@user/xkuru) |
2023-02-17 15:29:03 +0100 | x_kuru | (~xkuru@user/xkuru) |
2023-02-17 15:29:03 +0100 | x_kuru | (~xkuru@user/xkuru) (Client Quit) |
2023-02-17 15:29:24 +0100 | xkuru | (~xkuru@user/xkuru) (Max SendQ exceeded) |
2023-02-17 15:29:52 +0100 | xkuru | (~xkuru@user/xkuru) |
2023-02-17 15:30:13 +0100 | megaTherion | (~therion@unix.io) |
2023-02-17 15:30:50 +0100 | ystael | (~ystael@user/ystael) |
2023-02-17 15:34:01 +0100 | megaTherion | (~therion@unix.io) (Client Quit) |
2023-02-17 15:35:40 +0100 | megaTherion | (~therion@unix.io) |
2023-02-17 15:37:18 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2023-02-17 15:37:20 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-02-17 15:38:29 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2023-02-17 15:38:33 +0100 | mbuf | (~Shakthi@49.205.81.25) |
2023-02-17 15:39:08 +0100 | zmt00 | (~zmt00@user/zmt00) |
2023-02-17 15:39:20 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2023-02-17 15:39:34 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2023-02-17 15:39:47 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2023-02-17 15:40:14 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
2023-02-17 15:40:14 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2023-02-17 15:40:35 +0100 | zmt01 | (~zmt00@user/zmt00) (Ping timeout: 255 seconds) |
2023-02-17 15:40:40 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-02-17 15:41:46 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) |
2023-02-17 15:42:33 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-17 15:42:56 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
2023-02-17 15:43:32 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-02-17 15:43:40 +0100 | xkuru | (~xkuru@185.218.108.33) |
2023-02-17 15:43:43 +0100 | x_kuru | (~xkuru@185.218.108.33) |
2023-02-17 15:43:54 +0100 | x_kuru | (~xkuru@185.218.108.33) (Remote host closed the connection) |
2023-02-17 15:44:02 +0100 | xkuru | (~xkuru@185.218.108.33) (Remote host closed the connection) |
2023-02-17 15:44:22 +0100 | xkuru | (~xkuru@185.218.108.33) |
2023-02-17 15:44:41 +0100 | xkuru | (~xkuru@185.218.108.33) (Changing host) |
2023-02-17 15:44:41 +0100 | xkuru | (~xkuru@user/xkuru) |
2023-02-17 15:45:08 +0100 | x_kuru | (~xkuru@185.218.108.33) |
2023-02-17 15:45:26 +0100 | x_kuru | (~xkuru@185.218.108.33) (Remote host closed the connection) |
2023-02-17 15:45:46 +0100 | x_kuru | (~xkuru@185.218.108.33) |
2023-02-17 15:46:07 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) (Ping timeout: 246 seconds) |
2023-02-17 15:46:34 +0100 | x_kuru | (~xkuru@185.218.108.33) (Remote host closed the connection) |
2023-02-17 15:46:46 +0100 | x_kuru | (~xkuru@user/xkuru) |
2023-02-17 15:50:13 +0100 | acidjnk | (~acidjnk@p200300d6e715c461502375bc0f0db245.dip0.t-ipconnect.de) |
2023-02-17 15:53:38 +0100 | x_kuru | (~xkuru@user/xkuru) (Quit: Unvirtualizing) |
2023-02-17 15:53:54 +0100 | x_kuru | (~xkuru@user/xkuru) |
2023-02-17 15:55:05 +0100 | x_kuru | (~xkuru@user/xkuru) (Remote host closed the connection) |
2023-02-17 15:55:28 +0100 | xkuru | (~xkuru@user/xkuru) (Quit: Unvirtualizing) |
2023-02-17 15:55:49 +0100 | xkuru | (~xkuru@185.218.108.33) |
2023-02-17 15:56:53 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2023-02-17 15:56:58 +0100 | xkuru | (~xkuru@185.218.108.33) (Remote host closed the connection) |
2023-02-17 15:57:08 +0100 | xkuru | (~xkuru@user/xkuru) |
2023-02-17 15:57:30 +0100 | mikoto-chan | (~mikoto-ch@2001:999:480:87eb:9899:52f3:d50e:9bff) |
2023-02-17 15:58:15 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-02-17 16:00:12 +0100 | xkuru | (~xkuru@user/xkuru) (Client Quit) |
2023-02-17 16:00:30 +0100 | xkuru | (~xkuru@user/xkuru) |
2023-02-17 16:02:30 +0100 | <kaol> | Cool, Vty is fine with opening a second instance on fds passed via unix socket. Just the thing I'd need for a multi-terminal roguelike. |
2023-02-17 16:04:14 +0100 | Cale | (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) |
2023-02-17 16:04:15 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) |
2023-02-17 16:08:52 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2023-02-17 16:08:52 +0100 | <[exa]> | kaol: oh wow pls elaborate |
2023-02-17 16:08:52 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) (Ping timeout: 252 seconds) |
2023-02-17 16:09:04 +0100 | tiny_user_ | (~tiny_user@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3) |
2023-02-17 16:09:08 +0100 | tiny_user_ | (~tiny_user@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3) (Client Quit) |
2023-02-17 16:09:49 +0100 | <kaol> | It could have a permanent inventory window or a list of objects in view or something like that. |
2023-02-17 16:10:25 +0100 | infty | (~infty@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3) |
2023-02-17 16:11:05 +0100 | <merijn> | kaol: Don't you want something like brick to just have that be the same UI? |
2023-02-17 16:11:31 +0100 | <kaol> | Not that I have started with anything yet. Just trying out random stuff. |
2023-02-17 16:13:07 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-02-17 16:13:24 +0100 | <[exa]> | kaol: how do you actually connect the terminals to that? |
2023-02-17 16:13:37 +0100 | jespada | (~jespada@77.98.179.16) (Remote host closed the connection) |
2023-02-17 16:14:15 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-02-17 16:15:56 +0100 | <kaol> | The way I did was that the new process bind&connects to the socket and sends 0 and 1 to the master process and it grabs them in mkVty config. The slave process can stick around waiting on socket read. |
2023-02-17 16:16:31 +0100 | ddellacosta | (~ddellacos@146.70.165.157) |
2023-02-17 16:16:42 +0100 | mimmy_ | (~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b) |
2023-02-17 16:16:43 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) |
2023-02-17 16:16:53 +0100 | segfaultfizzbuzz | (~segfaultf@108.211.201.53) (Client Quit) |
2023-02-17 16:17:11 +0100 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) (Killed (NickServ (GHOST command used by mimmy_!~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b))) |
2023-02-17 16:17:20 +0100 | mimmy_ | mimmy |
2023-02-17 16:17:41 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Remote host closed the connection) |
2023-02-17 16:18:03 +0100 | mimmy_ | (~mimmy@2604:a880:cad:d0::3e:1001) |
2023-02-17 16:18:05 +0100 | <geekosaur> | xterm and several others have a special mode for it, among other possibilities (see the -S option) |
2023-02-17 16:18:21 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2023-02-17 16:24:39 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-02-17 16:24:53 +0100 | <kaol> | I think I'll use a hexagonal grid. Two characters horizontally would be one cell and each other row would be offset by one column. It'd be a change. |
2023-02-17 16:24:58 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-02-17 16:26:49 +0100 | <geekosaur> | it exists but isn't that common https://www.reddit.com/r/roguelikes/comments/25vufz/any_idea_why_hexagonal_roguelikes_are_not_so/ |
2023-02-17 16:27:27 +0100 | mimmy | (~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b) (Quit: WeeChat 3.8) |
2023-02-17 16:27:27 +0100 | mimmy_ | mimmy |
2023-02-17 16:27:49 +0100 | <merijn> | kaol: brick is a higher level UI widget framework on top of vty |
2023-02-17 16:28:04 +0100 | <merijn> | kaol: It's the successor to the now deprecated vty-ui |
2023-02-17 16:28:41 +0100 | <merijn> | Should be much easier than using vty directly |
2023-02-17 16:28:42 +0100 | <maerwald> | and still no windows support |
2023-02-17 16:29:25 +0100 | <merijn> | maerwald: of course not, because windows developers don't care to work on windows support in vty and none windows devs don't care about doing it for them |
2023-02-17 16:29:41 +0100 | <kaol> | Via WSL? Well, not my cup of tea anyhow. |
2023-02-17 16:29:49 +0100 | <maerwald> | no, native |
2023-02-17 16:30:29 +0100 | <maerwald> | merijn: I think that's rather a problem of early design decisions of the library |
2023-02-17 16:30:37 +0100 | <merijn> | possibly |
2023-02-17 16:30:53 +0100 | <merijn> | but the early design decisions were probably made for "not windows" :p |
2023-02-17 16:31:58 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) (Ping timeout: 246 seconds) |
2023-02-17 16:32:29 +0100 | infty | (~infty@2a01:cb1d:2d9:1100:5866:9dfc:82dd:3c3) (Ping timeout: 252 seconds) |
2023-02-17 16:33:33 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-02-17 16:35:32 +0100 | ddellacosta | (~ddellacos@146.70.165.157) (Ping timeout: 268 seconds) |
2023-02-17 16:36:06 +0100 | <kaol> | Speaking of roguelikes, I did this thing: https://gitlab.com/kaol/titityy Because people don't agree what SGR 1 does. More low level stuff. |
2023-02-17 16:37:56 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-02-17 16:44:55 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-02-17 16:47:12 +0100 | hal[m] | (~halfosswt@2001:470:69fc:105::2:e0ae) () |
2023-02-17 16:54:25 +0100 | vglfr | (~vglfr@145.224.100.62) |
2023-02-17 16:54:40 +0100 | dsrt^ | (~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection) |
2023-02-17 16:56:10 +0100 | mikoto-chan | (~mikoto-ch@2001:999:480:87eb:9899:52f3:d50e:9bff) (Ping timeout: 252 seconds) |
2023-02-17 16:56:18 +0100 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) (Killed (NickServ (GHOST command used by mimmy_!~mimmy@2607:fea8:6c0:e30:486b:73b7:a8b7:180b))) |
2023-02-17 16:56:35 +0100 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) |
2023-02-17 17:02:11 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
2023-02-17 17:05:17 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-02-17 17:09:43 +0100 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) (Quit: ZNC 1.9.x-git-187-32d4a4d5 - https://znc.in) |
2023-02-17 17:10:00 +0100 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) |
2023-02-17 17:11:39 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-02-17 17:16:54 +0100 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) (WeeChat 3.8) |
2023-02-17 17:20:07 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-17 17:21:19 +0100 | mbuf | (~Shakthi@49.205.81.25) (Quit: Leaving) |
2023-02-17 17:22:50 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2023-02-17 17:22:58 +0100 | p0lyph3m | (~polyphem@2a02:810d:840:8754:ad77:3864:324d:fcd8) |
2023-02-17 17:27:54 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-02-17 17:28:34 +0100 | <raehik> | I want to write a generic deriver that uses a method from a typeclass internally, but I want to be able to swap that typeclass out |
2023-02-17 17:29:01 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-02-17 17:29:35 +0100 | <raehik> | I can apparently do this by adding that inner typeclass as a typevar `cxt` in my generic typeclass, and threading a function `(forall a. cxt a => r)` through the term level |
2023-02-17 17:30:03 +0100 | <raehik> | is this all sound and fine for performance? might it fall apart in weird ways? |
2023-02-17 17:31:28 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
2023-02-17 17:31:28 +0100 | razetime | (~Thunderbi@117.193.4.84) |
2023-02-17 17:33:16 +0100 | <raehik> | some clippings from my code to illustrate what I mean https://paste.tomsmeding.com/9FWPaGSB |
2023-02-17 17:36:31 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-17 17:36:32 +0100 | <sm> | we need to find an urgent business use case for brick on windows so that someone will throw money at it |
2023-02-17 17:39:42 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
2023-02-17 17:41:37 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2023-02-17 17:41:58 +0100 | mauke | throws brick at windows instead |
2023-02-17 17:43:59 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
2023-02-17 17:45:29 +0100 | <maerwald> | lol |
2023-02-17 17:46:15 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2023-02-17 17:46:20 +0100 | <tomsmeding> | mauke++ |
2023-02-17 17:46:39 +0100 | <tomsmeding> | sm: wouldn't that be fixing vty? Or is there some part of brick itself that's platform-dependent |
2023-02-17 17:46:43 +0100 | <monochrom> | hololeap: (forall r. (a -> r -> r) -> r -> r)) is CPSed [a]. The "forall r" uses parametricity to ensure that you get nothing more than [a]. It is how you have [a] in System F. Equivalently, given xs::[a], (\op z -> foldr op z xs) has that type too, so you're looking at foldr or catamorphism. Probably Oleg loves CPSing for speed. |
2023-02-17 17:48:38 +0100 | <monochrom> | But by the time you go to LogicT, this kind of CPS also helps gain streaming behaviour. |
2023-02-17 17:49:07 +0100 | <monochrom> | LogicT would then be "ListT done right" CPSed. |
2023-02-17 17:50:36 +0100 | czy | (~user@50.30.140.23) |
2023-02-17 17:53:54 +0100 | thongpv | (~thongpv87@2402:9d80:3aa:dcd6:977e:e11f:15c9:9293) (Read error: Connection reset by peer) |
2023-02-17 17:54:47 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2023-02-17 17:54:48 +0100 | dcoutts_ | (~duncan@host86-167-90-212.range86-167.btcentralplus.com) (Ping timeout: 255 seconds) |
2023-02-17 17:55:39 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2023-02-17 17:57:33 +0100 | czy | (~user@50.30.140.23) (Ping timeout: 252 seconds) |
2023-02-17 17:58:21 +0100 | merijn | (~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) |
2023-02-17 17:58:47 +0100 | <hololeap> | monochrom, I thought the "done right" was referring to the CPS |
2023-02-17 18:00:46 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-02-17 18:01:10 +0100 | <[exa]> | dminuoso_: I'd argue they aren't hard if you have 10 years of sql practice and know how to build the database for the product right away. but yeah, it's not a super complex engineering problem |
2023-02-17 18:02:35 +0100 | <hololeap> | but I have stared at it more and played around with it in ghci. I think I'm finally getting an intuition for it, especially realizing you can just use the Alternative api in many cases and the MonadLogic api in many others |
2023-02-17 18:06:23 +0100 | <geekosaur> | "done right" has to do with ListT not being a proper monad transformer over e.g. IO, iirc |
2023-02-17 18:11:06 +0100 | razetime | (~Thunderbi@117.193.4.84) (Ping timeout: 252 seconds) |
2023-02-17 18:11:27 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-02-17 18:11:54 +0100 | Cale | (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Ping timeout: 255 seconds) |
2023-02-17 18:13:41 +0100 | akegalj | (~akegalj@213.202.86.88) (Ping timeout: 252 seconds) |
2023-02-17 18:14:36 +0100 | merijn | (~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
2023-02-17 18:15:18 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) |
2023-02-17 18:15:24 +0100 | <sm> | true tomsmeding I should say vty |
2023-02-17 18:20:10 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds) |
2023-02-17 18:20:54 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds) |
2023-02-17 18:20:59 +0100 | gurkenglas | (~gurkengla@dynamic-046-114-182-119.46.114.pool.telefonica.de) |
2023-02-17 18:23:39 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:bde1:ba1c:68af:958a) |
2023-02-17 18:27:58 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-02-17 18:28:33 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2023-02-17 18:31:35 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-02-17 18:32:31 +0100 | <glguy> | kaol: I used the ability to connect vty to an arbitrary tty to make a stand-alone ssh server that presented a vty interface to clients upon connect once |
2023-02-17 18:36:13 +0100 | gurkenglas | (~gurkengla@dynamic-046-114-182-119.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
2023-02-17 18:37:40 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-02-17 18:38:02 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2023-02-17 18:38:16 +0100 | gurkenglas | (~gurkengla@82.113.98.93) |
2023-02-17 18:41:04 +0100 | merijn | (~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) |
2023-02-17 18:41:49 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-02-17 18:42:52 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
2023-02-17 18:44:18 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-02-17 18:51:29 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-02-17 18:52:08 +0100 | MajorBiscuit | (~MajorBisc@c-001-018-019.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.6) |
2023-02-17 18:52:11 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds) |
2023-02-17 18:55:20 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-02-17 18:55:51 +0100 | ubert | (~Thunderbi@2a02:8109:abc0:6434:f290:bfbc:97a0:5afc) (Quit: ubert) |
2023-02-17 18:56:37 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-02-17 18:57:04 +0100 | oldfashionedcow | (~Rahul_San@user/oldfashionedcow) |
2023-02-17 19:02:15 +0100 | echoone | (~echoone@2a02:8109:a1c0:5d05:8d6f:39bb:827f:c033) |
2023-02-17 19:02:34 +0100 | econo | (uid147250@user/econo) |
2023-02-17 19:08:23 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2023-02-17 19:08:44 +0100 | mauke[m] | (~mauke@user/mauke) () |
2023-02-17 19:09:15 +0100 | akegalj | (~akegalj@lns01-0595.dsl.iskon.hr) |
2023-02-17 19:10:24 +0100 | merijn | (~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
2023-02-17 19:11:08 +0100 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
2023-02-17 19:12:44 +0100 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
2023-02-17 19:15:31 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-02-17 19:18:58 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2023-02-17 19:20:16 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-02-17 19:20:43 +0100 | rlj | (~rlj@c-5eea659e-74736162.cust.telenor.se) (Ping timeout: 260 seconds) |
2023-02-17 19:22:03 +0100 | infty | (~infty@2a01:cb1d:2d9:1100:cd1:c82a:937a:471b) |
2023-02-17 19:23:59 +0100 | zeenk | (~zeenk@2a02:2f04:a214:1e00::7fe) (Quit: Konversation terminated!) |
2023-02-17 19:24:41 +0100 | <dminuoso_> | [exa]: I think there's generally an overreliance on libraries to solve relatively simple problems, which can often masquerade these ideas as something "complicated" |
2023-02-17 19:25:04 +0100 | <dminuoso_> | You especially begin to lose an understanding of underlying machinery, since "its just a library problem" |
2023-02-17 19:25:19 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::ccfa) |
2023-02-17 19:26:06 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-02-17 19:29:09 +0100 | <[exa]> | yeah that doesn't help at all, very true |
2023-02-17 19:29:12 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:bde1:ba1c:68af:958a) (Ping timeout: 255 seconds) |
2023-02-17 19:31:55 +0100 | <gqplox[m]> | hello |
2023-02-17 19:33:31 +0100 | <gqplox[m]> | i see in data.Bits there is xor |
2023-02-17 19:33:33 +0100 | <gqplox[m]> | i want to make this xor function also work on chars, how can I do that? |
2023-02-17 19:34:25 +0100 | ph88 | (~ph88@ip5b426553.dynamic.kabel-deutschland.de) |
2023-02-17 19:35:01 +0100 | <ph88> | what is the latest ghc/haskell edition ? was there something that enables some extensions by default ? |
2023-02-17 19:35:13 +0100 | <Hecate> | gqplox[m]: turn Char into Int, use xor on Int, gqplox[m] |
2023-02-17 19:35:22 +0100 | <Hecate> | ph88: GHC2021 |
2023-02-17 19:36:50 +0100 | <ph88> | how do i set that in my configuration file ? |
2023-02-17 19:37:13 +0100 | <oats> | gqplox[m], what Hecate said, use `fromEnum :: Char -> Int` and use the Bits instance of Int |
2023-02-17 19:37:26 +0100 | <oats> | but now I'm wondering why Char doesn't have a Bits instance |
2023-02-17 19:37:28 +0100 | <Hecate> | ph88: https://github.com/haskell-text/text-display/blob/main/text-display.cabal#L28-L29 that's how I do it |
2023-02-17 19:37:48 +0100 | <ph88> | thanks Hecate |
2023-02-17 19:37:55 +0100 | <Hecate> | oats: good question, sometimes people just are lazy |
2023-02-17 19:38:12 +0100 | <ph88> | i think if you set it to Haskell2010 explicitly then you turn off GHC2021 language extensions |
2023-02-17 19:38:26 +0100 | <ph88> | > GHC2021 is used by GHC if neither Haskell98 nor Haskell2010 is turned on explicitly. |
2023-02-17 19:38:28 +0100 | <lambdabot> | <hint>:1:85: error: |
2023-02-17 19:38:28 +0100 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2023-02-17 19:38:29 +0100 | <ph88> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html |
2023-02-17 19:38:51 +0100 | <gqplox[m]> | I can do this... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/2e6116175fbf47e1bd0a5e4ca94b9fb9891d…>) |
2023-02-17 19:39:08 +0100 | <Hecate> | yeah, in my library I am still compatible with 8.10.7 ph88, but you want to replace Haskell2010 with GHC2021 |
2023-02-17 19:39:16 +0100 | <ph88> | ok thanks |
2023-02-17 19:40:00 +0100 | <Hecate> | gqplox[m]: https://stackoverflow.com/questions/59361341/xoring-strings-in-haskell |
2023-02-17 19:40:25 +0100 | <Hecate> | https://wiki.haskell.org/Dealing_with_binary_data |
2023-02-17 19:42:31 +0100 | OscarZ | (~oscarz@95.175.104.39) |
2023-02-17 19:42:51 +0100 | <gqplox[m]> | hmm sorry I think i'm not explaining myself properly. i am looking for a way to make a custom version of the built in xor that will work for any type i want, instead of calling it stringXor in that example. so then if I make other functions, e.g. function which returns true I cna do something similar to `Xorable a => a -> Bool` |
2023-02-17 19:43:21 +0100 | <gqplox[m]> | as shown in that example* |
2023-02-17 19:46:05 +0100 | <geekosaur> | https://hackage.haskell.org/package/AC-Boolean/docs/Data-Boolean.html ? |
2023-02-17 19:46:06 +0100 | <Hecate> | gqplox[m]: looks to me like you'd have to define Bits instances |
2023-02-17 19:46:54 +0100 | <gqplox[m]> | ah ok |
2023-02-17 19:47:12 +0100 | <gqplox[m]> | how would i be able to do that? would you be able to show me a short example please? |
2023-02-17 19:53:34 +0100 | acidjnk | (~acidjnk@p200300d6e715c461502375bc0f0db245.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-02-17 19:57:42 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) |
2023-02-17 19:58:08 +0100 | czy | (~user@host-140-23.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-02-17 19:58:47 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-17 20:01:28 +0100 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-02-17 20:03:18 +0100 | acidjnk | (~acidjnk@p200300d6e715c424f48fc920b5a5fc6d.dip0.t-ipconnect.de) |
2023-02-17 20:03:43 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 252 seconds) |
2023-02-17 20:03:59 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
2023-02-17 20:05:48 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2023-02-17 20:08:22 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Remote host closed the connection) |
2023-02-17 20:15:43 +0100 | hueso | (~root@user/hueso) (Quit: No Ping reply in 180 seconds.) |
2023-02-17 20:19:26 +0100 | <gqplox[m]> | nvm, i got it... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/8056a6918d77674fd2581ee7d1f7a447dbe0…>) |
2023-02-17 20:22:41 +0100 | <gqplox[m]> | its cool though, less typing in ghci 😎... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/e6aa04b028a6e421a3ff6a2e740125ace294…>) |
2023-02-17 20:24:00 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2023-02-17 20:24:56 +0100 | <akegalj> | I am going through linear base and can't wrap my head around how to think about linear compisition. Why doesn't (##.) :: (b -> c) -> (a %1-> b) -> (a %1-> c) typecheck? (from https://github.com/tweag/linear-base/blob/master/examples/Simple/Pure.hs#L206) |
2023-02-17 20:28:30 +0100 | <[exa]> | akegalj: AFAIK, the result would be a linear function that would need to call a non-linear function |
2023-02-17 20:28:40 +0100 | <geekosaur> | because the composition a %1-> c is not guaranteed to be linear if either component is not linear |
2023-02-17 20:29:17 +0100 | <geekosaur> | so both a %1-> b and b %1-> c are required, aiui |
2023-02-17 20:29:37 +0100 | czy | (~user@host-140-23.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
2023-02-17 20:30:49 +0100 | <tomsmeding> | yeah |
2023-02-17 20:31:01 +0100 | <geekosaur> | the "other direction" isn't a problem: the composition a -> c is valid even if one of the component functions is linear, because %Many doesn't care |
2023-02-17 20:31:30 +0100 | <tomsmeding> | akegalj: if you write 'g ##. f = \a -> g (f a)' with thattype signature, then you must use the 'a' exactly once, which f does, but then g promises nothing about how it uses the result of calling f on a |
2023-02-17 20:31:47 +0100 | <tomsmeding> | so you violate the contract of using 'a' exactly once by passing it indirectly to g |
2023-02-17 20:33:03 +0100 | <akegalj> | got it, thanks all |
2023-02-17 20:33:55 +0100 | <akegalj> | I think this arrow notation is a bit confusing (compared to rust which anotates values) |
2023-02-17 20:35:02 +0100 | <[exa]> | rust doesn't need to deal with functions so they are okay with annotating the values |
2023-02-17 20:35:19 +0100 | <tomsmeding> | [exa]: rust does deal with functions? |
2023-02-17 20:35:26 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:e7bf:6161:2d4d:85e6) |
2023-02-17 20:35:28 +0100 | <[exa]> | really? |
2023-02-17 20:35:31 +0100 | <tomsmeding> | furthermore, rust even has to deal with functions having mutable closures |
2023-02-17 20:35:46 +0100 | <gqplox[m]> | why can't i do this?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/bca44d9aca8c37b2594b07ebbdfbe87f180d…>) |
2023-02-17 20:35:52 +0100 | <[exa]> | so these are still decidable values basically? |
2023-02-17 20:35:54 +0100 | <tomsmeding> | [exa]: Fn / FnOnce / FnMut? |
2023-02-17 20:36:58 +0100 | <tomsmeding> | gqplox[m]: Prelude's (^) is just a top-level function |
2023-02-17 20:37:15 +0100 | <tomsmeding> | so after you've defined your class, there are now two (^) declarations in scope: one from Prelude, and one from you |
2023-02-17 20:37:21 +0100 | <tomsmeding> | haskell doesn't disambiguate between those based on types |
2023-02-17 20:37:46 +0100 | <tomsmeding> | the only "type-based disambiguation" (in some sense) that haskell does is when you have one declaration, in a type class, and you have multiple instances of that type class |
2023-02-17 20:37:57 +0100 | <tomsmeding> | gqplox[m]: quick fix: put 'import Prelude hiding ((^))' at the top of your file |
2023-02-17 20:38:47 +0100 | <gqplox[m]> | ah, thank you |
2023-02-17 20:39:17 +0100 | <gqplox[m]> | also, how come haskell doesn't disambiguate? as it knows everything necessary in order to right? |
2023-02-17 20:40:21 +0100 | <tomsmeding> | :t (^) |
2023-02-17 20:40:22 +0100 | <lambdabot> | (Integral b, Num a) => a -> b -> a |
2023-02-17 20:40:48 +0100 | <tomsmeding> | gqplox[m]: if you'd add Integral and Num instances to Char, then the Prelude one would also apply |
2023-02-17 20:41:07 +0100 | son0p | (~ff@181.136.122.143) (Ping timeout: 252 seconds) |
2023-02-17 20:41:13 +0100 | <tomsmeding> | sure, Char currently doesn't have such instances, but ghc in general does not draw conclusions from type class instances _not_ existing |
2023-02-17 20:41:15 +0100 | <[exa]> | gqplox[m]: you'd basically get an ad-hoc overloading if you'd allow it to disambiguate these things, which is very fragile |
2023-02-17 20:41:44 +0100 | <tomsmeding> | because the point of (simple) type classes is confluence, i.e. by adding more definitions your program is only going to get more defined, without any ambiguity |
2023-02-17 20:42:03 +0100 | <c_wraith> | at a practical level, it forces whole-program compilation, because instances can always be added later. No pre-compiled libraries, no module-at-a-time compilation, etc... |
2023-02-17 20:42:08 +0100 | <tomsmeding> | now with MultiParamTypeClasses, or FlexibleInstances, or the variety of ghc extensions to plain Haskell2010 type classes, that's not quite true any more, but it's the idea |
2023-02-17 20:42:15 +0100 | <tomsmeding> | also that |
2023-02-17 20:42:32 +0100 | <[exa]> | gqplox[m]: btw there's a paper somewhere that proves that adhoc overloading is either np-complete or plain out undecidable in haskell-style inference |
2023-02-17 20:43:35 +0100 | <gqplox[m]> | c_wraith: ah good point |
2023-02-17 20:43:39 +0100 | <gqplox[m]> | thanks guys :) |
2023-02-17 20:44:51 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-02-17 20:46:52 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::ccfa) (Remote host closed the connection) |
2023-02-17 20:49:43 +0100 | hgolden_ | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2023-02-17 20:52:08 +0100 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
2023-02-17 20:53:59 +0100 | <gqplox[m]> | also how can i simplify this?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/4f5826edca8f74c1861daebea92bb94d683f…>) |
2023-02-17 20:54:35 +0100 | charukiewicz[m] | (~charukiew@2001:470:69fc:105::ded4) |
2023-02-17 20:54:39 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds) |
2023-02-17 21:00:36 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-02-17 21:02:13 +0100 | trev_ | (~trev@109-252-35-99.nat.spd-mgts.ru) (Remote host closed the connection) |
2023-02-17 21:05:29 +0100 | <akegalj> | when I define in ghci `data LinearHolder2 where LinearHolder2 :: a %1 -> b -> LinearHolder2" and ask its type it gives me "LinearHolder2 :: a -> b -> LinearHolder2" , where did multiplicity on a var dissapear? (ghc 9.2.4) |
2023-02-17 21:05:36 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
2023-02-17 21:05:48 +0100 | <kaol> | gqplox[m]: That'd require xor to be defined for all Integrals. |
2023-02-17 21:07:13 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2023-02-17 21:08:10 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:e7bf:6161:2d4d:85e6) (Ping timeout: 260 seconds) |
2023-02-17 21:08:29 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2023-02-17 21:08:29 +0100 | infty | (~infty@2a01:cb1d:2d9:1100:cd1:c82a:937a:471b) (Remote host closed the connection) |
2023-02-17 21:08:52 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) |
2023-02-17 21:09:17 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2023-02-17 21:09:41 +0100 | <gqplox[m]> | i thought integral only has int + integer + word and they all support xor? |
2023-02-17 21:10:02 +0100 | <tomsmeding> | gqplox[m]: until someone writes 'instance Integral String where' |
2023-02-17 21:10:16 +0100 | <kaol> | Doesn't matter, it's open for arbitrary new instances. |
2023-02-17 21:10:18 +0100 | <gqplox[m]> | oh right |
2023-02-17 21:10:21 +0100 | <tomsmeding> | or until you import a package that happens to somewhere defined some instance like that |
2023-02-17 21:10:21 +0100 | lyle | (~lyle@104.246.145.237) (Quit: WeeChat 3.8) |
2023-02-17 21:10:24 +0100 | <gqplox[m]> | i see |
2023-02-17 21:10:28 +0100 | <tomsmeding> | unbeknownst to you |
2023-02-17 21:10:51 +0100 | echoone | (~echoone@2a02:8109:a1c0:5d05:8d6f:39bb:827f:c033) (Quit: Client closed) |
2023-02-17 21:12:21 +0100 | <tomsmeding> | akegalj: I think that's only an artifact of printing |
2023-02-17 21:13:25 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) (Ping timeout: 260 seconds) |
2023-02-17 21:13:40 +0100 | <tomsmeding> | akegalj: https://play-haskell.tomsmeding.com/saved/Doigv7Mi |
2023-02-17 21:13:47 +0100 | <tomsmeding> | oh bad test |
2023-02-17 21:14:28 +0100 | <geekosaur> | "some instance like that" <-- see acme-php 🙂 |
2023-02-17 21:15:26 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:c515:5d78:dd35:61fc) |
2023-02-17 21:15:46 +0100 | <tomsmeding> | akegalj: actually relevant test https://play-haskell.tomsmeding.com/saved/NVrgVJNB |
2023-02-17 21:16:19 +0100 | <tomsmeding> | no still not |
2023-02-17 21:16:20 +0100 | <tomsmeding> | I give up |
2023-02-17 21:17:25 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-02-17 21:18:01 +0100 | <tomsmeding> | akegalj: sorry for the noise, this is an actually working example https://play-haskell.tomsmeding.com/saved/1Abckwst |
2023-02-17 21:18:30 +0100 | <tomsmeding> | as you can see, with the %1 on the -> in LinearHolder2 it contains the a linearly and makes my f typecheck, but without, f doesn't typecheck |
2023-02-17 21:18:53 +0100 | <tomsmeding> | because f must use x linearly in producing its output, but LinearHolder2' contains the a unrestrictedly |
2023-02-17 21:18:54 +0100 | kenran | (~user@user/kenran) |
2023-02-17 21:19:11 +0100 | <tomsmeding> | so indeed the %1 is respected, it's just not printed when using :t |
2023-02-17 21:20:16 +0100 | <akegalj> | tomsmeding: thanks for the example. Yes I figured there is no bug in typechecking |
2023-02-17 21:20:42 +0100 | <akegalj> | tomsmeding: by the way, that service play-haskell is really nice. Good job! |
2023-02-17 21:20:51 +0100 | <tomsmeding> | :) |
2023-02-17 21:22:19 +0100 | <akegalj> | tomsmeding: also I like clean simple design |
2023-02-17 21:22:31 +0100 | <tomsmeding> | me too |
2023-02-17 21:23:42 +0100 | <tomsmeding> | akegalj: problem is that there are a couple of features (unimplemented) that would need additional UI elements, such as ghc flags for configuring the Core output, or running a code formatter, or version info of available packages, etc |
2023-02-17 21:24:05 +0100 | <tomsmeding> | and I'm bad at UI design so not sure how to incorporate that in the UI without making the UI sucky :p |
2023-02-17 21:24:16 +0100 | <tomsmeding> | I could just add buttons to the top bar but that doesn't really scale |
2023-02-17 21:24:48 +0100 | <tomsmeding> | if you have UI suggestions, https://github.com/tomsmeding/play-haskell/issues :) |
2023-02-17 21:25:32 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-02-17 21:25:55 +0100 | son0p | (~ff@181.136.122.143) |
2023-02-17 21:26:33 +0100 | pwug | (~pwug@user/pwug) |
2023-02-17 21:27:56 +0100 | <akegalj> | tomsmeding: hm, let me think. I didn't do any web frontend for a while (5y) so I am not sure what is even norm today |
2023-02-17 21:28:41 +0100 | <geekosaur> | side menus with some opener widget at top left |
2023-02-17 21:28:48 +0100 | <darkling> | Forget _normal_. What _works_? The two seem to be distressingly far apart much of the time... |
2023-02-17 21:28:52 +0100 | <geekosaur> | not that I'm recommending it |
2023-02-17 21:28:56 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2023-02-17 21:29:02 +0100 | <tomsmeding> | geekosaur: hamburger menu you mean? |
2023-02-17 21:29:07 +0100 | <tomsmeding> | not a fan :p |
2023-02-17 21:29:56 +0100 | <tomsmeding> | maybe the required additional UI concept here is a drop-down joined to a button |
2023-02-17 21:30:00 +0100 | <akegalj> | tomsmeding: maybe one textbox for these flags to be typed from keyboard (not selected by menues)? |
2023-02-17 21:30:16 +0100 | <akegalj> | its not user friendy but its clean |
2023-02-17 21:30:25 +0100 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2023-02-17 21:30:31 +0100 | <tomsmeding> | akegalj: yeah those Core/GHC flags would need to be a plain text field, no way I'm going to list those all and keep that up to date in a drop down |
2023-02-17 21:32:09 +0100 | <gqplox[m]> | where can I learn about the rules for this kind of thing?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/b179e21607d7c1dac000b557123b13574fa5…>) |
2023-02-17 21:33:02 +0100 | <gqplox[m]> | * where can I learn about the rules for this kind of thing?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/c4398c8db148113c83ead22c21d88a6fe0ac…>) |
2023-02-17 21:34:35 +0100 | <tomsmeding> | @pl \x y -> xor (ord x) (ord y) |
2023-02-17 21:34:35 +0100 | <lambdabot> | (. ord) . xor . ord |
2023-02-17 21:35:11 +0100 | <tomsmeding> | gqplox[m]: j = xor `on` ord, where 'on' is from Data.Function |
2023-02-17 21:36:05 +0100 | <gqplox[m]> | @pl (^) x y = chr $ ord (x) xor ord (y) |
2023-02-17 21:36:05 +0100 | <lambdabot> | (line 1, column 10): |
2023-02-17 21:36:05 +0100 | <lambdabot> | unexpected " " |
2023-02-17 21:36:06 +0100 | <lambdabot> | expecting operator |
2023-02-17 21:36:21 +0100 | <akegalj> | tomsmeding: maybe you could create a button/tab when clicked opens "configuration" view with advanced options. So there will be one view with text editor, basic-most-used options and output like its now and one with advanced configurations (where text editor and output are hidden) |
2023-02-17 21:36:22 +0100 | <tomsmeding> | gqplox[m]: @pl takes an expression, start with \x y -> ... |
2023-02-17 21:36:35 +0100 | <tomsmeding> | also don't forget the ` around xor |
2023-02-17 21:37:16 +0100 | <tomsmeding> | gqplox[m]: but really, the kind of stuff that @pl tends to create is purely for playing around; it very rarely makes code easier to read |
2023-02-17 21:37:57 +0100 | <geekosaur> | they didn't forget the backtick; the matrix bridge mangled it |
2023-02-17 21:37:57 +0100 | <tomsmeding> | akegalj: or perhaps an additional toolbar below the current one, possibly higher than the current one, with extra stuff on it? |
2023-02-17 21:38:02 +0100 | <tomsmeding> | that is toggleable |
2023-02-17 21:38:07 +0100 | <tomsmeding> | geekosaur: >.> |
2023-02-17 21:38:40 +0100 | <akegalj> | tomsmeding: tabs like this might work http://phrogz.net/JS/Tabtastic/index.html#overview |
2023-02-17 21:38:42 +0100 | <tomsmeding> | gqplox[m]: see also https://wiki.haskell.org/Pointfree |
2023-02-17 21:39:37 +0100 | <kaol> | Also known as pointless. |
2023-02-17 21:39:45 +0100 | <tomsmeding> | (hence the name of @pl) |
2023-02-17 21:41:47 +0100 | <mauke> | gqplox[m]: https://en.wikipedia.org/wiki/Lambda_calculus#Abstraction_elimination |
2023-02-17 21:42:10 +0100 | <mauke> | gqplox[m]: also https://en.wikipedia.org/wiki/Combinatory_logic#Combinators_B,_C |
2023-02-17 21:42:32 +0100 | <tomsmeding> | akegalj: I'm not sure I'm a fan of putting the whole interface in a tab, making all of it invisible when you open the "advanced" screen. But thanks for the suggestion, it's a neat lightweight tab lib, going to keep it in mind if I do something similar later |
2023-02-17 21:42:36 +0100 | <mauke> | in haskell terms, S = ap, K = const, I = id, C = flip, B = (.) |
2023-02-17 21:43:00 +0100 | opticblast | (~Thunderbi@172.58.82.191) |
2023-02-17 21:43:09 +0100 | <gqplox[m]> | woah cool, i didn't know about on |
2023-02-17 21:43:13 +0100 | <kaol> | http://dirk.rave.org/combinatris/ |
2023-02-17 21:43:38 +0100 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:f002:5d43:99c2:753f) (Quit: use-value) |
2023-02-17 21:43:38 +0100 | <gqplox[m]> | ah thanks, ill look into this |
2023-02-17 21:44:16 +0100 | <akegalj> | tomsmeding: additional toolbar as you suggested might work. Just don't make it look like ms word :D |
2023-02-17 21:44:24 +0100 | <tomsmeding> | akegalj: that's the danger |
2023-02-17 21:45:24 +0100 | <tomsmeding> | kaol: that's hilarious |
2023-02-17 21:47:27 +0100 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 255 seconds) |
2023-02-17 21:49:27 +0100 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) |
2023-02-17 22:01:35 +0100 | merijn | (~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) |
2023-02-17 22:01:42 +0100 | kenran` | (~user@user/kenran) |
2023-02-17 22:02:03 +0100 | kenran` | (~user@user/kenran) (Remote host closed the connection) |
2023-02-17 22:04:04 +0100 | dcoutts_ | (~duncan@host86-167-90-212.range86-167.btcentralplus.com) |
2023-02-17 22:04:41 +0100 | kenran | (~user@user/kenran) (Ping timeout: 252 seconds) |
2023-02-17 22:06:28 +0100 | atwm | (~atwm@82.180.149.97) |
2023-02-17 22:08:15 +0100 | pavonia | (~user@user/siracusa) |
2023-02-17 22:08:32 +0100 | atwm | (~atwm@82.180.149.97) (Remote host closed the connection) |
2023-02-17 22:10:19 +0100 | <gqplox[m]> | whats the best way to make Int the default in ghci? |
2023-02-17 22:12:05 +0100 | <geekosaur> | `default (Int, Double)` (or look up the one used by ExtendedDefaultRules and replace Integer with Int) |
2023-02-17 22:12:53 +0100 | <gqplox[m]> | thank you |
2023-02-17 22:13:39 +0100 | <mauke> | echo 'default (Int)' >> ~/.ghci |
2023-02-17 22:14:23 +0100 | ddellacosta | (~ddellacos@146.70.185.10) |
2023-02-17 22:14:55 +0100 | <gqplox[m]> | oh cool i didn't know that |
2023-02-17 22:15:09 +0100 | <gqplox[m]> | what stuff do you have in your .ghci? |
2023-02-17 22:15:35 +0100 | lackita | (~user@73.114.250.252) |
2023-02-17 22:16:07 +0100 | <tomsmeding> | https://tomsmeding.com/vang/uLnyvc/.ghci |
2023-02-17 22:16:21 +0100 | <lackita> | Hey, trying to figure out what code formatter to use and getting a little overwhelmed by the number of choices. What do y'all recommend? |
2023-02-17 22:17:15 +0100 | <geekosaur> | none |
2023-02-17 22:17:17 +0100 | <geekosaur> | 🙂 |
2023-02-17 22:17:19 +0100 | <mauke> | cat |
2023-02-17 22:17:39 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-02-17 22:17:50 +0100 | <tomsmeding> | potentially grep -v '^#' |
2023-02-17 22:18:26 +0100 | <darkling> | mauke: That's fine, until it pushes all the column headings off your table. |
2023-02-17 22:18:55 +0100 | <mauke> | l'; gjigsgurq3y2` |
2023-02-17 22:20:18 +0100 | <lackita> | ah, I thought that might be the answer :D |
2023-02-17 22:23:46 +0100 | <gqplox[m]> | if i have a list of bools, and I want to find how many are true, what should i do |
2023-02-17 22:24:06 +0100 | <gqplox[m]> | i used length and filter id but i saw sum and from Enum online |
2023-02-17 22:24:17 +0100 | tomsmeding | was going to suggest precisely those two options |
2023-02-17 22:24:36 +0100 | <gqplox[m]> | will they be equally fast? |
2023-02-17 22:24:48 +0100 | khumba | (~khumba@user/khumba) () |
2023-02-17 22:25:53 +0100 | <mauke> | I'd question why you have a list of bools in the first place |
2023-02-17 22:26:59 +0100 | <gqplox[m]> | here is my function... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/91cc6b7e59001edf286c8a1d192f556d4de2…>) |
2023-02-17 22:27:10 +0100 | <tomsmeding> | gqplox[m]: if I compile them then after ghc's optimiser they literally call into the same function |
2023-02-17 22:27:46 +0100 | <tomsmeding> | (which is actually pretty cool) |
2023-02-17 22:27:53 +0100 | <kaol> | GHC is crazy good at this kind of stuff. |
2023-02-17 22:28:11 +0100 | <tomsmeding> | for reference: in https://play-haskell.tomsmeding.com/saved/A4hfLVQ7 , both f and g end up calling $wgo1_r15I |
2023-02-17 22:28:22 +0100 | <tomsmeding> | kaol: I'm most surprised that's actually deduplicated the workers |
2023-02-17 22:28:32 +0100 | <tomsmeding> | *that it's |
2023-02-17 22:29:01 +0100 | <eldritchcookie[m> | i finally found a use case for backpack, it can shield you from instances |
2023-02-17 22:29:41 +0100 | <eldritchcookie[m> | so you can import a module without bringing its instances in scope |
2023-02-17 22:30:14 +0100 | <gqplox[m]> | oh cool, that's interesting |
2023-02-17 22:30:22 +0100 | lackita | (~user@73.114.250.252) (Ping timeout: 246 seconds) |
2023-02-17 22:30:28 +0100 | <gqplox[m]> | thx for the website too, didn't know about that |
2023-02-17 22:30:35 +0100 | <gqplox[m]> | wait you made it? |
2023-02-17 22:31:16 +0100 | <tomsmeding> | yes :) |
2023-02-17 22:31:50 +0100 | <tomsmeding> | you're the second person tonight who said the playground is useful |
2023-02-17 22:32:24 +0100 | <gqplox[m]> | oh i just realised i didn't even need the filter id lol... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/739fdbc744be031151a0d7e5d224285d30a5…>) |
2023-02-17 22:33:48 +0100 | <gqplox[m]> | yeah its very cool |
2023-02-17 22:34:25 +0100 | <gqplox[m]> | oh cool you have the github link too, maybe after i get better i can read it and understand the code |
2023-02-17 22:34:48 +0100 | <tomsmeding> | gqplox[m]: there's lots of plumbing though, very few interesting haskell tricks |
2023-02-17 22:35:09 +0100 | merijn | (~merijn@c-001-001-009.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds) |
2023-02-17 22:35:35 +0100 | <tomsmeding> | between a webserver, job pools, page rendering, intricate linux sandboxing, and some IO, there's just a lot of "stuff" :p |
2023-02-17 22:36:55 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-02-17 22:38:50 +0100 | <gqplox[m]> | haha, well all the "stuff" sounds interesting too :) |
2023-02-17 22:39:28 +0100 | <tomsmeding> | potentially interesting tidbits: https://github.com/tomsmeding/play-haskell/blob/master/play-haskell-server/src/Data/Queue/Priority… ; https://github.com/tomsmeding/play-haskell/blob/master/snap-server-utils/src/Snap/Server/Utils/Exi… |
2023-02-17 22:39:54 +0100 | <tomsmeding> | the latter is most certainly already defined somewhere, but it's quite useful and I was too lazy to look up a usable library for it :p |
2023-02-17 22:40:09 +0100 | pescvilek | (~pescvilek@93-103-164-4.dynamic.t-2.net) |
2023-02-17 22:41:01 +0100 | tomsmeding | wonderes if ExitEarly is not just ContT with a few helper functions |
2023-02-17 22:41:41 +0100 | <c_wraith> | tomsmeding: not exactly, because r isn't quantified over |
2023-02-17 22:41:50 +0100 | <c_wraith> | wait, no. that's codensity |
2023-02-17 22:41:53 +0100 | <c_wraith> | ok, yes. |
2023-02-17 22:41:56 +0100 | <c_wraith> | It is the same |
2023-02-17 22:42:48 +0100 | dcoutts_ | (~duncan@host86-167-90-212.range86-167.btcentralplus.com) (Ping timeout: 255 seconds) |
2023-02-17 22:42:49 +0100 | <kaol> | I found "flip runContT return $ callCC $ \exit -> do ..." from my own code. |
2023-02-17 22:43:11 +0100 | pescvilek | slaps c_wraith around a bit with a large trout |
2023-02-17 22:43:17 +0100 | <c_wraith> | fair |
2023-02-17 22:44:26 +0100 | echoone | (~echoone@2a02:8109:a1c0:5d05:28c6:d9bf:bfde:b3ed) |
2023-02-17 22:47:26 +0100 | <tomsmeding> | kaol: sounds similar :p |
2023-02-17 22:47:52 +0100 | <pescvilek> | dcc |
2023-02-17 22:48:05 +0100 | <tomsmeding> | I don't really see through callCC well enough to know if it's exactly equivalent, but given the generality of the concepts here, it can hardly be something else |
2023-02-17 22:48:22 +0100 | <pescvilek> | techno |
2023-02-17 22:48:40 +0100 | <kaol> | Cont is the mother of all monads. Or so they say. |
2023-02-17 22:49:32 +0100 | <tomsmeding> | but the advantage of using ExitEarlyT is that you're sure nobody is mothering some monads around, they're just exiting early :) |
2023-02-17 22:49:47 +0100 | andrewboltachev | (~andrey@178.141.125.176) (Quit: Leaving.) |
2023-02-17 22:50:02 +0100 | <pescvilek> | rasist |
2023-02-17 22:51:16 +0100 | <mauke> | wow, actually on mIRC |
2023-02-17 22:51:29 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-02-17 22:51:50 +0100 | tomsmeding | is off to bed, see you all later |
2023-02-17 22:51:59 +0100 | <tomsmeding> | good luck with the spammer |
2023-02-17 22:54:11 +0100 | <pescvilek> | ! |
2023-02-17 22:58:12 +0100 | oldsk00l | (~znc@ec2-13-40-71-143.eu-west-2.compute.amazonaws.com) |
2023-02-17 22:59:00 +0100 | michalz | (~michalz@185.246.207.203) (Remote host closed the connection) |
2023-02-17 23:02:27 +0100 | <ddellacosta> | are there any libraries other than beam or persistent that support multiple DBs, in particular (all of) sqlite, postgres, and mysql? |
2023-02-17 23:05:49 +0100 | echoone | (~echoone@2a02:8109:a1c0:5d05:28c6:d9bf:bfde:b3ed) (Quit: Client closed) |
2023-02-17 23:06:27 +0100 | <kaol> | HDBC at least. |
2023-02-17 23:07:08 +0100 | <ddellacosta> | kaol: thanks, never heard of that one |
2023-02-17 23:09:03 +0100 | docter_d | (~{docter_d@2001:9e8:33ef:3200:4883:8c68:e59c:6913) |
2023-02-17 23:09:57 +0100 | gurkenglas | (~gurkengla@82.113.98.93) (Ping timeout: 252 seconds) |
2023-02-17 23:12:30 +0100 | OscarZ | (~oscarz@95.175.104.39) (Quit: Leaving) |
2023-02-17 23:14:29 +0100 | notzmv | (~zmv@user/notzmv) |
2023-02-17 23:15:27 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Read error: Connection reset by peer) |
2023-02-17 23:18:48 +0100 | mncheckm | (~mncheck@193.224.205.254) (Ping timeout: 255 seconds) |
2023-02-17 23:19:15 +0100 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2023-02-17 23:20:33 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2023-02-17 23:21:09 +0100 | <raehik> | As a library author writing some Generics, should I allow deriving instances for V1 (which would fail at runtime), or give a type error? |
2023-02-17 23:21:44 +0100 | <raehik> | I started thinking the latter, but now I keep flip-flopping and I don't have a good corpus of generic code to inspect |
2023-02-17 23:21:53 +0100 | pavonia | (~user@user/siracusa) |
2023-02-17 23:22:46 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-02-17 23:24:48 +0100 | pwug | (~pwug@user/pwug) (Quit: Leaving) |
2023-02-17 23:27:14 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 255 seconds) |
2023-02-17 23:33:26 +0100 | <c_wraith> | raehik: if the instance just can't exist, structurally, that seems like a great reason for a compile error |
2023-02-17 23:36:29 +0100 | docter_d | (~{docter_d@2001:9e8:33ef:3200:4883:8c68:e59c:6913) (Quit: Leaving) |
2023-02-17 23:38:19 +0100 | <raehik> | c_wraith: thanks, yeah. I might make an issue on aeson and ask them why they write compiling instance to sate my uncertainty |
2023-02-17 23:39:09 +0100 | gdown | (~gavin@69.11.148.35) |
2023-02-17 23:47:07 +0100 | <stefan-_> | is it possible to use variables inside pcre-heavy `re` quasiquoter? |
2023-02-17 23:47:44 +0100 | <stefan-_> | e.g. sth like [re|foo${key}bar|] |
2023-02-17 23:50:08 +0100 | dolio | (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-02-17 23:51:45 +0100 | dolio | (~dolio@130.44.134.54) |
2023-02-17 23:51:47 +0100 | <geekosaur> | doesn't look like it |
2023-02-17 23:52:32 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-02-17 23:52:41 +0100 | <geekosaur> | also, doesn't that kinda defeat doing it at compile time? |
2023-02-17 23:53:47 +0100 | dolio | (~dolio@130.44.134.54) (Client Quit) |
2023-02-17 23:53:58 +0100 | <geekosaur> | it's running the regex `compile` step at compile time, no runtime values would be available to it |
2023-02-17 23:54:11 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-02-17 23:54:44 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-02-17 23:54:44 +0100 | dolio | (~dolio@130.44.134.54) |
2023-02-17 23:56:03 +0100 | falafel | (~falafel@2607:fb91:143f:e47f:1b14:6f43:b1d6:67f0) |
2023-02-17 23:57:45 +0100 | <stefan-_> | geekosaur, makes sense |
2023-02-17 23:58:08 +0100 | <stefan-_> | maybe I can use https://hackage.haskell.org/package/pcre-light-0.4.1.0/docs/Text-Regex-PCRE-Light.html#v:compile |
2023-02-17 23:58:48 +0100 | <stefan-_> | together with the `match` function then |