Logs on 2024-02-06 (liberachat/#haskell)
| 00:01:46 | → | ubert1 joins (~Thunderbi@p200300ecdf1f17e69387a4a1a7bc8e21.dip0.t-ipconnect.de) |
| 00:02:57 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 00:02:57 | × | ubert quits (~Thunderbi@p200300ecdf1f17a2e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 00:02:57 | ubert1 | is now known as ubert |
| 00:03:42 | → | euleritian joins (~euleritia@dynamic-176-005-154-182.176.5.pool.telefonica.de) |
| 00:04:04 | × | euleritian quits (~euleritia@dynamic-176-005-154-182.176.5.pool.telefonica.de) (Read error: Connection reset by peer) |
| 00:04:22 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 00:11:02 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 00:13:33 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
| 00:19:01 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 246 seconds) |
| 00:25:04 | × | Tuplanolla quits (~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:25:16 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 00:26:38 | → | rvalue joins (~rvalue@user/rvalue) |
| 00:26:44 | × | mud quits (~mud@user/kadoban) (Quit: quit) |
| 00:27:03 | → | mud joins (~mud@user/kadoban) |
| 00:36:27 | × | xff0x quits (~xff0x@2405:6580:b080:900:626d:bbc7:8995:51b8) (Ping timeout: 260 seconds) |
| 00:38:10 | → | xff0x joins (~xff0x@2405:6580:b080:900:626d:bbc7:8995:51b8) |
| 00:44:51 | × | mima quits (~mmh@aftr-62-216-211-50.dynamic.mnet-online.de) (Ping timeout: 260 seconds) |
| 00:57:17 | × | mud quits (~mud@user/kadoban) (Quit: quit) |
| 01:09:46 | × | xff0x quits (~xff0x@2405:6580:b080:900:626d:bbc7:8995:51b8) (Ping timeout: 246 seconds) |
| 01:11:52 | → | xff0x joins (~xff0x@2405:6580:b080:900:b52c:33c8:5337:f03e) |
| 01:13:23 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 01:18:54 | → | JordiGH joins (~jordi@user/jordigh) |
| 01:30:35 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 264 seconds) |
| 01:41:43 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
| 01:41:54 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 01:43:16 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:50:43 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 256 seconds) |
| 01:52:19 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 01:56:40 | → | JordiGH joins (~jordi@user/jordigh) |
| 02:01:18 | × | mmhat quits (~mmh@p200300f1c70328ebee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1) |
| 02:02:35 | → | TonyStone joins (~TonyStone@074-076-057-186.res.spectrum.com) |
| 02:13:25 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 272 seconds) |
| 02:21:23 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 02:24:29 | × | otto_s quits (~user@p5de2f1f9.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 02:26:34 | → | otto_s joins (~user@p5b044c4b.dip0.t-ipconnect.de) |
| 02:52:41 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 272 seconds) |
| 02:58:57 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:04:16 | × | mei quits (~mei@user/mei) (Ping timeout: 276 seconds) |
| 03:16:58 | → | JordiGH joins (~jordi@user/jordigh) |
| 03:27:01 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 276 seconds) |
| 03:35:28 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 276 seconds) |
| 03:38:58 | × | td_ quits (~td@i53870920.versanet.de) (Ping timeout: 264 seconds) |
| 03:40:42 | → | td_ joins (~td@i53870914.versanet.de) |
| 03:43:44 | → | rvalue joins (~rvalue@user/rvalue) |
| 03:45:56 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
| 03:49:51 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds) |
| 03:54:49 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 04:00:48 | × | TonyStone quits (~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving) |
| 04:10:49 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
| 04:12:56 | → | jle` joins (~jle`@2603-8001-3b02-84d4-658e-bfb3-e53b-7a11.res6.spectrum.com) |
| 04:17:13 | × | igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1) |
| 04:27:16 | → | bilegeek joins (~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f) |
| 04:32:19 | → | mmohammadi9812 joins (~mohammad@85.185.33.112) |
| 04:32:42 | × | jle` quits (~jle`@2603-8001-3b02-84d4-658e-bfb3-e53b-7a11.res6.spectrum.com) (Quit: WeeChat 4.2.1) |
| 04:36:13 | → | jle` joins (~jle`@2603-8001-3b02-84d4-658e-bfb3-e53b-7a11.res6.spectrum.com) |
| 04:45:40 | × | statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Read error: Connection reset by peer) |
| 04:45:40 | → | statusbot5 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 04:54:12 | → | aforemny joins (~aforemny@2001:9e8:6ce5:8100:8057:709d:76c5:eec) |
| 04:54:23 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 04:55:37 | × | aforemny_ quits (~aforemny@2001:9e8:6cc1:3e00:6eba:7874:227:7b7c) (Ping timeout: 260 seconds) |
| 05:01:10 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 05:22:37 | → | jargon joins (~jargon@123.sub-174-205-225.myvzw.com) |
| 05:32:17 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
| 05:32:52 | → | igemnace joins (~ian@user/igemnace) |
| 05:34:23 | × | mmohammadi9812 quits (~mohammad@85.185.33.112) (Remote host closed the connection) |
| 05:35:44 | <lockywolf> | How can I set up my own hackage server? |
| 05:36:01 | <lockywolf> | Is there some guide? |
| 05:36:07 | × | mulk quits (~mulk@pd9514313.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 05:37:05 | → | mulk joins (~mulk@pd9514313.dip0.t-ipconnect.de) |
| 05:55:09 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:04:01 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 06:04:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:05:12 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:09:20 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 06:10:38 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:11:33 | × | bilegeek quits (~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f) (Quit: Leaving) |
| 06:11:39 | × | monochrom quits (trebla@216.138.220.146) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in) |
| 06:13:25 | × | echoreply quits (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) (Quit: WeeChat 2.8) |
| 06:14:47 | → | echoreply joins (~echoreply@45.32.163.16) |
| 06:16:58 | <[exa]> | lockywolf: more of a mirror or your own package set? |
| 06:17:10 | <[exa]> | (anyway- https://hackage.haskell.org/package/hackage-server ) |
| 06:17:14 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:17:53 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 06:18:18 | → | euleritian joins (~euleritia@dynamic-176-006-199-097.176.6.pool.telefonica.de) |
| 06:18:58 | <lockywolf> | there is a bug in hackage I need to fix |
| 06:19:50 | × | pastly quits (~pastly@gateway/tor-sasl/pastly) (Ping timeout: 255 seconds) |
| 06:20:12 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:20:13 | <[exa]> | lockywolf: in the actual hackage server or in one of the packages? |
| 06:20:36 | <lockywolf> | what does "in one of the packages" mean? |
| 06:20:52 | <[exa]> | e.g. you installed a package from hackage and it has a bug, so you want to patch it |
| 06:21:02 | <lockywolf> | no, I need to patch the hackage server |
| 06:21:21 | <lockywolf> | otherwise I would have said "a bug in a haskell package" |
| 06:21:26 | <[exa]> | ah ok, at that point that's the `hackage-server` package. I guess they accept pull requests somewhere |
| 06:22:10 | → | zetef joins (~quassel@95.77.17.251) |
| 06:22:44 | → | pastly joins (~pastly@gateway/tor-sasl/pastly) |
| 06:24:20 | <lockywolf> | they do, but is there a guide somewhere how to run it? |
| 06:24:28 | <lockywolf> | what database does it use? |
| 06:24:32 | <lockywolf> | which webserver? |
| 06:24:40 | <lockywolf> | or directory structure |
| 06:24:50 | → | monochrom joins (trebla@216.138.220.146) |
| 06:26:06 | <[exa]> | lockywolf: not really explicitly but the github readme looks like it should work |
| 06:31:47 | × | mjs2600 quits (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Ping timeout: 264 seconds) |
| 06:33:19 | → | chomwitt joins (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) |
| 06:36:08 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 06:36:19 | × | euleritian quits (~euleritia@dynamic-176-006-199-097.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:36:37 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:37:15 | → | pruiz joins (~user@user/pruiz) |
| 06:44:10 | → | bilegeek joins (~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f) |
| 06:48:23 | × | CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:51:48 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 06:53:20 | × | chomwitt quits (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 06:57:15 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 06:57:45 | → | michalz joins (~michalz@185.246.207.193) |
| 06:59:22 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:01:39 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 07:01:44 | → | luna joins (bittin@triton.blinkenshell.org) |
| 07:05:38 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 07:11:02 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:11:25 | × | Luj quits (~Luj@2a01:e0a:5f9:9681:d6b1:fcd4:d7da:98b5) (Quit: Ping timeout (120 seconds)) |
| 07:11:43 | → | Luj joins (~Luj@2a01:e0a:5f9:9681:8e63:773e:be95:32c0) |
| 07:14:21 | × | michalz quits (~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:17:13 | → | michalz joins (~michalz@185.246.207.222) |
| 07:18:42 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:18:45 | × | todi quits (~todi@p5dca5fa8.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 07:19:11 | → | Flow joins (~none@gentoo/developer/flow) |
| 07:21:10 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 07:22:50 | → | mei joins (~mei@user/mei) |
| 07:23:06 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 07:25:13 | <lisbeths> | Pls show your support for #lambdacalculus an anonymous untyped community |
| 07:33:34 | → | mjs2600 joins (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) |
| 07:35:13 | × | zetef quits (~quassel@95.77.17.251) (Ping timeout: 264 seconds) |
| 07:44:32 | → | acidjnk_new joins (~acidjnk@p200300d6e737e717c47e0b6ac190db01.dip0.t-ipconnect.de) |
| 07:53:21 | → | xdminsy joins (~xdminsy@117.147.71.221) |
| 07:57:22 | → | mima joins (~mmh@aftr-62-216-211-243.dynamic.mnet-online.de) |
| 08:02:07 | → | chomwitt joins (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) |
| 08:03:36 | → | cstml joins (~cstml@user/cstml) |
| 08:04:23 | × | cstml quits (~cstml@user/cstml) (Client Quit) |
| 08:04:42 | → | cstml joins (~cstml@user/cstml) |
| 08:05:11 | → | CiaoSen joins (~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03) |
| 08:07:04 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:07:17 | → | todi joins (~todi@p5dca5fa8.dip0.t-ipconnect.de) |
| 08:09:43 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 08:12:45 | ← | luna parts (bittin@triton.blinkenshell.org) () |
| 08:12:49 | × | jargon quits (~jargon@123.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
| 08:14:08 | × | chomwitt quits (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 08:19:21 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:20:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:22:03 | → | danse-nr3 joins (~danse@rm-19-53-86.service.infuturo.it) |
| 08:22:05 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:22:19 | → | mobounce joins (~mobivme@104.28.194.106) |
| 08:26:56 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 08:27:18 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:28:02 | × | mobounce quits (~mobivme@104.28.194.106) (Max SendQ exceeded) |
| 08:28:40 | × | danse-nr3 quits (~danse@rm-19-53-86.service.infuturo.it) (Remote host closed the connection) |
| 08:29:04 | → | danse-nr3 joins (~danse@rm-19-53-86.service.infuturo.it) |
| 08:29:51 | → | fendor joins (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
| 08:31:26 | → | chomwitt joins (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) |
| 08:31:28 | × | chomwitt quits (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 08:31:35 | → | mobounce joins (~mobivme@104.28.194.106) |
| 08:31:45 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 08:33:15 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 08:40:55 | → | zetef joins (~quassel@95.77.17.251) |
| 08:45:13 | → | chomwitt joins (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) |
| 08:47:01 | × | chomwitt quits (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
| 08:47:51 | × | danse-nr3 quits (~danse@rm-19-53-86.service.infuturo.it) (Ping timeout: 260 seconds) |
| 08:48:15 | → | danse-nr3 joins (~danse@rm-19-53-86.service.infuturo.it) |
| 08:52:35 | → | chele joins (~chele@user/chele) |
| 08:54:33 | × | zetef quits (~quassel@95.77.17.251) (Ping timeout: 260 seconds) |
| 08:56:30 | → | mobivme- joins (~mobivme@104.28.194.104) |
| 08:56:39 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 08:59:35 | × | mobounce quits (~mobivme@104.28.194.106) (Ping timeout: 252 seconds) |
| 09:06:39 | <ncf> | this is getting old |
| 09:08:07 | × | xdminsy quits (~xdminsy@117.147.71.221) (Read error: Connection reset by peer) |
| 09:08:53 | × | cstml quits (~cstml@user/cstml) (Ping timeout: 256 seconds) |
| 09:09:20 | → | xdminsy joins (~xdminsy@117.147.71.221) |
| 09:15:26 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 09:16:09 | → | lortabac joins (~lortabac@217.110.194.173) |
| 09:17:07 | × | danse-nr3 quits (~danse@rm-19-53-86.service.infuturo.it) (Ping timeout: 255 seconds) |
| 09:18:06 | → | danse-nr3 joins (~danse@151.46.181.213) |
| 09:19:07 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds) |
| 09:20:48 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 09:23:08 | × | tzh quits (~tzh@71.193.181.0) (Quit: zzz) |
| 09:28:58 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 09:29:44 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 09:30:23 | × | lortabac quits (~lortabac@217.110.194.173) (Ping timeout: 252 seconds) |
| 09:37:11 | → | Square joins (~Square@user/square) |
| 09:38:32 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 09:39:17 | × | ubert quits (~Thunderbi@p200300ecdf1f17e69387a4a1a7bc8e21.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 09:39:26 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 09:39:47 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:42:32 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:44:26 | → | gentauro joins (~gentauro@user/gentauro) |
| 09:44:26 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:46:53 | × | danse-nr3 quits (~danse@151.46.181.213) (Ping timeout: 240 seconds) |
| 09:53:41 | → | danse-nr3 joins (~danse@151.46.181.213) |
| 09:56:21 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds) |
| 09:58:31 | → | adam-fuks joins (~adam-fuks@public-gprs567556.centertel.pl) |
| 10:02:43 | → | lortabac joins (~lortabac@217.110.194.173) |
| 10:10:13 | → | ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:c58d:d2f7:44e:5132) |
| 10:11:28 | × | ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:c58d:d2f7:44e:5132) (Remote host closed the connection) |
| 10:16:51 | → | ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:b79d:3d5b:19c8:ce18) |
| 10:22:12 | → | Square3 joins (~Square4@user/square) |
| 10:23:57 | × | Square3 quits (~Square4@user/square) (Client Quit) |
| 10:24:26 | × | bilegeek quits (~bilegeek@2600:1008:b000:5ca6:a62a:d932:f340:351f) (Quit: Leaving) |
| 10:24:26 | → | Square3 joins (~Square4@user/square) |
| 10:25:15 | × | Square quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 10:32:10 | → | mmhat joins (~mmh@p200300f1c70328ebee086bfffe095315.dip0.t-ipconnect.de) |
| 10:34:05 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 10:34:22 | → | euleritian joins (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) |
| 10:40:46 | → | santiagopim joins (~user@90.167.66.131) |
| 10:45:58 | → | mmohammadi9812 joins (~mohammad@85.185.33.238) |
| 10:50:12 | → | __monty__ joins (~toonn@user/toonn) |
| 10:51:59 | × | lortabac quits (~lortabac@217.110.194.173) (Ping timeout: 260 seconds) |
| 10:57:33 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 10:58:44 | × | euleritian quits (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:59:02 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:02:26 | → | zetef joins (~quassel@95.77.17.251) |
| 11:02:47 | × | puke quits (~puke@user/puke) (Ping timeout: 252 seconds) |
| 11:06:55 | × | zetef quits (~quassel@95.77.17.251) (Ping timeout: 255 seconds) |
| 11:08:58 | × | mmohammadi9812 quits (~mohammad@85.185.33.238) (Ping timeout: 246 seconds) |
| 11:12:27 | → | puke joins (~puke@user/puke) |
| 11:16:57 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 11:17:38 | → | euleritian joins (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) |
| 11:24:00 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 11:24:29 | × | euleritian quits (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 11:24:35 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 11:24:47 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:24:47 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 11:26:14 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 11:26:30 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
| 11:26:35 | × | CiaoSen quits (~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds) |
| 11:27:47 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:28:13 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:31:42 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 11:32:02 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 11:32:41 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 11:33:39 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:40:08 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:49:28 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:50:28 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 11:52:48 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:53:39 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 12:06:13 | × | danse-nr3 quits (~danse@151.46.181.213) (Ping timeout: 272 seconds) |
| 12:15:03 | × | foul_owl quits (~kerry@185.216.231.179) (Ping timeout: 260 seconds) |
| 12:18:15 | × | mei quits (~mei@user/mei) (Ping timeout: 272 seconds) |
| 12:28:16 | → | foul_owl joins (~kerry@174-21-148-34.tukw.qwest.net) |
| 12:29:01 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 12:29:21 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 12:29:37 | → | euleritian joins (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) |
| 12:33:50 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 12:34:33 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 12:35:40 | × | euleritian quits (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:35:57 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 12:36:32 | → | danse-nr3 joins (~danse@151.57.19.6) |
| 12:46:58 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 12:47:47 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 12:49:46 | <haskellbridge> | <Jade> why is this happening: |
| 12:49:48 | <haskellbridge> | <Jade> readFile "foo" >>= \x -> appendFile "foo" "lol" |
| 12:49:49 | <haskellbridge> | <Jade> *** Exception: foo: withFile: resource busy (file is locked) |
| 12:50:06 | <lyxia> | lazy IO is happening |
| 12:50:26 | <haskellbridge> | <Jade> (using `readFile'` has the same exact exception |
| 12:50:52 | <lyxia> | someone else is using that file |
| 12:50:59 | <haskellbridge> | <Jade> nope |
| 12:51:07 | <haskellbridge> | <Jade> just the same process |
| 12:51:35 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 12:51:46 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 12:51:52 | <haskellbridge> | <Jade> they all work fine by themselves, but using `readFile "foo" >> appendFile "foo" whatever` fails |
| 12:52:04 | <mauke> | the readFile error is expected |
| 12:52:12 | → | euleritian joins (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) |
| 12:52:53 | <haskellbridge> | <Jade> the error is from the appendFile |
| 12:52:57 | <mauke> | yes |
| 12:53:06 | <sprout> | you probably need to close the file? |
| 12:53:12 | <mauke> | no |
| 12:53:13 | <int-e> | Yes because the file is still open to facilitate lazy IO. |
| 12:53:36 | <haskellbridge> | <Jade> `readFile'` uses `hGetContents'` which closes the file |
| 12:53:50 | <lyxia> | I just did readFile' "foo" >> appendFile "foo" "lol" and it worked. so, try that again? |
| 12:54:10 | <int-e> | The Haskell handle will be in a "semi-closed" state. |
| 12:54:27 | <mauke> | Jade: works here with readFile' |
| 12:54:44 | <int-e> | And readFile' doesn't do lazy IO. |
| 12:54:55 | × | igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer) |
| 12:55:05 | <haskellbridge> | <Jade> ... now it works too ... |
| 12:55:06 | <haskellbridge> | <Jade> but I can see in my ghci history that I did that exact thing but still got the error |
| 12:55:19 | <mauke> | did you do it immediately after the readFile attempt? |
| 12:55:32 | × | euleritian quits (~euleritia@dynamic-176-006-193-120.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:55:41 | <haskellbridge> | <Jade> I think so, so it might still have been semiClosed (?) |
| 12:55:51 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 12:55:58 | <mauke> | yeah, readFile still had the handle open |
| 12:56:08 | <haskellbridge> | <Jade> that makes sense, thank you |
| 12:59:11 | <haskellbridge> | <irregularsphere> prob lazy io |
| 12:59:54 | <haskellbridge> | <irregularsphere> i remember a function that's like `lazy deepseq` but i don't remember the name |
| 13:03:23 | <haskellbridge> | <irregularsphere> actually lazy . deepseq i think |
| 13:03:30 | <haskellbridge> | <irregularsphere> yeah i forgot the exact name |
| 13:03:41 | <haskellbridge> | <irregularsphere> definitely not lazy . deepseq though |
| 13:06:58 | <sprout> | did you change the contents of file 'foo' meanwhile? |
| 13:07:10 | <haskellbridge> | <irregularsphere> thanks sm for posting the link (https://www.fpcomplete.com/haskell/tutorial/all-about-strictness/) it's `force` |
| 13:07:11 | × | adam-fuks quits (~adam-fuks@public-gprs567556.centertel.pl) (Read error: Connection reset by peer) |
| 13:07:27 | <sprout> | when you make file foo empty it might just close the file immediately after a read |
| 13:07:34 | sprout | just guessing here |
| 13:08:09 | <haskellbridge> | <irregularsphere> i think he wants to read a file, append with something, write to file |
| 13:10:12 | <haskellbridge> | <irregularsphere> yea NFData ain't helping this time |
| 13:10:17 | <haskellbridge> | <irregularsphere> just do bangpatterns ig |
| 13:10:36 | <haskellbridge> | <irregularsphere> i'm clueless at this point sorry for the vacuous advice |
| 13:11:53 | → | igemnace joins (~ian@user/igemnace) |
| 13:14:16 | × | mobivme- quits (~mobivme@104.28.194.104) (Remote host closed the connection) |
| 13:14:51 | <danse-nr3> | i wrote this github.com/danse/prototypes/blob/master/Prototypes.hs#L20 long time ago when i had a similar problem. There could be a simpler solution |
| 13:15:44 | <tomsmeding> | danse-nr3: for lines 22-24 one has readFile' now since ghc 9 |
| 13:15:51 | → | mobivme joins (~mobivme@104.28.194.104) |
| 13:15:52 | × | mobivme quits (~mobivme@104.28.194.104) (Changing host) |
| 13:15:52 | → | mobivme joins (~mobivme@user/mobivme) |
| 13:15:58 | <tomsmeding> | and 25-28 looks like writeFile? |
| 13:16:42 | <danse-nr3> | not sure whether i already had readFile and writeFile at the times, but reading and writing were stepping on each other's feet. Some day i will try again, thanks |
| 13:18:50 | <danse-nr3> | oh had not noticed the ' |
| 13:18:57 | <tomsmeding> | yes the ' is essential |
| 13:19:02 | <danse-nr3> | yeah possibly readFile' is all that is needed now |
| 13:19:06 | <tomsmeding> | and is there since ghc 9 |
| 13:24:19 | → | mmohammadi9812 joins (~mohammad@85.185.32.173) |
| 13:27:51 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 13:28:32 | × | mobivme quits (~mobivme@user/mobivme) (Ping timeout: 252 seconds) |
| 13:29:11 | → | mobivme joins (~mobivme@130.105.162.31) |
| 13:31:17 | × | mmohammadi9812 quits (~mohammad@85.185.32.173) (Ping timeout: 252 seconds) |
| 13:32:02 | → | euleritian joins (~euleritia@dynamic-176-002-146-101.176.2.pool.telefonica.de) |
| 13:38:35 | × | euleritian quits (~euleritia@dynamic-176-002-146-101.176.2.pool.telefonica.de) (Read error: Connection reset by peer) |
| 13:38:42 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 13:38:52 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 13:40:18 | → | underlap joins (~underlap@50.224.125.91.dyn.plus.net) |
| 13:43:45 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 13:44:17 | → | euleritian joins (~euleritia@176.2.146.101) |
| 13:44:39 | × | euleritian quits (~euleritia@176.2.146.101) (Read error: Connection reset by peer) |
| 13:44:57 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 13:56:34 | → | adam-fuks joins (~adam-fuks@public-gprs567556.centertel.pl) |
| 13:56:54 | <underlap> | I'm trying to understand type inference in Haskell. The wiki page (https://wiki.haskell.org/Type_inference|) talks only about inferring concrete types. But sometimes non-concrete types are inferred. For example, if `f :: Num a => a -> a`, then `map f :: Num a => [a] -> [a]`, so the compiler has inferred the type of `map f` without any concrete |
| 13:56:55 | <underlap> | types being involved. Does anyone know of a better explanation of type inference in Haskell? In searching, I found some pretty deep/impenetrable papers, but not much else. |
| 14:00:08 | × | mobivme quits (~mobivme@130.105.162.31) (Changing host) |
| 14:00:08 | → | mobivme joins (~mobivme@user/mobivme) |
| 14:00:49 | → | newsham joins (~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com) |
| 14:02:38 | <kuribas> | underlap: you can think of constraint resolution as being separate of type inference. |
| 14:03:24 | <kuribas> | underlap: first you infer types using HM, then later you verify the constraints. |
| 14:05:48 | <kuribas> | underlap: or do you mean type variables? What would be the inferred type of "id x = x" without type variables? |
| 14:05:55 | → | CiaoSen joins (~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03) |
| 14:06:11 | <newsham> | If you wanted to define a function like `f :: (Bounded a, Bounded b) => Int -> (a, b)`, is haskell's type system powerful enough to let you call the `minBound` function parameterized by the `Bounded a` and `Bounded b` types?. Haskell resolves the types for a and b and the dictionaries for Bounded a and Bounded b, but how could you reference them |
| 14:06:12 | <newsham> | inside a function definition? |
| 14:07:31 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 256 seconds) |
| 14:07:50 | × | danse-nr3 quits (~danse@151.57.19.6) (Remote host closed the connection) |
| 14:08:13 | → | danse-nr3 joins (~danse@151.57.19.6) |
| 14:09:07 | <kuribas> | newsham: just call the minBound function? |
| 14:09:24 | <kuribas> | it will take the function from the dictionary based on the inferred type. |
| 14:09:24 | → | mechap joins (~mechap@user/mechap) |
| 14:09:30 | <underlap> | kuribas: I think I understand type variables. I'm not sure I understand the sequence you describe. Are you saying my example demonstrates constraint resolution? That seems to be before (concrete) types are inferred in this case. |
| 14:09:55 | <kuribas> | underlap: by concrete you mean monomorphic? |
| 14:10:49 | <underlap> | I guess so, but I'm actually using the term from the wiki page on type inference. |
| 14:11:14 | <ncf> | that page is not very precise |
| 14:11:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:11:24 | <underlap> | ncf: tell me about it :-) |
| 14:11:57 | <mauke> | :t let f n | n == (0 :: Int) = (minBound, minBound) in f |
| 14:11:58 | <lambdabot> | (Bounded a, Bounded b) => Int -> (a, b) |
| 14:12:11 | <kuribas> | underlap: Why would you expect it to infer a monomorphic type, when the function is polymorphic? |
| 14:12:21 | × | hippoid quits (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Ping timeout: 260 seconds) |
| 14:12:37 | <kuribas> | underlap: HM inference can infer polymorphic functions. |
| 14:12:54 | <kuribas> | but not rank-N polymorphism. |
| 14:13:00 | <underlap> | ncf: I'm looking for a decent definition of type inference that doesn't involve deep HM papers or 23-part series of articles ;-) |
| 14:13:08 | <ncf> | https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system ? |
| 14:13:13 | <kuribas> | underlap: well, it infers the type :) |
| 14:13:25 | <kuribas> | underlap: if you don't give a type, it will find it from the context. |
| 14:13:49 | <kuribas> | underlap: the way this works is similar to unification in prolog, if you are familiar with that. |
| 14:14:04 | <underlap> | kuribas: I'm not expecting it to infer a monomorphic type. That's the wiki's idea. |
| 14:14:09 | <newsham> | mauke: sure, but can the function be constructed polymorphically? |
| 14:14:12 | → | hippoid joins (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) |
| 14:14:16 | <mauke> | newsham: ?? |
| 14:14:42 | <underlap> | kuribas: I'm not familiar with prolog. (I only dipped my toe in 30+ years ago) |
| 14:15:45 | <kuribas> | underlap: well, the definition is just that it gives you the type if you give it none. |
| 14:16:15 | × | billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
| 14:16:18 | → | mei joins (~mei@user/mei) |
| 14:16:23 | × | poscat quits (~poscat@user/poscat) (Ping timeout: 252 seconds) |
| 14:18:36 | <newsham> | mauke: notice my original signature `f :: (Bounded a, Bounded b) => Int -> (a, b)` has different a and b. |
| 14:18:50 | <newsham> | and not a return type of (Int, Int) |
| 14:19:06 | <newsham> | hmm.. i'm not asking my question well. |
| 14:19:27 | <newsham> | i'm trying to simpify the question and messing it up. |
| 14:19:28 | <mauke> | <+lambdabot> (Bounded a, Bounded b) => Int -> (a, b) |
| 14:19:39 | <mauke> | what's the difference? |
| 14:19:57 | <underlap> | kuribas: That's a start, but I don't think it's the whole definition. The big question is: which type does it (GHC or the Haskell standard, take your pick) infer in any given situation? (Presumably there are examples where it's not obvious without some understanding of the rules involved.) |
| 14:22:24 | <kuribas> | underlap: the most general type. But not including type extensions like rank-N types. |
| 14:25:17 | <underlap> | kuribas: thanks. I hope that "the most general type" is actually unique in any given situation. Must think more about this. Cheers. |
| 14:25:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:26:10 | <ncf> | it is as long as you stick with basic hindley-milner (so, rank-1 polymorphism) |
| 14:27:10 | <underlap> | ncf: that's good to know. If you have a reference for that, I'd appreciate it. |
| 14:27:38 | <newsham> | ok, lets say I want. `f :: (Bounded a, Bounded b) -> Either a b -> (a, b)` with `f _ = (minBound :: a, minBound :: b)` |
| 14:28:12 | <ncf> | underlap: https://en.wikipedia.org/wiki/Principal_type would be a start |
| 14:28:39 | <ncf> | newsham: are you okay with using GHC language extensions? |
| 14:28:44 | <newsham> | hmm.. no thats not a great way to ask this either.. hrm.. |
| 14:28:53 | <ncf> | if so, scoped type variables + explicit foralls + type applications should do it |
| 14:28:55 | <underlap> | ncf: nice! thank you |
| 14:29:18 | <newsham> | yes, haskell extensions are ok |
| 14:29:24 | <mauke> | :t let f x = case x of { Left a -> (a, minBound); Right b -> (minBound, b) } in f |
| 14:29:25 | <lambdabot> | (Bounded b, Bounded a) => Either a b -> (a, b) |
| 14:30:16 | <ncf> | that doesn't seem to fit the spec, mauke |
| 14:30:46 | <ncf> | wait... |
| 14:30:52 | <ncf> | you don't need extensions at all, sorry |
| 14:30:52 | × | underlap quits (~underlap@50.224.125.91.dyn.plus.net) (Quit: Client closed) |
| 14:31:49 | <ncf> | % f :: (Bounded a, Bounded b) => Either a b -> (a, b); f _ = (minBound, minBound) |
| 14:31:49 | <yahb2> | <no output> |
| 14:32:02 | <ncf> | this just works |
| 14:32:51 | <ncf> | newsham: were you asking how to do that without a type signature? |
| 14:33:19 | <newsham> | ok, let me stop trying to dumb down my question and just offer this: https://paste.tomsmeding.com/3BKn3FU4 |
| 14:33:19 | <newsham> | I'm trying to convert Enum/Boundeds, and pairs, and sums into integers. This is more of an exercise for myself than anything else. Since I cant pass around the type class dictionaries directly (at least not without a lot of work), I just started passing around dummy values as a type witness.. but that doesnt work when you get to sum types. |
| 14:34:15 | <newsham> | if haskell had something where I could reference a known type from the signature (ie `minBound :: a` where a is from the constraints) this would be easier. |
| 14:35:14 | <mauke> | it does: scoped type variables |
| 14:35:17 | × | mmhat quits (~mmh@p200300f1c70328ebee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 14:35:28 | <newsham> | so it sounds like thats what i'm asking about :) |
| 14:35:50 | <newsham> | i'll go read the manual on that. thank you. |
| 14:36:13 | <mauke> | https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/scoped_type_variables.html |
| 14:36:29 | × | infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection) |
| 14:38:12 | × | pruiz quits (~user@user/pruiz) (Remote host closed the connection) |
| 14:38:26 | → | pruiz joins (~user@user/pruiz) |
| 14:39:10 | <mauke> | :t let f x = minBound `asTypeOf` resultOf f where { resultOf :: (a -> b) -> b; resultOf = undefined } in f |
| 14:39:11 | <lambdabot> | Bounded a1 => a2 -> a1 |
| 14:39:21 | <mauke> | :t let f x = minBound `asTypeOf` resultOf x where { resultOf :: (a -> b) -> b; resultOf = undefined } in f |
| 14:39:22 | <lambdabot> | Bounded a1 => (a2 -> a1) -> a1 |
| 14:39:40 | → | infinity0 joins (~infinity0@pwned.gg) |
| 14:44:33 | × | acidjnk_new quits (~acidjnk@p200300d6e737e717c47e0b6ac190db01.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 14:46:37 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 14:47:42 | → | euleritian joins (~euleritia@dynamic-176-001-135-201.176.1.pool.telefonica.de) |
| 14:49:44 | → | mmhat joins (~mmh@p200300f1c7032843ee086bfffe095315.dip0.t-ipconnect.de) |
| 14:50:21 | × | mxs quits (~mxs@user/mxs) (Quit: The Lounge - https://thelounge.chat) |
| 14:51:35 | × | newsham quits (~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com) (Quit: Client closed) |
| 14:55:09 | → | rekahsoft joins (~rekahsoft@70.51.99.248) |
| 15:00:20 | → | newsham joins (~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com) |
| 15:00:25 | <newsham> | thank you, the scoped type variables are working well for me. |
| 15:04:45 | × | mima quits (~mmh@aftr-62-216-211-243.dynamic.mnet-online.de) (Ping timeout: 256 seconds) |
| 15:05:22 | × | EvanR quits (~EvanR@user/evanr) (Remote host closed the connection) |
| 15:06:03 | → | EvanR joins (~EvanR@user/evanr) |
| 15:10:47 | <tomsmeding> | I'm depending on a library exporting a data type with many constructors; in a recent new version, a new constructor was added. I'd like my code to work with both library versions, which is not a problem with CPP, but I'd like to restrict CPP to a small module in my code. Defining a pattern synonym there is annoying because I have to add a COMPLETE pragma with like 30 alternatives. Is there a |
| 15:10:49 | <tomsmeding> | better alternative that I'm missing? |
| 15:11:07 | → | zetef joins (~quassel@95.77.17.251) |
| 15:11:28 | × | bliminse quits (~bliminse@user/bliminse) (Ping timeout: 256 seconds) |
| 15:12:25 | × | danse-nr3 quits (~danse@151.57.19.6) (Ping timeout: 272 seconds) |
| 15:12:28 | × | pruiz quits (~user@user/pruiz) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)) |
| 15:12:46 | → | a51 joins (a51@gateway/vpn/protonvpn/a51) |
| 15:13:23 | → | bliminse joins (~bliminse@user/bliminse) |
| 15:13:53 | × | zetef quits (~quassel@95.77.17.251) (Remote host closed the connection) |
| 15:15:14 | × | mobivme quits (~mobivme@user/mobivme) (Ping timeout: 252 seconds) |
| 15:16:42 | → | danse-nr3 joins (~danse@151.57.19.6) |
| 15:17:09 | <newsham> | yay! thank you mauke! https://paste.tomsmeding.com/zKfjb7V6 |
| 15:23:18 | <newsham> | using undefined feels a little dirty.. but oh well. |
| 15:23:58 | <newsham> | is there a way to make a Numerate instance for Enum without wrapping the types? i tried using the undecidable instances but it blew up in my face. |
| 15:28:47 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:33:31 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 15:33:40 | <c_wraith> | newsham: You can avoid using undefined by changing the type of sizeW in several different ways. You could make it `proxy a -> Integer' or `(Integer, Proxy a)' to avoid using extensions. (The different capitalization is intentional) |
| 15:35:13 | <c_wraith> | newsham: or you can use several extensions so that you can define it as `sizeW :: Integer' and then your uses of it will look like `sizeW @(Wrap Bool)' or whatever |
| 15:36:38 | <newsham> | proxy makes sense. I dont understand the @(..). is that an extension? |
| 15:36:42 | <c_wraith> | Yes |
| 15:40:12 | <c_wraith> | You need AllowAmbiguousTypes for the definition to compile, and then TypeApplications for the use to compile |
| 15:40:24 | <newsham> | cool. changed to usiing proxy.. without the \@ extension. |
| 15:40:32 | <c_wraith> | makes sense |
| 15:40:48 | <newsham> | thank you |
| 15:41:21 | <newsham> | is there a reasonable way to do `instance forall a. (Enum a, Bounded a) => Numerate (Wrap a) where` without the Wrap? |
| 15:41:24 | <c_wraith> | And for your other question, no. There's no way to express "everything with an instance of Foo also has an instance of Bar" |
| 15:41:48 | <newsham> | i figured. oh well. |
| 15:42:05 | <c_wraith> | I've come around to thinking that's secretly a good thing, not just technically necessary. |
| 15:42:37 | <c_wraith> | It means types only have instances for stuff that is explicitly specified. |
| 15:43:13 | <c_wraith> | And I've run into some cases where it makes me very happy to know that instances don't just magically appear - you have to opt in |
| 15:44:44 | <newsham> | perhaps a better way would be for me to define Bounded and Enum over pairs and sums, and then write the numerate stuff as parametric polymorphic functions over bounded and enums.. |
| 15:45:53 | <newsham> | impl would be uglier but it wouldnt require wrapped stuff |
| 15:48:10 | <danse-nr3> | you can define instances implied by some other more specific class. For instance you could have that `instance MyClass => Bounded` and `instance MyClass => Enum`, if your class is more specific than those |
| 15:50:18 | <c_wraith> | danse-nr3: You really can't write `instance Foo a => Bar a' in a useful way. It overlaps everything, because instance heads aren't considered. (and can't be, for technical reasons) |
| 15:52:00 | <danse-nr3> | cool i think i saw it around but maybe i am mistaken |
| 15:52:29 | × | euleritian quits (~euleritia@dynamic-176-001-135-201.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
| 15:52:47 | → | euleritian joins (~euleritia@77.22.252.56) |
| 16:03:24 | → | acidjnk_new joins (~acidjnk@p200300d6e737e714747a0600998052c8.dip0.t-ipconnect.de) |
| 16:04:02 | <newsham> | oh, blah, I remember why i didnt want everything to be Enum.. because Enum converts to Int, not Integer. |
| 16:09:28 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 16:16:32 | → | JordiGH joins (~jordi@user/jordigh) |
| 16:17:17 | × | jelewis2 quits (~lewisje@74.215.19.22) (Ping timeout: 240 seconds) |
| 16:20:59 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
| 16:23:50 | → | joes_ joins (~joes@dyndsl-095-033-021-107.ewe-ip-backbone.de) |
| 16:25:17 | × | joes_ quits (~joes@dyndsl-095-033-021-107.ewe-ip-backbone.de) (Changing host) |
| 16:25:17 | → | joes_ joins (~joes@hardfought/member/joes) |
| 16:27:11 | <haskellbridge> | <Jade> c_wraith: isn't that often the case with list? i.e. `instance Eq a => Eq [a]` |
| 16:27:40 | <haskellbridge> | <Jade> ah no, that is another type entirely |
| 16:27:44 | <haskellbridge> | <Jade> mb |
| 16:29:44 | × | danse-nr3 quits (~danse@151.57.19.6) (Read error: Connection reset by peer) |
| 16:29:53 | → | danse-nr3 joins (~danse@151.43.36.55) |
| 16:30:08 | → | erty joins (~user@user/aeroplane) |
| 16:33:40 | × | newsham quits (~newsham@2603-800c-2c01-6825-0822-71ed-1aa2-f599.res6.spectrum.com) (Quit: Client closed) |
| 16:37:16 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 16:51:16 | × | CiaoSen quits (~Jura@2a05:5800:281:7e00:e6b9:7aff:fe80:3d03) (Ping timeout: 246 seconds) |
| 16:51:58 | ← | L29Ah parts (~L29Ah@wikipedia/L29Ah) () |
| 16:58:05 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 240 seconds) |
| 17:02:02 | × | todi quits (~todi@p5dca5fa8.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 17:02:39 | × | igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1) |
| 17:04:52 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 17:05:09 | × | danse-nr3 quits (~danse@151.43.36.55) (Ping timeout: 272 seconds) |
| 17:09:32 | → | benkard joins (~mulk@pd9514313.dip0.t-ipconnect.de) |
| 17:10:46 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 17:10:53 | × | ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:b79d:3d5b:19c8:ce18) (Remote host closed the connection) |
| 17:11:13 | × | mulk quits (~mulk@pd9514313.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 17:11:13 | benkard | is now known as mulk |
| 17:20:06 | × | joes_ quits (~joes@hardfought/member/joes) (Ping timeout: 268 seconds) |
| 17:20:49 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 17:21:59 | × | ec quits (~ec@gateway/tor-sasl/ec) (Read error: Connection reset by peer) |
| 17:22:37 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:25:26 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 17:26:41 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 17:28:36 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:33:19 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 17:33:55 | → | ursa-major joins (~ursa-majo@37.19.210.36) |
| 17:35:22 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 17:41:52 | → | JordiGH joins (~jordi@user/jordigh) |
| 17:42:30 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:43:14 | × | ursa-major quits (~ursa-majo@37.19.210.36) (Quit: WeeChat 4.2.1) |
| 17:44:09 | → | average joins (uid473595@user/average) |
| 17:44:56 | → | mima joins (~mmh@aftr-62-216-211-178.dynamic.mnet-online.de) |
| 17:51:41 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
| 17:53:07 | × | euphores quits (~SASL_euph@user/euphores) (Remote host closed the connection) |
| 17:55:20 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 17:57:05 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 272 seconds) |
| 17:57:43 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 272 seconds) |
| 17:58:08 | → | euleritian joins (~euleritia@dynamic-176-007-001-109.176.7.pool.telefonica.de) |
| 18:04:16 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 18:05:40 | → | chomwitt joins (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) |
| 18:06:04 | → | rvalue joins (~rvalue@user/rvalue) |
| 18:08:31 | → | aljazmc joins (~aljazmc@user/aljazmc) |
| 18:12:50 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 18:14:40 | × | fendor quits (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
| 18:15:01 | → | moixa joins (~moixa@customer-178-16-208-85.stosn.net) |
| 18:20:02 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
| 18:28:29 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 240 seconds) |
| 18:33:35 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 18:34:12 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 18:35:11 | → | pyooque joins (~puke@user/puke) |
| 18:35:11 | × | puke quits (~puke@user/puke) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 18:35:11 | pyooque | is now known as puke |
| 18:35:30 | <tri> | i have a quick question, is Free monad and Reader monad used regularly in Haskell? That is, they are not the more esoteric side of Haskell? |
| 18:35:30 | × | puke quits (~puke@user/puke) (Remote host closed the connection) |
| 18:35:50 | <tri> | I feel like Reader is the more practical one, how about Free monad? |
| 18:35:53 | <tri> | can i live without it? |
| 18:36:09 | → | puke joins (~puke@user/puke) |
| 18:36:20 | <geekosaur> | free monads are a technique used by some but not by others |
| 18:36:21 | <tri> | I just read briefly about them, so need to gauge to what extent i need to stay dig into them in detrail |
| 18:36:24 | <tri> | detail* |
| 18:36:25 | <geekosaur> | reader is used very widely |
| 18:37:00 | <tri> | thank you |
| 18:38:35 | <geekosaur> | free monads are most useful when you need to introspect the effects to be run within the monad, or want to be able to interpret effects in different monads |
| 18:39:21 | <geekosaur> | (an "effect" being, roughly, anything you would use >>= with) |
| 18:39:32 | <tomsmeding> | free monads have fairly specific uses |
| 18:39:53 | <tomsmeding> | most code will not use them at all, but for particular functionality they are very nice |
| 18:40:14 | <tomsmeding> | tri: the reader monad is a specific example of a monad and is much more generally applicable |
| 18:45:10 | <tri> | tomsmeding: thank you |
| 18:45:32 | <tri> | similar to Reader monad, Writer monad is also widely used right? (I haven't read about it yet) |
| 18:45:57 | <probie> | No, it's rarely used |
| 18:48:30 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 18:48:58 | <tri> | probie: thank you |
| 18:49:45 | <probie> | If we're being pedantic, `Reader` itself also isn't that common, it's the monad transformer `ReaderT` which is pervasive in the Haskell ecosystem (but you can worry about that when you get to monad transformers). |
| 18:52:43 | <tomsmeding> | I mean, whether Writer is used or not depends a bit on what kind of code you're writing |
| 18:53:20 | <tomsmeding> | if you're writing application software, i.e. "business logic" / "practical code", you're unlikely to see Writer(T) |
| 18:54:02 | <tomsmeding> | in things like a code analysis algorithm, it might occur a bit more often |
| 18:54:23 | <tomsmeding> | but Writer is a simple monad and a good one to practice your understanding of monads with |
| 18:54:37 | <tomsmeding> | the basic version, that is -- not the "CPS version" |
| 18:54:50 | <tomsmeding> | (the "CPS version" is just the state monad with different names on the functions) |
| 18:55:47 | <tomsmeding> | the basic Writer monad is essentially a logging monad, which is intuitive, so that is useful. In practice, if you want to do practical and scalable logging in haskell you'd use something different, but in the traditional functional way of "make it as simple as possible", Writer embodies the idea of "logging" |
| 18:57:53 | × | euleritian quits (~euleritia@dynamic-176-007-001-109.176.7.pool.telefonica.de) (Ping timeout: 272 seconds) |
| 18:58:30 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 18:59:24 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 18:59:43 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 19:04:37 | → | causal joins (~eric@50.35.85.7) |
| 19:04:44 | × | erty quits (~user@user/aeroplane) (Read error: Connection reset by peer) |
| 19:06:12 | <haskellbridge> | <Jade> am I being stupid or does `createFileLink` from the `directory` package not work with relative paths? |
| 19:06:18 | <haskellbridge> | <Jade> on linux* |
| 19:06:45 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 19:07:32 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
| 19:09:05 | → | pavonia joins (~user@user/siracusa) |
| 19:09:41 | <ncf> | works for me |
| 19:11:51 | <tomsmeding> | Jade: it probably just calls the linux syscall, meaning that the destination is relative _from the source_ |
| 19:11:56 | <tomsmeding> | not relative from your current working directory |
| 19:11:59 | <tomsmeding> | that may be tripping you up |
| 19:12:07 | <tomsmeding> | (this is the same behaviour as ln(1)) |
| 19:12:35 | × | Goodbye_Vincent quits (cyvahl@freakshells.net) (Ping timeout: 264 seconds) |
| 19:19:08 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection) |
| 19:19:19 | → | Pixi` joins (~Pixi@user/pixi) |
| 19:19:29 | → | Goodbye_Vincent joins (cyvahl@freakshells.net) |
| 19:20:01 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 19:22:38 | <mauke> | wasn't there an article somewhere about how Writer is always a space leak and should be replaced by State? |
| 19:22:44 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 252 seconds) |
| 19:23:15 | <tomsmeding> | it's why Control.Monad.Trans.Writer.CPS exists |
| 19:23:26 | <tomsmeding> | I remember something like that too |
| 19:24:16 | → | todi joins (~todi@p5dca5fa8.dip0.t-ipconnect.de) |
| 19:25:30 | <sprout> | https://stackoverflow.com/questions/7720929/space-leaks-and-writers-and-sums-oh-my ? |
| 19:25:44 | <probie> | > let f n = tell [n, n+1, n+2] >> f (n+1 :: Integer) in take 20 $ snd $ runWriter (f 1) |
| 19:25:46 | <lambdabot> | [1,2,3,2,3,4,3,4,5,4,5,6,5,6,7,6,7,8,7,8] |
| 19:27:39 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 19:30:41 | <probie> | I think "always a space leak" is a bit much. As long as you consume all the writer's output before looking at the eventual result, and `<>` isn't strict in its right argument for your output's monoid, it's probably fine |
| 19:32:38 | × | Goodbye_Vincent quits (cyvahl@freakshells.net) (Ping timeout: 252 seconds) |
| 19:33:03 | → | cstml joins (~cstml@user/cstml) |
| 19:34:07 | → | alycidyne joins (~kova@user/alycidyne) |
| 19:34:11 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 19:34:26 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 19:34:42 | <sprout> | only glancing at this. continuations should only move the work from the stack to the heap, isn't this that you need to force the writer to do something and that goes badly with lazy semantics? |
| 19:35:11 | <alycidyne> | Hello, can monads be used to implement a sort of debugger? I was thinking of tracing the different monad values |
| 19:36:47 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 19:40:04 | → | Goodbye_Vincent joins (cyvahl@freakshells.net) |
| 19:40:05 | <EvanR> | Writer and strict Writer both don't act like you would naively think coming from imperative language |
| 19:40:32 | <EvanR> | but the cool part is they have totally non-leaky ways to use them |
| 19:42:19 | <EvanR> | to get the strict updates like imperative programming you can use strict State |
| 19:44:33 | <alycidyne> | EvanR: I see, cool |
| 19:44:53 | <Franciman> | do you think monads in haskell are close to Moggi's original idea? |
| 19:45:54 | <EvanR> | alycidyne, Debug.Trace can print out intermediate values of your computation. ghci has a built-in traditional debugger. |
| 19:46:16 | <EvanR> | that I never learned how to use but it exists |
| 19:46:46 | <EvanR> | ghc-vis is another debugging-like tool |
| 19:47:21 | <mauke> | alycidyne: what do you mean by the monad values? |
| 19:47:35 | → | tri joins (~tri@24.187.239.26) |
| 19:48:09 | <geekosaur> | there's also ghcitui |
| 19:49:13 | × | xdminsy quits (~xdminsy@117.147.71.221) (Read error: Connection reset by peer) |
| 19:51:54 | <alycidyne> | mauke: I will have to go soon, but I assume that monads imply some sort of state threading, and that some magic to make this state accessible/visible would be possible |
| 19:52:05 | × | Goodbye_Vincent quits (cyvahl@freakshells.net) (Ping timeout: 260 seconds) |
| 19:52:07 | <alycidyne> | Then again, my understanding of monads is still fragile |
| 19:54:25 | <mauke> | consider that (->) e is a monad and hence (->) e r (better known as e -> r) is a "monadic action" |
| 19:54:45 | <geekosaur> | the only monad that involves state threading is ST |
| 19:55:32 | <ncf> | ?? |
| 19:55:48 | × | tri quits (~tri@24.187.239.26) (Ping timeout: 268 seconds) |
| 19:55:52 | <geekosaur> | unless you count StateT, which just passes and returns the "state" transparently |
| 19:56:13 | <geekosaur> | @unmtl State s a |
| 19:56:13 | <lambdabot> | s -> (a, s) |
| 19:56:18 | <mauke> | but in ST, the "state" is trivial :-) |
| 19:56:28 | × | cstml quits (~cstml@user/cstml) (Quit: WeeChat 4.1.1) |
| 19:56:54 | <EvanR> | in haskell we value the separation of church and state. Then monads mix them up again as values |
| 19:58:27 | <alycidyne> | I'll sadly have to go, but I've at least written this down, I'll have to get back to this |
| 19:58:39 | <alycidyne> | Thanks for the info nevertheless o/ |
| 19:59:28 | × | alycidyne quits (~kova@user/alycidyne) (Quit: leaving) |
| 19:59:46 | → | Goodbye_Vincent joins (cyvahl@freakshells.net) |
| 20:12:26 | × | duncan quits (~duncan@user/duncan) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:12:27 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 20:14:47 | <energizer> | is there a reason why ++ is a good name for the concatenation operator? |
| 20:15:25 | × | Goodbye_Vincent quits (cyvahl@freakshells.net) (Ping timeout: 264 seconds) |
| 20:16:39 | <EvanR> | because it concatenates the two operands? |
| 20:17:40 | <tomsmeding> | you can also use <> if you prefer |
| 20:18:11 | <energizer> | eg it's associative like * usually is but not commutative like + usually is, so i wouldve thought **, but ++ was preferred for some reason |
| 20:18:19 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 20:18:59 | <tomsmeding> | naming is supposed to be intuitive, and for the vast majority of people, list concatenation feels like putting two things together, not like multiplying two things |
| 20:19:31 | <EvanR> | on, I read the question backwards, you're asking why ++ is the symbols for the concatenation operator, not why concatenation operator is the name for ++ |
| 20:19:46 | <haskellbridge> | <magic_rb> python comes in with ** for powers |
| 20:19:52 | <EvanR> | length(a ++ b) = length(a) + length(b) |
| 20:20:06 | <energizer> | yeah but python is uh ynkow |
| 20:20:14 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 20:20:18 | <energizer> | yeah but python is uh yknow |
| 20:20:24 | <mauke> | > 2 ** 0.5 |
| 20:20:26 | <lambdabot> | 1.4142135623730951 |
| 20:20:43 | <tomsmeding> | well at least exponentiation is higher on the list of hyperoperations than multiplication |
| 20:20:49 | <tomsmeding> | it's like multiplication 2.0 |
| 20:20:49 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
| 20:20:56 | <EvanR> | length(as x bs) = length(as) * length(bs), where x is cross join |
| 20:21:12 | × | aljazmc quits (~aljazmc@user/aljazmc) (Remote host closed the connection) |
| 20:21:36 | → | aljazmc joins (~aljazmc@user/aljazmc) |
| 20:21:55 | → | Goodbye_Vincent joins (cyvahl@freakshells.net) |
| 20:22:27 | <tomsmeding> | energizer: in group theory in mathematics, groups may be written either additively (with +) or multiplicatively (with *), and the convention is that non-abelian groups (i.e. for a non-commutative operator) are written multiplicatively |
| 20:22:35 | <tomsmeding> | that goes the other way :) |
| 20:22:39 | <tomsmeding> | (source: wikipedia) |
| 20:22:53 | <tomsmeding> | (and memories from uni) |
| 20:23:23 | <energizer> | tomsmeding: that supports * |
| 20:23:27 | <energizer> | for concatenation |
| 20:23:49 | <tomsmeding> | oh right |
| 20:24:01 | <tomsmeding> | well, everything else then :p |
| 20:24:05 | <tomsmeding> | that we've said above |
| 20:24:28 | <tomsmeding> | would you honestly find it more intuitive if concatenation was written with (*)? |
| 20:25:40 | <haskellbridge> | <magic_rb> tomsmeding: what uni taught you group theory and was it in a math degree |
| 20:25:58 | <energizer> | if it were that way from the beginning then i would be used to it of course |
| 20:26:04 | <tomsmeding> | magic_rb: I did a math + CS double undergraduate degree |
| 20:26:10 | <tomsmeding> | so it's unsurprising there was group theory in there |
| 20:26:53 | <haskellbridge> | <magic_rb> ah nice, im at the VU in amsterdam, the math bachelor has group theory, but im scared of the bachelor, i know multiple people from there and not a single one told me its a good idea to do it |
| 20:26:55 | <EvanR> | ++ and cross join corresponds to addition and multiplication formulas above |
| 20:27:02 | <EvanR> | no one is confused about the lack of commutativity |
| 20:27:19 | <tomsmeding> | EvanR: does x distribute over ++ |
| 20:27:23 | <tomsmeding> | is it a semiring |
| 20:27:32 | <EvanR> | when you map it via length yes |
| 20:27:48 | <tomsmeding> | magic_rb: I did my bachelors in Leiden |
| 20:27:49 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 20:28:15 | <tomsmeding> | they have a 240 EC double program |
| 20:28:21 | <haskellbridge> | <magic_rb> oh nice! im planning to do masters in utrecht, they seem to have a programming language focused track iirc |
| 20:28:22 | <tomsmeding> | utrecht also has it iirc |
| 20:28:35 | <haskellbridge> | <magic_rb> yeah well slightly too late for me |
| 20:28:36 | × | lg188 quits (~lg188@82.18.98.230) (Read error: Connection reset by peer) |
| 20:28:38 | <tomsmeding> | magic_rb: they do, and you may even see me pop up at some point lol |
| 20:28:44 | <tomsmeding> | I'm doing a PhD in Utrecht |
| 20:28:50 | <ncf> | ℕ is [()], and i'd definitely expect concatenation to be written + there :) |
| 20:29:30 | <ncf> | (i guess this is the same argument as the length homomorphism) |
| 20:29:39 | <tomsmeding> | in a way :) |
| 20:29:40 | → | mobivme joins (~mobivme@130.105.162.31) |
| 20:29:40 | × | mobivme quits (~mobivme@130.105.162.31) (Changing host) |
| 20:29:40 | → | mobivme joins (~mobivme@user/mobivme) |
| 20:29:54 | <haskellbridge> | <magic_rb> tomsmeding: well, ive still 2 years to go, im extending by one year, the minor i want to do (deep programming) is extremely heavy, but id be down for a meetup for discussions of all things haskell then and now |
| 20:30:06 | <tomsmeding> | what even is "deep programming" |
| 20:30:31 | <tomsmeding> | (also this is slightly offtopic, but the #haskell-offtopic channel isn't mirrored to matrix, is it?) |
| 20:32:00 | <haskellbridge> | <magic_rb> ill list the courses, equational programming (haskell as a tool to teach lambda calculus and basic pure FP), concurrency and multithreading (mt algos in java), advanced network programming (huge info dump and write your own TCP stack), secure programming (write secure code in C and get graded on how fast other students break in + the teacher) and finally compiler construction |
| 20:32:00 | <haskellbridge> | (build your own co… |
| 20:32:00 | <haskellbridge> | <magic_rb> mpiler on an ancient version of LLVM) |
| 20:32:09 | <haskellbridge> | <magic_rb> ill check the offtopic |
| 20:32:10 | <geekosaur> | not presently |
| 20:32:16 | <haskellbridge> | <magic_rb> ah |
| 20:32:16 | <geekosaur> | that could be arranged though |
| 20:32:57 | <haskellbridge> | <magic_rb> i could also relatively quickly bridge it on my side, ill do that, give me a second |
| 20:36:12 | × | SAJAT quits (~sajat@87-97-88-242.pool.digikabel.hu) (Ping timeout: 268 seconds) |
| 20:37:47 | → | SAJAT joins (~sajat@77-234-80-211.pool.digikabel.hu) |
| 20:47:15 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 20:50:14 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Read error: Connection reset by peer) |
| 20:50:18 | → | tri_ joins (~tri@ool-18bbef1a.static.optonline.net) |
| 20:56:19 | × | tri_ quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 20:58:11 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
| 20:59:32 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:02:44 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 21:04:52 | <EvanR> | graded on how fast you can break into securely written C |
| 21:06:35 | <EvanR> | sounds like that will need a harsh curve |
| 21:07:43 | <tomsmeding> | or a _very_ well-constructed assignment |
| 21:10:11 | <sm> | @where+ strictness https://www.fpcomplete.com/haskell/tutorial/all-about-strictness |
| 21:10:11 | <lambdabot> | Done. |
| 21:11:08 | <haskellbridge> | <magic_rb> EvanR its extremely difficult, should be illegal honestly, deep programming is criminally difficult while assuming that the student has full 40 hours per week for it. which is obviously correct, because students as we know dont need to pay rent, or transportation and can live of off nothing but air :) |
| 21:12:07 | <monochrom> | Oh, so "deep programming" just means "40 hours per day"? |
| 21:12:27 | <tomsmeding> | all of university is supposed to mean 40 hours per week |
| 21:12:31 | <tomsmeding> | at least in NL |
| 21:12:41 | <tomsmeding> | not that it's always _true_ |
| 21:12:52 | <tomsmeding> | monochrom: 40 hours per day is maybe a bit much |
| 21:13:38 | <tomsmeding> | in europe we even have a "standardised" system of "credits", indicating the size of the workload for a course in a number of credits |
| 21:13:42 | <EvanR> | yeah it would be outrangeous to ask a student to move to a slower planet |
| 21:13:43 | <monochrom> | That's a reference to twosetviolin lingling40hours :) https://en.wikipedia.org/wiki/TwoSet_Violin |
| 21:13:45 | <tomsmeding> | 1 credit is supposed to be 28 hours |
| 21:13:47 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 21:13:58 | <tomsmeding> | supposed |
| 21:14:17 | <tomsmeding> | an n-credit course in country A is intended to be, but in practice definitely not necessarily, comparable to an n-credit course in country B |
| 21:14:23 | <monochrom> | But work-8-hours-per-day is different from code-8-hours-per-day. |
| 21:14:28 | <haskellbridge> | <magic_rb> the problem is, that 40h / w is not realistic and most of the bachelor understands that, just some professors seem to somehow be disconnected from reality |
| 21:14:44 | <tomsmeding> | hell, two n-credit courses in the same year in the same program at the same university can differ hugely in workload |
| 21:15:24 | <haskellbridge> | <magic_rb> yeah, mostly they try to pair up one very harsh course, with a bs one which can be crammed into one week before the exam |
| 21:15:32 | <haskellbridge> | <magic_rb> but it doesnt always work out sadly |
| 21:15:38 | <tomsmeding> | magic_rb: to change that one would need to change how the european ECTS credit system works in the first place |
| 21:16:20 | <tomsmeding> | or convince the university board that it's not feasible for all courses in a program to have roughly the same workload |
| 21:16:33 | <haskellbridge> | <magic_rb> yeah i know, still annoying tho :) and its very sad to see people that are struggling to make ends meet, or struggling with depression and stuff, being essentially bullied by the system |
| 21:16:35 | × | liskin quits (~liskin@xmonad/liskin) (Quit: liskin) |
| 21:16:41 | <tomsmeding> | which would then mean that they ought to take different amounts of time in of a year, which results in scheduling hell |
| 21:16:44 | <haskellbridge> | <magic_rb> but, like, thats reality ig :/ |
| 21:17:21 | <tomsmeding> | at hogescholen ("university of applied sciences" sometimes) in NL, it's much more common for there to be no well-defined year organsation in semesters/trimesters/quarters |
| 21:17:34 | <tomsmeding> | but instead having courses starting and ending at random times |
| 21:17:39 | <tomsmeding> | you can imagine the scheduling hell |
| 21:18:05 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Read error: Connection reset by peer) |
| 21:18:05 | <tomsmeding> | but yeah, I agree, every step of the system is sensible but the result is pretty harsh on students |
| 21:18:19 | <tomsmeding> | if they don't have rich parents |
| 21:18:25 | <haskellbridge> | <magic_rb> scheduling > that does sound awful, for the students too |
| 21:18:30 | <tomsmeding> | yes |
| 21:19:06 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 21:19:20 | tomsmeding | has fond memories of Leiden where one got a single-page PDF giving your schedule for the coming semester |
| 21:19:21 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 21:19:34 | <sm> | @where+ appliedhaskell https://www.fpcomplete.com/haskell/syllabus Applied Haskell syllabus |
| 21:19:35 | <lambdabot> | I will never forget. |
| 21:19:57 | <haskellbridge> | <magic_rb> tomsmeding: again, offtopic btw :) |
| 21:20:17 | <tomsmeding> | it's EvanR's fault |
| 21:20:20 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 21:20:25 | <haskellbridge> | <magic_rb> :D |
| 21:21:04 | × | aljazmc quits (~aljazmc@user/aljazmc) (Remote host closed the connection) |
| 21:21:33 | → | aljazmc joins (~aljazmc@user/aljazmc) |
| 21:23:06 | → | mreh joins (~matthew@host86-160-168-73.range86-160.btcentralplus.com) |
| 21:26:35 | <EvanR> | don't implicate me bro |
| 21:27:21 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 21:27:26 | → | liskin joins (~liskin@xmonad/liskin) |
| 21:27:59 | × | Square3 quits (~Square4@user/square) (Ping timeout: 272 seconds) |
| 21:30:25 | × | Benzi-Junior quits (~BenziJuni@dsl-149-65-224.hive.is) (Ping timeout: 264 seconds) |
| 21:30:50 | → | Benzi-Junior joins (~BenziJuni@88-149-64-222.du.xdsl.is) |
| 21:31:40 | → | Tuplanolla joins (~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) |
| 21:33:22 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 21:40:20 | <sm> | where is that excellent paste site that shows code compiled by different ghc versions ? |
| 21:40:53 | × | todi quits (~todi@p5dca5fa8.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
| 21:41:25 | × | mobivme quits (~mobivme@user/mobivme) (Ping timeout: 246 seconds) |
| 21:42:53 | <monochrom> | https://haskell.godbolt.org/ |
| 21:43:55 | × | average quits (uid473595@user/average) (Quit: Connection closed for inactivity) |
| 21:44:22 | <sm> | woah.. I was thinking of https://play.haskell.org , but that is also cool |
| 21:45:25 | <sm> | @where+ play |
| 21:45:25 | <lambdabot> | It is forgotten. |
| 21:46:07 | <tomsmeding> | sm: it's in the /topic ;) |
| 21:46:40 | <sm> | thanks, that's something my client never shows nowadays |
| 21:46:51 | <tomsmeding> | what client is that? :p |
| 21:46:52 | <sm> | @where+ playground https://play.haskell.org paste code snippets, see it compiled by different ghc versions |
| 21:46:52 | <lambdabot> | Good to know. |
| 21:46:58 | <sm> | erc in emacs |
| 21:48:01 | <tomsmeding> | I guess it only shows on join |
| 21:48:25 | <tomsmeding> | which is not terribly helpful if you have the thing running for longer and/or have multiple autojoin channels on startup |
| 21:48:32 | <sm> | yeah, or when I request it with /topic. Yup. |
| 21:50:18 | <sm> | @where+ godbolt https://haskell.godbolt.org paste code snippets/files, see them compiled by different ghc versions |
| 21:50:19 | <lambdabot> | Done. |
| 21:50:27 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 21:52:58 | × | chomwitt quits (~chomwitt@2a02:587:7a10:cd00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds) |
| 21:53:24 | × | phma quits (phma@2001:5b0:215d:dac8:5473:cd1c:1142:a768) (Read error: Connection reset by peer) |
| 21:54:21 | → | phma joins (~phma@host-67-44-208-73.hnremote.net) |
| 21:57:05 | → | evj joins (~evj@2a09:bac5:174a:1ad2::2ac:68) |
| 21:58:19 | × | aljazmc quits (~aljazmc@user/aljazmc) (Remote host closed the connection) |
| 21:58:57 | → | aljazmc joins (~aljazmc@user/aljazmc) |
| 22:00:51 | × | aljazmc quits (~aljazmc@user/aljazmc) (Client Quit) |
| 22:05:21 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 22:07:08 | → | alexherbo2 joins (~alexherbo@2a02-8440-3440-d7d5-14d1-65d1-7cb0-0517.rev.sfr.net) |
| 22:08:26 | × | califax quits (~califax@user/califx) (Ping timeout: 255 seconds) |
| 22:09:04 | → | califax joins (~califax@user/califx) |
| 22:09:47 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
| 22:10:32 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 22:11:03 | × | xff0x quits (~xff0x@2405:6580:b080:900:b52c:33c8:5337:f03e) (Ping timeout: 272 seconds) |
| 22:11:11 | × | evj quits (~evj@2a09:bac5:174a:1ad2::2ac:68) (Changing host) |
| 22:11:11 | → | evj joins (~evj@user/evj) |
| 22:11:34 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 22:12:39 | → | xff0x joins (~xff0x@2405:6580:b080:900:5fca:dd8c:766e:9634) |
| 22:17:28 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:19:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:20:31 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 22:22:14 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:22:18 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 22:23:41 | × | mreh quits (~matthew@host86-160-168-73.range86-160.btcentralplus.com) (Ping timeout: 240 seconds) |
| 22:24:02 | × | michalz quits (~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:27:07 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 276 seconds) |
| 22:27:49 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 22:28:10 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 22:39:05 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds) |
| 22:39:06 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 22:39:13 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 256 seconds) |
| 22:40:38 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 22:40:46 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 22:40:51 | → | mechap joins (~mechap@user/mechap) |
| 22:45:15 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 22:46:31 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
| 22:47:09 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 22:49:33 | → | mei joins (~mei@user/mei) |
| 22:49:41 | × | acidjnk_new quits (~acidjnk@p200300d6e737e714747a0600998052c8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:50:33 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 22:50:45 | × | Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 22:51:22 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 22:56:57 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 22:57:17 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds) |
| 23:01:13 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 23:02:40 | → | mobivme joins (~mobivme@130.105.162.31) |
| 23:03:07 | → | average joins (uid473595@user/average) |
| 23:12:21 | → | jargon joins (~jargon@123.sub-174-205-225.myvzw.com) |
| 23:20:37 | → | tri joins (~tri@ool-18bbef1a.static.optonline.net) |
| 23:20:51 | × | tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection) |
| 23:23:21 | × | alexherbo2 quits (~alexherbo@2a02-8440-3440-d7d5-14d1-65d1-7cb0-0517.rev.sfr.net) (Remote host closed the connection) |
| 23:27:55 | × | berberman quits (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:28:07 | → | berberman joins (~berberman@user/berberman) |
| 23:28:14 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
| 23:29:30 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:32:24 | × | Unode quits (~Unode@fg-ext-220.embl.de) (Ping timeout: 256 seconds) |
| 23:34:35 | → | JordiGH joins (~jordi@user/jordigh) |
| 23:36:49 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 23:43:47 | × | mobivme quits (~mobivme@130.105.162.31) (Ping timeout: 264 seconds) |
| 23:44:54 | → | mobivme joins (~mobivme@130.105.162.31) |
| 23:47:54 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:51:11 | × | mobivme quits (~mobivme@130.105.162.31) (Changing host) |
| 23:51:11 | → | mobivme joins (~mobivme@user/mobivme) |
| 23:51:34 | <Axman6> | sm: <3 |
| 23:57:11 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 252 seconds) |
| 23:59:13 | → | mechap joins (~mechap@user/mechap) |
All times are in UTC on 2024-02-06.