2024/02/28

2024-02-28 00:05:25 +0000rvalue(~rvalue@user/rvalue) (Ping timeout: 255 seconds)
2024-02-28 00:11:35 +0000Typedfern(~Typedfern@82.red-83-37-31.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2024-02-28 00:14:36 +0000Square2(~Square4@user/square) (Ping timeout: 268 seconds)
2024-02-28 00:14:47 +0000rvalue(~rvalue@user/rvalue)
2024-02-28 00:20:23 +0000Sgeo(~Sgeo@user/sgeo)
2024-02-28 00:25:57 +0000Typedfern(~Typedfern@237.red-83-37-37.dynamicip.rima-tde.net)
2024-02-28 00:29:57 +0000yoo(~yo0O0o@104.28.194.104)
2024-02-28 00:42:00 +0000janus(janus@anubis.0x90.dk)
2024-02-28 00:42:34 +0000 <janus> can I, in Haskell pass an IO function that only takes stuff like CInt, Ptr CChar and so on, as a FunPtr argument to a C function?
2024-02-28 00:43:29 +0000fryguybob(~fryguybob@024-094-050-022.inf.spectrum.com) (Ping timeout: 252 seconds)
2024-02-28 00:43:56 +0000mud(~mud@user/kadoban) (Quit: quit)
2024-02-28 00:46:37 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-02-28 00:50:12 +0000fryguybob(~fryguybob@024-094-050-022.inf.spectrum.com)
2024-02-28 00:54:04 +0000 <glguy> janus: yes, you can
2024-02-28 00:54:57 +0000 <glguy> (looking for a URL to give you)
2024-02-28 00:55:49 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-02-28 00:56:31 +0000 <glguy> https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1610008.5 and look for "dynamic wrapper"
2024-02-28 00:57:25 +0000 <glguy> and when you're done with the FunPtr https://hackage.haskell.org/package/base-4.19.1.0/docs/Foreign-Ptr.html#v:freeHaskellFunPtr
2024-02-28 01:01:05 +0000Typedfern(~Typedfern@237.red-83-37-37.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2024-02-28 01:03:33 +0000 <janus> oh perfect! hadn't considered that this would be in the report
2024-02-28 01:14:03 +0000Typedfern(~Typedfern@82.red-83-37-24.dynamicip.rima-tde.net)
2024-02-28 01:16:37 +0000yoo(~yo0O0o@104.28.194.104) (Ping timeout: 264 seconds)
2024-02-28 01:28:01 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-02-28 01:28:36 +0000yoo(~yo0O0o@104.28.194.105)
2024-02-28 01:32:28 +0000thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-02-28 01:36:57 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-28 01:46:46 +0000yoo(~yo0O0o@104.28.194.105) (Ping timeout: 246 seconds)
2024-02-28 01:55:22 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2024-02-28 01:55:38 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-02-28 02:02:24 +0000pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 255 seconds)
2024-02-28 02:06:45 +0000pointlessslippe1(~pointless@212.82.82.3)
2024-02-28 02:07:36 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-28 02:10:01 +0000bontaq(~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-02-28 02:19:13 +0000Fijxu(~Fijxu@user/fijxu) (Quit: XD!!)
2024-02-28 02:21:25 +0000xff0x(~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 264 seconds)
2024-02-28 02:22:55 +0000Fijxu(~Fijxu@user/fijxu)
2024-02-28 02:27:01 +0000puke(~puke@user/puke) (Remote host closed the connection)
2024-02-28 02:29:27 +0000puke(~puke@user/puke)
2024-02-28 02:37:56 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-02-28 02:40:01 +0000puke(~puke@user/puke) (Ping timeout: 264 seconds)
2024-02-28 02:44:20 +0000sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 02:45:31 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 02:47:34 +0000sroso(~sroso@user/SrOso)
2024-02-28 02:50:00 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 02:54:49 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 02:56:13 +0000otto_s(~user@p5b044e86.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-02-28 02:57:12 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-28 02:57:42 +0000otto_s(~user@p4ff27821.dip0.t-ipconnect.de)
2024-02-28 03:05:57 +0000xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-02-28 03:13:34 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 03:14:13 +0000td_(~td@i53870934.versanet.de) (Ping timeout: 264 seconds)
2024-02-28 03:14:22 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-02-28 03:16:00 +0000td_(~td@i5387090D.versanet.de)
2024-02-28 03:19:01 +0000aforemny(~aforemny@2001:9e8:6cef:7500:df27:86b4:bafb:ef5b) (Ping timeout: 264 seconds)
2024-02-28 03:19:10 +0000aforemny_(~aforemny@2001:9e8:6cce:d000:eabb:a6cd:24c6:a0ff)
2024-02-28 03:27:40 +0000jargon(~jargon@111.sub-174-205-228.myvzw.com)
2024-02-28 03:35:17 +0000shapr`(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2024-02-28 03:37:56 +0000malte(~malte@mal.tc) (Ping timeout: 256 seconds)
2024-02-28 03:40:47 +0000falafel(~falafel@wsip-98-160-52-184.dc.dc.cox.net)
2024-02-28 03:42:13 +0000malte(~malte@mal.tc)
2024-02-28 03:47:25 +0000sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 03:48:23 +0000sroso(~sroso@user/SrOso)
2024-02-28 03:54:47 +0000Luj(~Luj@2a01:e0a:5f9:9681:535f:4048:fd0:e283) (Quit: Ping timeout (120 seconds))
2024-02-28 03:55:07 +0000Luj(~Luj@2a01:e0a:5f9:9681:5718:f097:e277:c029)
2024-02-28 04:03:39 +0000falafel(~falafel@wsip-98-160-52-184.dc.dc.cox.net) (Remote host closed the connection)
2024-02-28 04:17:10 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-28 04:17:34 +0000lisq(~quassel@lis.moe) (Ping timeout: 268 seconds)
2024-02-28 04:19:04 +0000lisq(~quassel@lis.moe)
2024-02-28 04:24:03 +0000gorignak(~gorignak@user/gorignak)
2024-02-28 04:35:17 +0000jargon(~jargon@111.sub-174-205-228.myvzw.com) (Remote host closed the connection)
2024-02-28 04:48:08 +0000gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-02-28 04:48:49 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 04:50:42 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 04:50:54 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 04:53:00 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
2024-02-28 04:53:21 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-02-28 04:55:34 +0000aforemny(~aforemny@i59F516CF.versanet.de)
2024-02-28 04:55:40 +0000aforemny_(~aforemny@2001:9e8:6cce:d000:eabb:a6cd:24c6:a0ff) (Ping timeout: 255 seconds)
2024-02-28 04:56:13 +0000waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-02-28 05:10:23 +0000jrm2(~jrm@user/jrm)
2024-02-28 05:10:57 +0000jrm(~jrm@user/jrm) (Ping timeout: 256 seconds)
2024-02-28 05:12:02 +0000jrm2jrm
2024-02-28 05:12:15 +0000euleritian(~euleritia@dynamic-176-006-177-152.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 05:12:32 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 05:16:14 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds)
2024-02-28 05:20:29 +0000igemnace(~ian@user/igemnace)
2024-02-28 05:27:39 +0000defanor_(~defanor@tart.uberspace.net)
2024-02-28 05:31:51 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 05:39:02 +0000julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-28 05:39:48 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 05:43:38 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-02-28 05:55:11 +0000lockywolf(~lockywolf@public.lockywolf.net) (Killed (ozone (No Spam)))
2024-02-28 05:55:28 +0000lockywolf(~lockywolf@public.lockywolf.net)
2024-02-28 05:58:40 +0000sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 06:00:19 +0000sroso(~sroso@user/SrOso)
2024-02-28 06:06:30 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-02-28 06:11:07 +0000michalz(~michalz@185.246.207.222)
2024-02-28 06:13:57 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 06:17:24 +0000zetef(~quassel@95.77.17.251)
2024-02-28 06:17:24 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2024-02-28 06:22:17 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-02-28 06:30:00 +0000michalz(~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-28 06:32:18 +0000julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-28 06:32:49 +0000michalz(~michalz@185.246.207.197)
2024-02-28 06:38:15 +0000zetef(~quassel@95.77.17.251) (Ping timeout: 255 seconds)
2024-02-28 06:38:36 +0000danza(~francesco@ba-19-155-200.service.infuturo.it)
2024-02-28 06:39:38 +0000echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2024-02-28 06:40:34 +0000echoreply(~echoreply@45.32.163.16)
2024-02-28 06:59:29 +0000acidjnk(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de)
2024-02-28 07:04:22 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-02-28 07:06:18 +0000Flow(~none@gentoo/developer/flow) (Quit: WeeChat 4.1.2)
2024-02-28 07:07:02 +0000Flow(~none@gentoo/developer/flow)
2024-02-28 07:08:51 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 07:09:23 +0000m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 256 seconds)
2024-02-28 07:09:26 +0000euleritian(~euleritia@dynamic-176-006-177-152.176.6.pool.telefonica.de)
2024-02-28 07:09:31 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 07:14:14 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 07:22:16 +0000m5zs7k(aquares@web10.mydevil.net)
2024-02-28 07:23:11 +0000danza(~francesco@ba-19-155-200.service.infuturo.it) (Ping timeout: 268 seconds)
2024-02-28 07:27:44 +0000down200(~down200@shell.lug.mtu.edu) (Ping timeout: 252 seconds)
2024-02-28 07:31:10 +0000down200(~down200@shell.lug.mtu.edu)
2024-02-28 07:34:08 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-28 07:35:34 +0000oneeyedalien(~oneeyedal@user/oneeyedalien)
2024-02-28 07:37:10 +0000jle`(~jle`@2603-8001-3b02-84d4-a02d-ef9e-4d2d-943a.res6.spectrum.com) (Quit: WeeChat 4.2.1)
2024-02-28 07:39:34 +0000jle`(~jle`@2603-8001-3b02-84d4-9b67-becf-c72f-15e3.res6.spectrum.com)
2024-02-28 07:47:19 +0000sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-28 08:02:37 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-28 08:03:02 +0000sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-28 08:03:03 +0000sroso(~sroso@user/SrOso) (Read error: Connection reset by peer)
2024-02-28 08:03:35 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-28 08:06:23 +0000oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-02-28 08:06:37 +0000sroso(~sroso@user/SrOso)
2024-02-28 08:07:42 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 08:16:33 +0000Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no)
2024-02-28 08:17:32 +0000emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-02-28 08:18:05 +0000CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03)
2024-02-28 08:18:29 +0000kuribas(~user@2a02:1808:8c:525f:3605:2624:9302:ebf4)
2024-02-28 08:21:20 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-02-28 08:25:04 +0000sam113101(~sam@modemcable146.137-200-24.mc.videotron.ca) (Remote host closed the connection)
2024-02-28 08:25:13 +0000sam113101(~sam@modemcable146.137-200-24.mc.videotron.ca)
2024-02-28 08:26:07 +0000acidjnk_new(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de)
2024-02-28 08:26:16 +0000acidjnk(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2024-02-28 08:34:48 +0000fronzl(~user@p5b0f33a3.dip0.t-ipconnect.de)
2024-02-28 08:38:37 +0000econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-28 08:44:32 +0000euleritian(~euleritia@dynamic-176-006-177-152.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 08:44:50 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 08:48:04 +0000kuribas(~user@2a02:1808:8c:525f:3605:2624:9302:ebf4) (Remote host closed the connection)
2024-02-28 08:49:47 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 08:52:40 +0000danse-nr3(~danse@ba-19-155-200.service.infuturo.it)
2024-02-28 08:54:55 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 08:56:35 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-28 08:57:13 +0000_xor(~xor@ip-208-102-243-175.dynamic.fuse.net) (Read error: Connection reset by peer)
2024-02-28 08:57:56 +0000tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
2024-02-28 08:59:43 +0000_xor(~xor@ip-208-102-243-175.dynamic.fuse.net)
2024-02-28 09:03:39 +0000danse-nr3(~danse@ba-19-155-200.service.infuturo.it) (Remote host closed the connection)
2024-02-28 09:04:01 +0000danse-nr3(~danse@ba-19-155-200.service.infuturo.it)
2024-02-28 09:04:20 +0000sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 09:04:49 +0000sroso(~sroso@user/SrOso)
2024-02-28 09:06:42 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-02-28 09:08:13 +0000dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 264 seconds)
2024-02-28 09:10:02 +0000Benzi-Junior(~BenziJuni@232-148-209-31.dynamic.hringdu.is) (Ping timeout: 252 seconds)
2024-02-28 09:10:57 +0000tomboy64(~tomboy64@user/tomboy64)
2024-02-28 09:18:29 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 09:23:53 +0000danse-nr3(~danse@ba-19-155-200.service.infuturo.it) (Remote host closed the connection)
2024-02-28 09:24:18 +0000drdo3(~drdo@bl14-14-49.dsl.telepac.pt)
2024-02-28 09:25:32 +0000gmg(~user@user/gehmehgeh)
2024-02-28 09:25:35 +0000drdo(~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 268 seconds)
2024-02-28 09:25:35 +0000drdo3drdo
2024-02-28 09:27:39 +0000chele(~chele@user/chele)
2024-02-28 09:29:49 +0000sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 09:30:11 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 09:30:23 +0000danse-nr3(~danse@ba-19-155-200.service.infuturo.it)
2024-02-28 09:30:49 +0000tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-02-28 09:30:58 +0000gmg(~user@user/gehmehgeh)
2024-02-28 09:33:50 +0000average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-02-28 09:42:12 +0000ft(~ft@p508db2e6.dip0.t-ipconnect.de) (Quit: leaving)
2024-02-28 09:43:52 +0000sroso(~sroso@user/SrOso)
2024-02-28 09:49:13 +0000mjacob_(~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer)
2024-02-28 09:54:54 +0000mjacob(~mjacob@adrastea.uberspace.de)
2024-02-28 09:56:25 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds)
2024-02-28 10:00:41 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 10:04:16 +0000fronzl(~user@p5b0f33a3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-02-28 10:05:22 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 10:05:38 +0000__monty__(~toonn@user/toonn)
2024-02-28 10:06:53 +0000xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
2024-02-28 10:15:10 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-28 10:24:48 +0000zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 256 seconds)
2024-02-28 10:27:09 +0000zer0bitz(~zer0bitz@user/zer0bitz)
2024-02-28 10:29:43 +0000danse-nr3(~danse@ba-19-155-200.service.infuturo.it) (Read error: Connection reset by peer)
2024-02-28 10:30:22 +0000danse-nr3(~danse@an-19-162-127.service.infuturo.it)
2024-02-28 10:33:12 +0000mulk(~mulk@pd9514745.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-02-28 10:36:15 +0000Nikopol(nikopol@user/astrorigin) (Ping timeout: 272 seconds)
2024-02-28 10:36:55 +0000mulk(~mulk@pd9514e24.dip0.t-ipconnect.de)
2024-02-28 10:37:00 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 10:40:12 +0000Nikopol(nikopol@user/astrorigin)
2024-02-28 10:40:31 +0000jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
2024-02-28 10:46:30 +0000Square2(~Square4@user/square)
2024-02-28 10:46:37 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:d931:6fb2:1f6f:56aa) (Ping timeout: 264 seconds)
2024-02-28 10:47:47 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 10:48:59 +0000 <danse-nr3> a code formatter like ourmolu collapses all inputs to a single output. Is this a type of morphism?
2024-02-28 10:50:09 +0000 <danse-nr3> hmm not "all" technically ...
2024-02-28 10:50:55 +0000 <probie> Are you looking for the word "idempotent", or something else?
2024-02-28 10:51:15 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06)
2024-02-28 10:51:43 +0000 <danse-nr3> that's what i came from, but someone said idempotent does not state anything about different inputs bringing same output
2024-02-28 10:52:22 +0000oneeyedalien(~oneeyedal@user/oneeyedalien) (Quit: Leaving)
2024-02-28 10:52:48 +0000 <danse-nr3> this reminds me of a non-surjective function, but i do not know whether is there a more specific concept
2024-02-28 10:54:33 +0000 <danse-nr3> huh non-injective maybe ... multitasking does not help with recalling math concepts ):
2024-02-28 10:55:15 +0000 <danse-nr3> not bijective for sure XD
2024-02-28 10:55:26 +0000 <dminuoso> non-surjective and non-injective.
2024-02-28 10:55:42 +0000 <dminuoso> (Im not aware of any specific term for that combination)
2024-02-28 10:55:45 +0000 <probie> A stable code formatter like Ormolu is non-injective (two source files can map the same result) non-surjective (there are source files that can't be produced) idempotent (running it twice is the same as running it once) function. But "most" functions are both non-injective and non-surjective, so it's not particularly note-worthy
2024-02-28 10:55:57 +0000 <danse-nr3> non-injective, thanks probie
2024-02-28 10:56:38 +0000 <dminuoso> The closest notion of somehow tossing away information I know of is forgetful functors in category theory.
2024-02-28 10:56:51 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06) (Ping timeout: 268 seconds)
2024-02-28 10:56:52 +0000 <dminuoso> But that's not even mildly useful if we dont start out with categories to begin with
2024-02-28 10:57:07 +0000 <danse-nr3> interesting i will look that up when i will have time, cheers
2024-02-28 10:58:07 +0000 <dminuoso> danse-nr3: Perhaps the better description is not that it "throws away information", but rather that it "preserves" information.
2024-02-28 10:59:09 +0000 <danse-nr3> noted
2024-02-28 10:59:21 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06)
2024-02-28 11:01:46 +0000 <opqdonut> a formatter is a projection: it is an idempotent mapping to a subset
2024-02-28 11:02:47 +0000 <danse-nr3> well spotted ... a projection is probably what clicked to me
2024-02-28 11:06:10 +0000 <ncf> "retraction" also comes to mind
2024-02-28 11:06:36 +0000 <danse-nr3> huh? Looking that up...
2024-02-28 11:06:55 +0000kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 255 seconds)
2024-02-28 11:07:09 +0000 <danse-nr3> this https://en.wikipedia.org/wiki/Section_(category_theory) ?
2024-02-28 11:07:20 +0000 <ncf> yes
2024-02-28 11:07:33 +0000 <danse-nr3> interesting, thanks
2024-02-28 11:08:06 +0000 <ncf> with X := String and Y := AST-with-comments or something
2024-02-28 11:08:44 +0000kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca)
2024-02-28 11:09:34 +0000 <ncf> (in fancy terms, this is a splitting of the idempotent formatting function)
2024-02-28 11:09:53 +0000 <danse-nr3> o.o
2024-02-28 11:09:56 +0000xff0x(~xff0x@ai082039.d.east.v6connect.net)
2024-02-28 11:10:13 +0000 <danse-nr3> if i add that to the stash of stuff to study, surely some day it will make any sense to me
2024-02-28 11:10:31 +0000 <ncf> https://ncatlab.org/nlab/show/idempotent
2024-02-28 11:14:59 +0000rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-02-28 11:16:14 +0000sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 11:17:22 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06) (Quit: ubert)
2024-02-28 11:26:15 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds)
2024-02-28 11:35:51 +0000ph88^(~ph88@2a02:8109:9e26:c800:b36c:4250:a2e0:f38d)
2024-02-28 11:37:51 +0000teo(~teo@user/teo)
2024-02-28 11:37:57 +0000 <ph88^> does anyone have an idea how to solve this issue with using the type constraint? https://github.com/haskell-effectful/effectful/discussions/204
2024-02-28 11:46:04 +0000puke(~puke@user/puke)
2024-02-28 11:53:08 +0000ph88_(~ph88@2a02:8109:9e26:c800:2e55:526f:a486:95bf)
2024-02-28 11:56:49 +0000ph88^(~ph88@2a02:8109:9e26:c800:b36c:4250:a2e0:f38d) (Ping timeout: 264 seconds)
2024-02-28 11:57:40 +0000ph88^(~ph88@2a02:8109:9e26:c800:8a14:b17:1b0c:ea92)
2024-02-28 11:57:42 +0000 <probie> ph88^: what do you expect to happen if `es` contains another `State`?
2024-02-28 11:58:19 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net)
2024-02-28 11:58:34 +0000ph88_(~ph88@2a02:8109:9e26:c800:2e55:526f:a486:95bf) (Ping timeout: 246 seconds)
2024-02-28 11:59:19 +0000ph88_(~ph88@2a02:8109:9e26:c800:16fb:846f:303b:b33f)
2024-02-28 11:59:51 +0000CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds)
2024-02-28 12:00:11 +0000 <ph88_> probie, match on the inner type of State
2024-02-28 12:00:35 +0000 <ph88_> probie, and in case there are two State with the same inner type i don't know enough about effectful on how that should be handled
2024-02-28 12:01:31 +0000 <probie> but it can't do the first, because it doesn't know that the `v` in your call to `bar` is meant to be `Double`
2024-02-28 12:01:56 +0000 <probie> you might be able to resolve this if you change the type of `bar` to `forall v e es a. (State v :> es, Error e :> es) => Eff es a` and then `baz = foo 0.0 (bar @Double @String)`
2024-02-28 12:02:13 +0000ph88^(~ph88@2a02:8109:9e26:c800:8a14:b17:1b0c:ea92) (Ping timeout: 256 seconds)
2024-02-28 12:08:27 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-28 12:10:46 +0000 <Heffalump> jackdk: yeah, I struggled to figure out how to override it with a custom manager - in principle you can use defaultClientParams but just switching to that without making any other changes went wrong anyway
2024-02-28 12:11:06 +0000chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
2024-02-28 12:11:34 +0000gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-02-28 12:11:34 +0000stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
2024-02-28 12:11:34 +0000pastly(~pastly@gateway/tor-sasl/pastly) (Ping timeout: 260 seconds)
2024-02-28 12:12:02 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
2024-02-28 12:12:16 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net) (Remote host closed the connection)
2024-02-28 12:12:17 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-28 12:13:14 +0000chiselfuse(~chiselfus@user/chiselfuse)
2024-02-28 12:13:48 +0000gmg(~user@user/gehmehgeh)
2024-02-28 12:16:39 +0000stiell_(~stiell@gateway/tor-sasl/stiell)
2024-02-28 12:18:47 +0000pastly(~pastly@gateway/tor-sasl/pastly)
2024-02-28 12:19:46 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:ddb0:cba8:992d:fa6b)
2024-02-28 12:21:01 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net)
2024-02-28 12:22:11 +0000danse-nr3(~danse@an-19-162-127.service.infuturo.it) (Ping timeout: 264 seconds)
2024-02-28 12:23:24 +0000Guest9(~Guest9@165.225.106.173)
2024-02-28 12:24:56 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net) (Remote host closed the connection)
2024-02-28 12:25:15 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net)
2024-02-28 12:25:55 +0000igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-02-28 12:26:00 +0000 <leah2> very random question maybe: when you write code with lots of $ or ., do you write(!) it from left to right?
2024-02-28 12:27:20 +0000ph88^(~ph88@2a02:8109:9e26:c800:db68:7ede:746b:23cf)
2024-02-28 12:28:08 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2024-02-28 12:28:09 +0000 <jackdk> . and $, unless the expression gets big and >>= is involved, in which case I like to try and maintain a unidirectional data flow
2024-02-28 12:28:42 +0000 <Guest9> If you have cabal, and have the source code for a cabal package, how do you install it?
2024-02-28 12:28:43 +0000 <Guest9> The package I'm talking about is : https://hackage.haskell.org/package/fast-tags-2.0.2/src/
2024-02-28 12:29:01 +0000 <leah2> jackdk: my question aims how you write the code, not which construct you use
2024-02-28 12:29:35 +0000 <ph88^> probie, https://pastebin.com/38UXgMM9
2024-02-28 12:29:59 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-02-28 12:30:54 +0000ph88_(~ph88@2a02:8109:9e26:c800:16fb:846f:303b:b33f) (Ping timeout: 268 seconds)
2024-02-28 12:30:54 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 12:30:59 +0000 <jackdk> ah hm. Unless it's so simple that it can come straight from my brain to my fingers, I tend to write it right-to-left. I write down what I have like `_ $ foo` and work my way through, narrowing the type in the hole as I go: `f . _ $ foo` -> `f . _ . h $ foo` -> `f . g . h $ foo` -> ` f .g $ h foo` etc
2024-02-28 12:31:46 +0000gmg(~user@user/gehmehgeh)
2024-02-28 12:33:10 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Client Quit)
2024-02-28 12:33:36 +0000jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-02-28 12:38:39 +0000 <ncf> i write code inside-out and counterclockwise
2024-02-28 12:42:11 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-28 12:43:04 +0000igemnace(~ian@user/igemnace)
2024-02-28 12:44:10 +0000stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-02-28 12:44:10 +0000chiselfuse(~chiselfus@user/chiselfuse) (Read error: Connection reset by peer)
2024-02-28 12:44:10 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 12:44:10 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-02-28 12:44:25 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-28 12:44:50 +0000chiselfuse(~chiselfus@user/chiselfuse)
2024-02-28 12:44:57 +0000gmg(~user@user/gehmehgeh)
2024-02-28 12:46:02 +0000stiell_(~stiell@gateway/tor-sasl/stiell)
2024-02-28 12:55:57 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-28 12:56:43 +0000ph88(~ph88@2a02:8109:9e26:c800:8ede:73b0:bb5c:daa3) (Remote host closed the connection)
2024-02-28 12:57:01 +0000ph88(~ph88@2a02:8109:9e26:c800:6088:3c01:97a2:ea63)
2024-02-28 12:58:00 +0000bontaq(~user@ool-45779c03.dyn.optonline.net)
2024-02-28 12:59:38 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-02-28 12:59:56 +0000ec(~ec@gateway/tor-sasl/ec)
2024-02-28 13:00:26 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 13:04:16 +0000danse-nr3(~danse@151.35.185.185)
2024-02-28 13:04:43 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 246 seconds)
2024-02-28 13:07:36 +0000Guest9(~Guest9@165.225.106.173) (Quit: Client closed)
2024-02-28 13:16:01 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-02-28 13:17:30 +0000euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de)
2024-02-28 13:18:42 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-02-28 13:23:21 +0000Silver_X(~Silver_X@182.178.140.49)
2024-02-28 13:27:19 +0000destituion(~destituio@2a02:2121:34a:61a6:4e6d:b1ea:af4:eb36) (Ping timeout: 255 seconds)
2024-02-28 13:27:49 +0000destituion(~destituio@85.221.111.174)
2024-02-28 13:37:57 +0000RedNifre(~RedNifre@dslb-002-206-059-238.002.206.pools.vodafone-ip.de)
2024-02-28 13:38:01 +0000 <RedNifre> Hello!
2024-02-28 13:38:21 +0000 <danse-nr3> o/
2024-02-28 13:38:22 +0000 <RedNifre> What would be a good name for a function that kinda maps ALL values of a variable sized tuple?
2024-02-28 13:38:37 +0000 <danse-nr3> might still exist
2024-02-28 13:38:41 +0000 <RedNifre> It can't be map, since map would only map one value, to make it monadic, right?
2024-02-28 13:38:47 +0000 <danse-nr3> oh, variable sized
2024-02-28 13:38:53 +0000 <RedNifre> maybe multiMap?
2024-02-28 13:39:02 +0000 <RedNifre> It's not really a Haskell question, more like an FP question.
2024-02-28 13:39:17 +0000Silver_X(~Silver_X@182.178.140.49) (Read error: Connection reset by peer)
2024-02-28 13:39:21 +0000 <danse-nr3> still sounds like an fmap to me, but someone else might know better
2024-02-28 13:39:22 +0000 <RedNifre> Basically, I have this variable sized tuple with values of different types, since they are the arguments for a database query.
2024-02-28 13:39:36 +0000 <RedNifre> And I now want to make sure that all passed values of type YearMonth fall into a specified range.
2024-02-28 13:39:48 +0000 <danse-nr3> different types?
2024-02-28 13:40:08 +0000 <RedNifre> So something like args.multiMap { when(it) { is yearMonth -> clamp(it); else -> it }}
2024-02-28 13:40:33 +0000 <RedNifre> Yeah, different types. I would inspect the type at runtime and only clamp the YearMonth values and leave the rest.
2024-02-28 13:40:34 +0000 <danse-nr3> could you write the type signature? Or you want to discuss it in an untyped language?
2024-02-28 13:41:58 +0000 <RedNifre> The type signature is kinda Tuple* ( ?* ) -> (? -> same or modified YearMonth) -> Tuple* (?* same types, except the YearMonths now have a different value)
2024-02-28 13:42:27 +0000 <RedNifre> For example ("Hello", 2080-10) -> ("Hello", 2024-2)
2024-02-28 13:42:57 +0000 <danse-nr3> does this have anything to do with haskell?
2024-02-28 13:43:09 +0000 <RedNifre> Or also ("Some more args", 123, 2090-3, 999, 2040-2) -> ("Some more args", 123, 2024-2, 999, 2024-2)
2024-02-28 13:43:28 +0000 <danse-nr3> i am not familiar with Tuple* (?*) syntax
2024-02-28 13:43:33 +0000 <RedNifre> No, as I said, it's more of an FP or naming question. It's a bit like mapping the values of the tuple, but it's not a strict monadic map.
2024-02-28 13:44:15 +0000 <sshine> sounds like something you might do with sum types, or instances of a type class, or record types.
2024-02-28 13:44:18 +0000 <RedNifre> Basically, I'm asking about a good name for a function that would take a tuple and a "mapping" function and returns a tuple of the same type, where some of the values in the tuple are now changed, but still have the same type
2024-02-28 13:44:39 +0000 <sshine> RedNifre, have you investigated record types?
2024-02-28 13:45:42 +0000 <RedNifre> Sure, but that's not what this is about, since I'm dealing with tuples here.
2024-02-28 13:45:47 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net) (Remote host closed the connection)
2024-02-28 13:46:08 +0000 <danse-nr3> in haskell i guess it would probably be record types and a class as sshine mentioned. In general functional programming, i am not aware of any related concept
2024-02-28 13:46:09 +0000alexherbo2(~alexherbo@220.12.23.93.rev.sfr.net)
2024-02-28 13:46:35 +0000 <RedNifre> So I have some tuples and a function of type YearMonth -> YearMonth and I'm looking for what you would call it if you applied that function to all the values in the Tuple of type YearMonth and got a modified Tuple back.
2024-02-28 13:47:02 +0000 <RedNifre> Hm, how about calling it multiMap? partialMap? crazyMap?
2024-02-28 13:47:27 +0000 <danse-nr3> well a map usually refers to an exposed parameter
2024-02-28 13:47:40 +0000 <danse-nr3> and a functor
2024-02-28 13:48:02 +0000 <RedNifre> Right, map is wrong here, because when mapping a tuple, it can only affect one value in the tuple or it would not be correct.
2024-02-28 13:50:09 +0000 <dminuoso> RedNifre: We have a notion of Bifunctor (and accordingly bimap).
2024-02-28 13:50:10 +0000 <RedNifre> Hm, in Ramda it's something like "adjust", maybe I just name it that.
2024-02-28 13:50:20 +0000 <dminuoso> I guess you could generalize this into N-functor and n-map?
2024-02-28 13:50:32 +0000 <RedNifre> Is there also TriFunctor and VariableSizeFunctor with variableSizeMap?
2024-02-28 13:50:37 +0000 <RedNifre> hm!
2024-02-28 13:50:47 +0000 <RedNifre> nMap sounds interesting.
2024-02-28 13:51:04 +0000 <danse-nr3> code that abstracts over map size is very rare in haskell
2024-02-28 13:51:19 +0000 <danse-nr3> sorry, tuple size
2024-02-28 13:51:41 +0000__monty__(~toonn@user/toonn) (Ping timeout: 268 seconds)
2024-02-28 13:54:49 +0000 <dminuoso> RedNifre: Writing an a typeclass Multifunctor might be a fun excercise.
2024-02-28 13:55:37 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-02-28 13:56:15 +0000 <lortabac> RedNifre: I'd call it 'tmap', 'mapT' or 'mapTuple'
2024-02-28 13:58:03 +0000 <danse-nr3> can it even work without something more encapsulated than a tuple though?
2024-02-28 14:02:51 +0000 <lortabac> danse-nr3: I remember seeing different n-ary functor proposals, they were all quite complex
2024-02-28 14:05:02 +0000 <sshine> RedNifre, you say records are irrelevant because you're dealing with tuples. but you know that tuples are just records with numbers instead of names?
2024-02-28 14:05:31 +0000Guest50(~Guest15@105.112.248.197)
2024-02-28 14:06:45 +0000 <jackdk> check out Control.Lens.Each from package lens
2024-02-28 14:07:01 +0000 <sshine> sounds lensy actually, yes
2024-02-28 14:08:37 +0000 <sshine> RedNifre, sometimes when you traverse syntax trees, you may want a specialised map function that addresses each node of some kind in arbitrary places of a tree. here's an example: https://hackage.haskell.org/package/futhark-0.25.13/docs/Futhark-IR-Traversals.html -- and a smaller derivation of that strategy: https://github.com/sshine/evm-opcodes/blob/main/src/EVM/Opcode/Traversal.hs
2024-02-28 14:09:37 +0000 <jackdk> uniplate and friends are worth looking at too
2024-02-28 14:09:43 +0000 <sshine> RedNifre, if you're not looking for a generalised map function that works for any type in any position in any structured type, then you could go with a specialised map function that works for a concrete type in any position.
2024-02-28 14:10:14 +0000 <danse-nr3> i think we lost RedNifre already
2024-02-28 14:10:22 +0000Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187)
2024-02-28 14:11:23 +0000mulk(~mulk@pd9514e24.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-02-28 14:11:43 +0000 <sshine> RedNifre, you can achieve this flexibility a lot easier in loosely typed languages. "feed it anything and let a run-time check iterate over the different options". for example, you wouldn't loop over a variable amount of tuple fields in Haskell, but you might in Python.
2024-02-28 14:13:12 +0000 <jackdk> You can build all sorts of cool stuff out of generics, Typeable, etc, but it's rarely the best option
2024-02-28 14:13:24 +0000 <Guest50> Hello everyone,
2024-02-28 14:13:24 +0000 <Guest50> I hope this message finds you well. My name is Jesse Amos, and I'm thrilled to share that I've successfully completed the Haskell course! I'm now embarking on a personal project and am eager to find a mentor and friend who wouldn't mind me reaching out with questions as I navigate through challenges. Your guidance and insights would mean a lot to
2024-02-28 14:13:25 +0000 <Guest50> me. Looking forward to connecting with someone willing to share their expertise. Thanks a bunch!
2024-02-28 14:14:11 +0000shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-02-28 14:14:26 +0000 <danse-nr3> "the" haskell course?
2024-02-28 14:15:23 +0000 <Guest50> not really i finish "Haskell MOOC" course
2024-02-28 14:15:48 +0000 <Guest50> and i want to embark on build a personal project
2024-02-28 14:16:01 +0000 <Guest50> before starting an internship
2024-02-28 14:16:22 +0000mulk(~mulk@pd9514e24.dip0.t-ipconnect.de)
2024-02-28 14:19:41 +0000 <danse-nr3> welcome to haskell then. About your personal project, i suggest to start small
2024-02-28 14:20:26 +0000 <shapr> hi! I like Haskell!
2024-02-28 14:23:24 +0000thegeekinside(~thegeekin@189.217.83.221)
2024-02-28 14:24:23 +0000 <Guest50>  I'm also looking for a mentor and a friend that can guide me through my journey of Haskell. someone that i can ask questions and will be patient with me as i grow into a more proficient developer in Haskell
2024-02-28 14:25:01 +0000 <danse-nr3> well you can hang around here. Maybe get a libera user name so that we can recognize you easier
2024-02-28 14:25:11 +0000dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-02-28 14:25:49 +0000 <darkling> Guest50: I don't think anybody is going to agree to that kind of commitment as a "named contact" for you, but if you just ask any questions you have in here, then you'll usually get an answer from someone knowledgable.
2024-02-28 14:27:23 +0000 <Guest50> I'm also wondering if they is a what app group consist with Haskell developer that i could join since i'm more active on What app social media :]
2024-02-28 14:28:03 +0000 <Guest50> I totally agree with you darkling
2024-02-28 14:33:01 +0000 <danse-nr3> not aware of any whatsapp group, but there is reddit and, i think, discord, which might work easier on your phone
2024-02-28 14:34:59 +0000 <Guest50> okay it totally cool danse-nr3 can you send a link to me or something i will actually really appreciate it
2024-02-28 14:35:28 +0000 <danse-nr3> oh they are easy to find
2024-02-28 14:40:17 +0000 <Guest50> Okay danse-nr3 i found one already on reddit
2024-02-28 14:40:24 +0000 <danse-nr3> v
2024-02-28 14:41:10 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 14:43:14 +0000__monty__(~toonn@user/toonn)
2024-02-28 14:44:44 +0000billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-02-28 14:44:52 +0000billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2024-02-28 14:46:01 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds)
2024-02-28 14:48:44 +0000euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 14:49:01 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 14:50:13 +0000__monty__(~toonn@user/toonn) (Ping timeout: 264 seconds)
2024-02-28 14:59:44 +0000teo(~teo@user/teo) ()
2024-02-28 15:09:15 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 15:09:38 +0000CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03)
2024-02-28 15:10:47 +0000Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187) (Ping timeout: 250 seconds)
2024-02-28 15:10:52 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-02-28 15:11:19 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 15:12:10 +0000danse-nr3(~danse@151.35.185.185) (Ping timeout: 255 seconds)
2024-02-28 15:12:29 +0000euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de)
2024-02-28 15:14:37 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 15:18:07 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds)
2024-02-28 15:20:44 +0000haftl(~user@user/haftl)
2024-02-28 15:23:16 +0000[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252)
2024-02-28 15:25:20 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2024-02-28 15:26:34 +0000danza(~francesco@151.35.185.185)
2024-02-28 15:29:22 +0000zmt00(~zmt00@user/zmt00)
2024-02-28 15:30:26 +0000 <kuribas> There is "Functional Programming" on discord
2024-02-28 15:30:30 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish)
2024-02-28 15:34:23 +0000kupi(uid212005@id-212005.hampstead.irccloud.com)
2024-02-28 15:39:27 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-02-28 15:41:23 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 15:44:50 +0000vulpine(xfnw@tilde.team) (Quit: Connection reset by purr)
2024-02-28 15:46:04 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 15:46:12 +0000bontaq(~user@ool-45779c03.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 15:49:36 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 15:51:17 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 15:53:34 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 15:55:55 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 15:58:17 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 16:00:42 +0000 <juri_> you could also join some haskell project. most people are willing to tolerate a lot for another developer.
2024-02-28 16:01:59 +0000danza(~francesco@151.35.185.185) (Ping timeout: 252 seconds)
2024-02-28 16:02:21 +0000Guest50(~Guest15@105.112.248.197) (Ping timeout: 250 seconds)
2024-02-28 16:03:35 +0000destituion(~destituio@85.221.111.174) (Ping timeout: 264 seconds)
2024-02-28 16:07:06 +0000econo_(uid147250@id-147250.tinside.irccloud.com)
2024-02-28 16:11:26 +0000destituion(~destituio@2a02:2121:34a:61a6:3256:75da:727b:1921)
2024-02-28 16:12:22 +0000danza(~francesco@151.35.185.185)
2024-02-28 16:20:56 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-02-28 16:25:57 +0000bontaq(~user@ool-45779c03.dyn.optonline.net)
2024-02-28 16:26:49 +0000Guest58(~Guest58@188.120.100.237)
2024-02-28 16:32:45 +0000 <RedNifre> No, you didn't lose me.
2024-02-28 16:35:09 +0000 <RedNifre> It's just that Kotlin has a function called "copy" for records, where you specify which fields you want to "modify" as in Person.copy(lastName = "Smith"). Since my usecase for creating a modified copy of a tuple is very similar, I went with calling it "copy", but instead of naming fields, you provide a function that will be executed for every value in the tuple and hopefully returns the correct
2024-02-28 16:35:11 +0000 <RedNifre> type (this is not type checked automatically, since I think it's impossible, at least in Kotlin).
2024-02-28 16:36:05 +0000danza(~francesco@151.35.185.185) (Ping timeout: 252 seconds)
2024-02-28 16:36:15 +0000Silver_X(~Silver_X@182.178.140.49)
2024-02-28 16:37:45 +0000 <Guest58> What's currently considered the best tool for (semi-)automating the job of interfacing a C library through the FFI, I've tried c2hs, c2hsc and HSFFIG, but they all seem severely bit-rotten to the point where I can't even seem to build them
2024-02-28 16:37:46 +0000 <EvanR> if every component of the tuple has the same type, you can use a Vector or V2 V3 V4 etc from linear package
2024-02-28 16:37:50 +0000 <RedNifre> So in pseudo Kotlin, the code now reads fixedQuery = brokenQuery.copy( args = brokenQuery.args.copy(fixTime) ). The second copy is the weird "map tuple" part, but it reads okayish, at least in my opinion.
2024-02-28 16:37:57 +0000 <EvanR> then you can fmap the components
2024-02-28 16:38:17 +0000Guest30(~Guest58@188.120.100.237)
2024-02-28 16:38:29 +0000 <RedNifre> The tuples are variable width and variable type and I want to limit all values of type YearMonth to not be in the future.
2024-02-28 16:38:38 +0000 <RedNifre> And it's done already, so it's all good :)
2024-02-28 16:38:47 +0000 <RedNifre> Thank you to everyone who chimed in!
2024-02-28 16:39:44 +0000 <Guest30> What's currently considered the best tool for (semi-)automating the job of interfacing a C library through the FFI? I've tried c2hs, c2hsc and HSFFIG, but they all seem severely bit-rotten to the point where I can't even seem to build them
2024-02-28 16:39:56 +0000L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
2024-02-28 16:41:14 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 16:41:30 +0000Guest30(~Guest58@188.120.100.237) (Client Quit)
2024-02-28 16:41:47 +0000[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252) (Ping timeout: 250 seconds)
2024-02-28 16:42:13 +0000Guest58(~Guest58@188.120.100.237) (Ping timeout: 250 seconds)
2024-02-28 16:42:37 +0000 <cheater> Haskell Developers Announce Discovery of Industry Programmer Who Gives a Shit
2024-02-28 16:43:26 +0000 <cheater> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaand he's gone
2024-02-28 16:43:36 +0000 <cheater> back to sulking, everyone
2024-02-28 16:45:13 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 16:47:37 +0000 <Silver_X> That was a good read
2024-02-28 16:48:11 +0000CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
2024-02-28 16:51:36 +0000danse-nr3(~danse@151.35.185.185)
2024-02-28 16:52:25 +0000Guest58(~Guest58@188.120.100.237)
2024-02-28 16:52:38 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-28 16:53:11 +0000Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-02-28 16:54:17 +0000alexherbo2(~alexherbo@220.12.23.93.rev.sfr.net) (Remote host closed the connection)
2024-02-28 16:54:38 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-503a-5ce6-b6b2-07fb.rev.sfr.net)
2024-02-28 16:56:58 +0000carbolymer(~carbolyme@dropacid.net) (Remote host closed the connection)
2024-02-28 16:58:03 +0000chele(~chele@user/chele) (Remote host closed the connection)
2024-02-28 17:02:49 +0000danse-nr3(~danse@151.35.185.185) (Ping timeout: 264 seconds)
2024-02-28 17:03:19 +0000danse-nr3(~danse@151.35.204.200)
2024-02-28 17:07:14 +0000glguy(g@libera/staff/glguy) (Quit: Quit)
2024-02-28 17:09:14 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-28 17:12:33 +0000glguy(g@libera/staff/glguy)
2024-02-28 17:17:45 +0000Silver_X(~Silver_X@182.178.140.49) (Quit: Leaving)
2024-02-28 17:19:57 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds)
2024-02-28 17:25:33 +0000Guest58(~Guest58@188.120.100.237) (Ping timeout: 250 seconds)
2024-02-28 17:26:49 +0000danse-nr3(~danse@151.35.204.200) (Ping timeout: 264 seconds)
2024-02-28 17:27:36 +0000g(g@libera/staff/glguy) (Remote host closed the connection)
2024-02-28 17:30:36 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2024-02-28 17:32:29 +0000__monty__(~toonn@user/toonn)
2024-02-28 17:33:34 +0000ak-1(~ak-1@ip-037-201-198-027.um10.pools.vodafone-ip.de)
2024-02-28 17:34:18 +0000alexherbo2(~alexherbo@2a02-8440-3241-a025-503a-5ce6-b6b2-07fb.rev.sfr.net) (Remote host closed the connection)
2024-02-28 17:36:19 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-28 17:37:06 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-02-28 17:41:24 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 17:41:35 +0000g(glguy@libera/staff/glguy)
2024-02-28 17:41:51 +0000notzmv(~daniel@user/notzmv) (Ping timeout: 272 seconds)
2024-02-28 17:41:53 +0000g(glguy@libera/staff/glguy) ()
2024-02-28 17:42:19 +0000ubert(~Thunderbi@2a02:8109:ab8a:5a00:ddb0:cba8:992d:fa6b) (Remote host closed the connection)
2024-02-28 17:43:40 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds)
2024-02-28 17:44:51 +0000euphores(~SASL_euph@user/euphores)
2024-02-28 17:46:55 +0000danse-nr3(~danse@151.35.204.200)
2024-02-28 17:46:55 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 17:49:22 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-02-28 17:49:31 +0000euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 17:49:47 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 17:49:52 +0000ec(~ec@gateway/tor-sasl/ec)
2024-02-28 17:50:23 +0000tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-02-28 17:50:31 +0000rvalue(~rvalue@user/rvalue)
2024-02-28 17:53:37 +0000Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187)
2024-02-28 17:53:53 +0000Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187) (Client Quit)
2024-02-28 17:55:27 +0000ak-1(~ak-1@ip-037-201-198-027.um10.pools.vodafone-ip.de) (Quit: Client closed)
2024-02-28 18:05:14 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2024-02-28 18:08:41 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-28 18:11:38 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 18:12:22 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 18:13:26 +0000igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-02-28 18:13:30 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
2024-02-28 18:14:03 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 18:16:52 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 18:17:19 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Client Quit)
2024-02-28 18:18:29 +0000Square2(~Square4@user/square) (Ping timeout: 256 seconds)
2024-02-28 18:18:54 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
2024-02-28 18:31:30 +0000sadie-sorceress(~sadie-sor@199.96.191.158)
2024-02-28 18:32:31 +0000infinity0Guest2606
2024-02-28 18:32:32 +0000Guest2606(~infinity0@pwned.gg) (Killed (iridium.libera.chat (Nickname regained by services)))
2024-02-28 18:32:41 +0000infinity0(~infinity0@pwned.gg)
2024-02-28 18:39:14 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 18:39:39 +0000sadie-sorceress(~sadie-sor@199.96.191.158) (Ping timeout: 250 seconds)
2024-02-28 18:41:19 +0000infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-02-28 18:41:43 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 18:42:27 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Client Quit)
2024-02-28 18:42:31 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 18:43:14 +0000kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-28 18:43:26 +0000infinity0(~infinity0@pwned.gg)
2024-02-28 18:47:43 +0000danse-nr3(~danse@151.35.204.200) (Ping timeout: 272 seconds)
2024-02-28 18:48:44 +0000notzmv(~daniel@user/notzmv)
2024-02-28 18:51:36 +0000target_i(~target_i@217.175.14.39)
2024-02-28 18:51:56 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 252 seconds)
2024-02-28 18:53:01 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-02-28 18:57:30 +0000sadie-sorceress(~sadie-sor@199.96.191.158)
2024-02-28 19:02:22 +0000sadie-sorceress(~sadie-sor@199.96.191.158) (Client Quit)
2024-02-28 19:06:41 +0000phma(~phma@host-67-44-208-86.hnremote.net) (Read error: Connection reset by peer)
2024-02-28 19:06:53 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds)
2024-02-28 19:07:44 +0000phma(~phma@host-67-44-208-71.hnremote.net)
2024-02-28 19:08:12 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 19:11:49 +0000tri_(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 19:13:03 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 19:13:28 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 19:16:31 +0000tri_(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
2024-02-28 19:25:31 +0000waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-02-28 19:26:20 +0000thegeekinside(~thegeekin@189.217.83.221) (Remote host closed the connection)
2024-02-28 19:37:37 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 19:39:48 +0000ph88^(~ph88@2a02:8109:9e26:c800:db68:7ede:746b:23cf) (Remote host closed the connection)
2024-02-28 19:41:54 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 19:42:25 +0000ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 264 seconds)
2024-02-28 19:43:49 +0000ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-02-28 19:44:08 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 19:44:17 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-02-28 19:44:30 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 19:46:04 +0000[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252)
2024-02-28 19:53:28 +0000jargon(~jargon@111.sub-174-205-228.myvzw.com)
2024-02-28 19:57:07 +0000[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252) (Quit: Client closed)
2024-02-28 20:03:53 +0000[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252)
2024-02-28 20:04:52 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-02-28 20:17:48 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-28 20:29:44 +0000vulpine(xfnw@tilde.team)
2024-02-28 20:39:51 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 20:51:55 +0000pyooque(~puke@user/puke)
2024-02-28 20:51:55 +0000pukeGuest2325
2024-02-28 20:51:55 +0000pyooquepuke
2024-02-28 20:53:29 +0000oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 252 seconds)
2024-02-28 20:54:19 +0000Guest2325(~puke@user/puke) (Ping timeout: 256 seconds)
2024-02-28 20:55:22 +0000zetef(~quassel@95.77.17.251)
2024-02-28 20:58:36 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-28 21:01:53 +0000ft(~ft@p508db2e6.dip0.t-ipconnect.de)
2024-02-28 21:05:49 +0000 <energizer> the higher-order-function way of writing a for loop is foldr/foldl. what is the higher-order-function way of writing `while x < 1000 { x = x * 2 }`?
2024-02-28 21:06:31 +0000 <glguy> > until (>= 1000) (*2) 1
2024-02-28 21:06:32 +0000 <lambdabot> 1024
2024-02-28 21:07:19 +0000euphores(~SASL_euph@user/euphores)
2024-02-28 21:08:19 +0000 <energizer> ah nice
2024-02-28 21:08:57 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-02-28 21:09:10 +0000euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de)
2024-02-28 21:09:48 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-28 21:09:51 +0000emmanuelux(~emmanuelu@user/emmanuelux)
2024-02-28 21:12:01 +0000 <energizer> what about the scan version of that, returning the list of intermediate results?
2024-02-28 21:12:47 +0000 <int-e> > takeWhile (< 1000) $ iterate (*2) 1
2024-02-28 21:12:48 +0000 <lambdabot> [1,2,4,8,16,32,64,128,256,512]
2024-02-28 21:13:11 +0000Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 264 seconds)
2024-02-28 21:13:12 +0000 <int-e> (not quite right, I know)
2024-02-28 21:13:21 +0000 <int-e> :t unfoldr
2024-02-28 21:13:22 +0000 <lambdabot> (b -> Maybe (a, b)) -> b -> [a]
2024-02-28 21:13:39 +0000 <int-e> (unfoldr is so unwieldy)
2024-02-28 21:14:31 +0000target_i(~target_i@217.175.14.39) (Quit: leaving)
2024-02-28 21:15:03 +0000zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-02-28 21:15:35 +0000 <Rembane> :i until
2024-02-28 21:15:56 +0000 <Rembane> Hm... nope. I need to alias unfoldr with unwieldr though.
2024-02-28 21:16:17 +0000 <c_wraith> unfoldr is a demonstration of how anamorphisms can be a lot more awkward than catmorphisms
2024-02-28 21:16:20 +0000gmg(~user@user/gehmehgeh)
2024-02-28 21:17:40 +0000 <c_wraith> a catamorphism can deconstruct a sum type just by using multiple parameters. an anamorphism requires an argument that produces sums to build a sum type.
2024-02-28 21:18:09 +0000 <energizer> i think scanuntil would be `(a -> Bool) -> (a -> a) -> a -> [a]` ?
2024-02-28 21:19:22 +0000 <Rembane> c_wraith: Is that why the hof in unfoldr gives Maybe (a, b)?
2024-02-28 21:19:30 +0000 <c_wraith> yes
2024-02-28 21:19:32 +0000[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252) (Quit: Client closed)
2024-02-28 21:19:50 +0000 <Rembane> Got it.
2024-02-28 21:19:53 +0000 <c_wraith> I suppose you could CPS it.
2024-02-28 21:20:12 +0000 <c_wraith> But then the type would look... uh... even more unwieldy
2024-02-28 21:22:05 +0000 <int-e> we should all remember that explicit recursion is always an option
2024-02-28 21:22:08 +0000 <Rembane> There's a certain allure with a maximum cursed anamorphism
2024-02-28 21:22:44 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-28 21:25:14 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 21:25:48 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-02-28 21:25:59 +0000gmg(~user@user/gehmehgeh)
2024-02-28 21:26:35 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-28 21:31:43 +0000 <c_wraith> > let ana :: (forall r. b -> r -> (a -> b -> r) -> r) -> b -> [a]; ana f x = f x [] (\a b -> a : ana f b) in ana (\x nil cons -> if x > 5 then nil else cons x (x + 1)) 0
2024-02-28 21:31:44 +0000 <lambdabot> [0,1,2,3,4,5]
2024-02-28 21:32:19 +0000 <c_wraith> the type is only a little impenetrable
2024-02-28 21:33:32 +0000 <c_wraith> huh. I'm like one step away from rediscovering fodlr/build fusion
2024-02-28 21:33:38 +0000 <c_wraith> *foldr/build
2024-02-28 21:34:43 +0000Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2024-02-28 21:35:56 +0000 <int-e> :t GHC.Base.build
2024-02-28 21:35:57 +0000 <lambdabot> (forall b. (a -> b -> b) -> b -> b) -> [a]
2024-02-28 21:37:27 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds)
2024-02-28 21:37:29 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-02-28 21:39:57 +0000Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-02-28 21:41:30 +0000turlando(~turlando@user/turlando) (Remote host closed the connection)
2024-02-28 21:42:04 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-02-28 21:42:45 +0000turlando(~turlando@user/turlando)
2024-02-28 21:43:35 +0000hiredman(~hiredman@frontier1.downey.family) (Ping timeout: 260 seconds)
2024-02-28 21:43:57 +0000Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2024-02-28 21:48:10 +0000 <c_wraith> foldr/build is sort of a specific example of a hylomorphism. So it makes sense that you end up sort of close to it when you're playing with list cata/ana
2024-02-28 21:52:43 +0000pavonia(~user@user/siracusa)
2024-02-28 21:53:06 +0000michalz(~michalz@185.246.207.197) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-28 21:53:36 +0000Lycurgus(~georg@user/Lycurgus)
2024-02-28 21:53:42 +0000thegeekinside(~thegeekin@189.217.83.221)
2024-02-28 21:56:35 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-02-28 22:12:00 +0000hiredman(~hiredman@frontier1.downey.family)
2024-02-28 22:21:25 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-02-28 22:24:53 +0000haftl(~user@user/haftl) (Remote host closed the connection)
2024-02-28 22:25:11 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-02-28 22:35:33 +0000Square2(~Square4@user/square)
2024-02-28 22:43:07 +0000acidjnk_new(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-02-28 22:43:30 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 22:46:34 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 22:54:33 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2024-02-28 22:55:28 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 23:00:09 +0000julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-28 23:05:06 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2024-02-28 23:06:57 +0000glguy(g@libera/staff/glguy) (Quit: Quit)
2024-02-28 23:08:02 +0000glguy(g@libera/staff/glguy)
2024-02-28 23:16:01 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-02-28 23:21:57 +0000bontaq(~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 23:23:47 +0000julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-28 23:23:52 +0000Sgeo(~Sgeo@user/sgeo)
2024-02-28 23:24:08 +0000julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-28 23:26:00 +0000fraznel(~fuag1@c-73-221-56-19.hsd1.wa.comcast.net)
2024-02-28 23:27:07 +0000 <fraznel> hey all, i've been digging into the ghc alternatives and its very cool! I'm going off of haskell_ghc_illustrated for ghc 9 and it's mostly clicking but unclear around the stm data structure and atomically
2024-02-28 23:28:20 +0000 <fraznel> during an atomically box with multiple TVars, where do the intermediary thunks get stored and how is the Invariant check queue handled so that its an atomic commit on all at once, is there a lock per atomically block that itself aquires all locks of all tvars before commiting a block otherwise goes into a retry? Are tvar thunks evaluated fully before a commit? etc
2024-02-28 23:29:14 +0000 <fraznel> i see trec entries being added but its unclear how the multiple potential futures of those vars are represented or how the final invariant check is resolved. It's fine if the answer is "go look at the data structure source" but thought maybe there was a quicker answer here
2024-02-28 23:29:47 +0000 <fraznel> s/ghc alternatives/ghc internals/g
2024-02-28 23:30:50 +0000 <fraznel> actually it looks like the trecentries are those temporaries and it looks like possible the atomically box can be pre-empted into a retry by involved tvars changing maybe... Just not clear how the final commit is done atomically across all tvars involved
2024-02-28 23:32:45 +0000julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-28 23:35:17 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-02-28 23:40:18 +0000 <glguy> fraznel: are you basically looking for a paper that describes how STM is implemented?
2024-02-28 23:41:59 +0000tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 23:46:23 +0000 <fraznel> no, just thought someone here might be like. oh yeah, they do take locks on all tvars prior to commits
2024-02-28 23:46:36 +0000 <fraznel> but like i said, comfy reading the source if thats the best place to find things out too
2024-02-28 23:48:11 +0000 <fraznel> happy to read a paper if there is one as well. But thought it was worth a shot asking in the channel before digging through the implementation
2024-02-28 23:49:18 +0000 <EvanR> I think transactions which don't overlap in any way won't block each other, one of the whole points of STM
2024-02-28 23:49:39 +0000 <EvanR> so no taking all locks on all TVars ever
2024-02-28 23:49:47 +0000tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds)
2024-02-28 23:51:44 +0000 <fraznel> Yes but there has to be a reconciliation on multiple tvar atomically blocks on final commit still in some form, whether its with something like barriers / fences etc or locks. From what I understand now its an optimistic work model where they check if vars have been modified on final commit and rerun if needed with a possible pre-emption on involved vars changing during work
2024-02-28 23:56:47 +0000bontaq(~user@ool-45779c03.dyn.optonline.net)