2024/02/28

2024-02-28 00:03:09 +0100Guest15(~Guest15@41.190.2.219)
2024-02-28 00:04:34 +0100 <Guest15> Hello everyone,
2024-02-28 00:04:34 +0100 <Guest15> 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 00:04:35 +0100 <Guest15> me. Looking forward to connecting with someone willing to share their expertise. Thanks a bunch!
2024-02-28 00:05:51 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-02-28 00:09:41 +0100 <haskellbridge> <s​m> welcome Guest15
2024-02-28 00:10:26 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 00:17:43 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds)
2024-02-28 00:17:43 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-02-28 00:20:32 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-02-28 00:25:12 +0100Guest15(~Guest15@41.190.2.219) (Quit: Ping timeout (120 seconds))
2024-02-28 00:31:04 +0100Guest15(~Guest15@41.190.2.219)
2024-02-28 00:31:24 +0100Guest15(~Guest15@41.190.2.219) (Client Quit)
2024-02-28 00:31:35 +0100Guest15(~Guest15@41.190.2.219)
2024-02-28 00:32:23 +0100Guest15(~Guest15@41.190.2.219) (Client Quit)
2024-02-28 00:36:40 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
2024-02-28 00:39:38 +0100shapr`(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-02-28 00:41:38 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 256 seconds)
2024-02-28 00:49:17 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-02-28 00:57:11 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 01:05:25 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 255 seconds)
2024-02-28 01:11:35 +0100Typedfern(~Typedfern@82.red-83-37-31.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2024-02-28 01:14:36 +0100Square2(~Square4@user/square) (Ping timeout: 268 seconds)
2024-02-28 01:14:47 +0100rvalue(~rvalue@user/rvalue)
2024-02-28 01:20:23 +0100Sgeo(~Sgeo@user/sgeo)
2024-02-28 01:25:57 +0100Typedfern(~Typedfern@237.red-83-37-37.dynamicip.rima-tde.net)
2024-02-28 01:29:57 +0100yoo(~yo0O0o@104.28.194.104)
2024-02-28 01:42:00 +0100janus(janus@anubis.0x90.dk)
2024-02-28 01:42:34 +0100 <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 01:43:29 +0100fryguybob(~fryguybob@024-094-050-022.inf.spectrum.com) (Ping timeout: 252 seconds)
2024-02-28 01:43:56 +0100mud(~mud@user/kadoban) (Quit: quit)
2024-02-28 01:46:37 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-02-28 01:50:12 +0100fryguybob(~fryguybob@024-094-050-022.inf.spectrum.com)
2024-02-28 01:54:04 +0100 <glguy> janus: yes, you can
2024-02-28 01:54:57 +0100 <glguy> (looking for a URL to give you)
2024-02-28 01:55:49 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-02-28 01:56:31 +0100 <glguy> https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1610008.5 and look for "dynamic wrapper"
2024-02-28 01:57:25 +0100 <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 02:01:05 +0100Typedfern(~Typedfern@237.red-83-37-37.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2024-02-28 02:03:33 +0100 <janus> oh perfect! hadn't considered that this would be in the report
2024-02-28 02:14:03 +0100Typedfern(~Typedfern@82.red-83-37-24.dynamicip.rima-tde.net)
2024-02-28 02:16:37 +0100yoo(~yo0O0o@104.28.194.104) (Ping timeout: 264 seconds)
2024-02-28 02:28:01 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-02-28 02:28:36 +0100yoo(~yo0O0o@104.28.194.105)
2024-02-28 02:32:28 +0100thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-02-28 02:36:57 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-28 02:46:46 +0100yoo(~yo0O0o@104.28.194.105) (Ping timeout: 246 seconds)
2024-02-28 02:55:22 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2024-02-28 02:55:38 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-02-28 03:02:24 +0100pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 255 seconds)
2024-02-28 03:06:45 +0100pointlessslippe1(~pointless@212.82.82.3)
2024-02-28 03:07:36 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-28 03:10:01 +0100bontaq(~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 264 seconds)
2024-02-28 03:19:13 +0100Fijxu(~Fijxu@user/fijxu) (Quit: XD!!)
2024-02-28 03:21:25 +0100xff0x(~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 264 seconds)
2024-02-28 03:22:55 +0100Fijxu(~Fijxu@user/fijxu)
2024-02-28 03:27:01 +0100puke(~puke@user/puke) (Remote host closed the connection)
2024-02-28 03:29:27 +0100puke(~puke@user/puke)
2024-02-28 03:37:56 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-02-28 03:40:01 +0100puke(~puke@user/puke) (Ping timeout: 264 seconds)
2024-02-28 03:44:20 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 03:45:31 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 03:47:34 +0100sroso(~sroso@user/SrOso)
2024-02-28 03:50:00 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 03:54:49 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 03:56:13 +0100otto_s(~user@p5b044e86.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-02-28 03:57:12 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-28 03:57:42 +0100otto_s(~user@p4ff27821.dip0.t-ipconnect.de)
2024-02-28 04:05:57 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-02-28 04:13:34 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 04:14:13 +0100td_(~td@i53870934.versanet.de) (Ping timeout: 264 seconds)
2024-02-28 04:14:22 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-02-28 04:16:00 +0100td_(~td@i5387090D.versanet.de)
2024-02-28 04:19:01 +0100aforemny(~aforemny@2001:9e8:6cef:7500:df27:86b4:bafb:ef5b) (Ping timeout: 264 seconds)
2024-02-28 04:19:10 +0100aforemny_(~aforemny@2001:9e8:6cce:d000:eabb:a6cd:24c6:a0ff)
2024-02-28 04:27:40 +0100jargon(~jargon@111.sub-174-205-228.myvzw.com)
2024-02-28 04:35:17 +0100shapr`(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2024-02-28 04:37:56 +0100malte(~malte@mal.tc) (Ping timeout: 256 seconds)
2024-02-28 04:40:47 +0100falafel(~falafel@wsip-98-160-52-184.dc.dc.cox.net)
2024-02-28 04:42:13 +0100malte(~malte@mal.tc)
2024-02-28 04:47:25 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 04:48:23 +0100sroso(~sroso@user/SrOso)
2024-02-28 04:54:47 +0100Luj(~Luj@2a01:e0a:5f9:9681:535f:4048:fd0:e283) (Quit: Ping timeout (120 seconds))
2024-02-28 04:55:07 +0100Luj(~Luj@2a01:e0a:5f9:9681:5718:f097:e277:c029)
2024-02-28 05:03:39 +0100falafel(~falafel@wsip-98-160-52-184.dc.dc.cox.net) (Remote host closed the connection)
2024-02-28 05:17:10 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-28 05:17:34 +0100lisq(~quassel@lis.moe) (Ping timeout: 268 seconds)
2024-02-28 05:19:04 +0100lisq(~quassel@lis.moe)
2024-02-28 05:24:03 +0100gorignak(~gorignak@user/gorignak)
2024-02-28 05:35:17 +0100jargon(~jargon@111.sub-174-205-228.myvzw.com) (Remote host closed the connection)
2024-02-28 05:48:08 +0100gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-02-28 05:48:49 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 05:50:42 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 05:50:54 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 05:53:00 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
2024-02-28 05:53:21 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-02-28 05:55:34 +0100aforemny(~aforemny@i59F516CF.versanet.de)
2024-02-28 05:55:40 +0100aforemny_(~aforemny@2001:9e8:6cce:d000:eabb:a6cd:24c6:a0ff) (Ping timeout: 255 seconds)
2024-02-28 05:56:13 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-02-28 06:10:23 +0100jrm2(~jrm@user/jrm)
2024-02-28 06:10:57 +0100jrm(~jrm@user/jrm) (Ping timeout: 256 seconds)
2024-02-28 06:12:02 +0100jrm2jrm
2024-02-28 06:12:15 +0100euleritian(~euleritia@dynamic-176-006-177-152.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 06:12:32 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 06:16:14 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds)
2024-02-28 06:20:29 +0100igemnace(~ian@user/igemnace)
2024-02-28 06:27:39 +0100defanor_(~defanor@tart.uberspace.net)
2024-02-28 06:31:51 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 06:39:02 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752)
2024-02-28 06:39:48 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 06:43:38 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-02-28 06:55:11 +0100lockywolf(~lockywolf@public.lockywolf.net) (Killed (ozone (No Spam)))
2024-02-28 06:55:28 +0100lockywolf(~lockywolf@public.lockywolf.net)
2024-02-28 06:58:40 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 07:00:19 +0100sroso(~sroso@user/SrOso)
2024-02-28 07:06:30 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-02-28 07:11:07 +0100michalz(~michalz@185.246.207.222)
2024-02-28 07:13:57 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 07:17:24 +0100zetef(~quassel@95.77.17.251)
2024-02-28 07:17:24 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-02-28 07:22:17 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-02-28 07:30:00 +0100michalz(~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-28 07:32:18 +0100julie_pilgrim(~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
2024-02-28 07:32:49 +0100michalz(~michalz@185.246.207.197)
2024-02-28 07:38:15 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 255 seconds)
2024-02-28 07:38:36 +0100danza(~francesco@ba-19-155-200.service.infuturo.it)
2024-02-28 07:39:38 +0100echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2024-02-28 07:40:34 +0100echoreply(~echoreply@45.32.163.16)
2024-02-28 07:59:29 +0100acidjnk(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de)
2024-02-28 08:04:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-02-28 08:06:18 +0100Flow(~none@gentoo/developer/flow) (Quit: WeeChat 4.1.2)
2024-02-28 08:07:02 +0100Flow(~none@gentoo/developer/flow)
2024-02-28 08:08:51 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 08:09:23 +0100m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 256 seconds)
2024-02-28 08:09:26 +0100euleritian(~euleritia@dynamic-176-006-177-152.176.6.pool.telefonica.de)
2024-02-28 08:09:31 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 08:14:14 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 08:22:16 +0100m5zs7k(aquares@web10.mydevil.net)
2024-02-28 08:23:11 +0100danza(~francesco@ba-19-155-200.service.infuturo.it) (Ping timeout: 268 seconds)
2024-02-28 08:27:44 +0100down200(~down200@shell.lug.mtu.edu) (Ping timeout: 252 seconds)
2024-02-28 08:31:10 +0100down200(~down200@shell.lug.mtu.edu)
2024-02-28 08:34:08 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-28 08:35:34 +0100oneeyedalien(~oneeyedal@user/oneeyedalien)
2024-02-28 08:37:10 +0100jle`(~jle`@2603-8001-3b02-84d4-a02d-ef9e-4d2d-943a.res6.spectrum.com) (Quit: WeeChat 4.2.1)
2024-02-28 08:39:34 +0100jle`(~jle`@2603-8001-3b02-84d4-9b67-becf-c72f-15e3.res6.spectrum.com)
2024-02-28 08:47:19 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-28 09:02:37 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-02-28 09:03:02 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-02-28 09:03:03 +0100sroso(~sroso@user/SrOso) (Read error: Connection reset by peer)
2024-02-28 09:03:35 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-28 09:06:23 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-02-28 09:06:37 +0100sroso(~sroso@user/SrOso)
2024-02-28 09:07:42 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 09:16:33 +0100Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no)
2024-02-28 09:17:32 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-02-28 09:18:05 +0100CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03)
2024-02-28 09:18:29 +0100kuribas(~user@2a02:1808:8c:525f:3605:2624:9302:ebf4)
2024-02-28 09:21:20 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-02-28 09:25:04 +0100sam113101(~sam@modemcable146.137-200-24.mc.videotron.ca) (Remote host closed the connection)
2024-02-28 09:25:13 +0100sam113101(~sam@modemcable146.137-200-24.mc.videotron.ca)
2024-02-28 09:26:07 +0100acidjnk_new(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de)
2024-02-28 09:26:16 +0100acidjnk(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2024-02-28 09:34:48 +0100fronzl(~user@p5b0f33a3.dip0.t-ipconnect.de)
2024-02-28 09:38:37 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-28 09:44:32 +0100euleritian(~euleritia@dynamic-176-006-177-152.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 09:44:50 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 09:48:04 +0100kuribas(~user@2a02:1808:8c:525f:3605:2624:9302:ebf4) (Remote host closed the connection)
2024-02-28 09:49:47 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 09:52:40 +0100danse-nr3(~danse@ba-19-155-200.service.infuturo.it)
2024-02-28 09:54:55 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 09:56:35 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-28 09:57:13 +0100_xor(~xor@ip-208-102-243-175.dynamic.fuse.net) (Read error: Connection reset by peer)
2024-02-28 09:57:56 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
2024-02-28 09:59:43 +0100_xor(~xor@ip-208-102-243-175.dynamic.fuse.net)
2024-02-28 10:03:39 +0100danse-nr3(~danse@ba-19-155-200.service.infuturo.it) (Remote host closed the connection)
2024-02-28 10:04:01 +0100danse-nr3(~danse@ba-19-155-200.service.infuturo.it)
2024-02-28 10:04:20 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 10:04:49 +0100sroso(~sroso@user/SrOso)
2024-02-28 10:06:42 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-02-28 10:08:13 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 264 seconds)
2024-02-28 10:10:02 +0100Benzi-Junior(~BenziJuni@232-148-209-31.dynamic.hringdu.is) (Ping timeout: 252 seconds)
2024-02-28 10:10:57 +0100tomboy64(~tomboy64@user/tomboy64)
2024-02-28 10:18:29 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 10:23:53 +0100danse-nr3(~danse@ba-19-155-200.service.infuturo.it) (Remote host closed the connection)
2024-02-28 10:24:18 +0100drdo3(~drdo@bl14-14-49.dsl.telepac.pt)
2024-02-28 10:25:32 +0100gmg(~user@user/gehmehgeh)
2024-02-28 10:25:35 +0100drdo(~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 268 seconds)
2024-02-28 10:25:35 +0100drdo3drdo
2024-02-28 10:27:39 +0100chele(~chele@user/chele)
2024-02-28 10:29:49 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 10:30:11 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 10:30:23 +0100danse-nr3(~danse@ba-19-155-200.service.infuturo.it)
2024-02-28 10:30:49 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-02-28 10:30:58 +0100gmg(~user@user/gehmehgeh)
2024-02-28 10:33:50 +0100average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-02-28 10:42:12 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de) (Quit: leaving)
2024-02-28 10:43:52 +0100sroso(~sroso@user/SrOso)
2024-02-28 10:49:13 +0100mjacob_(~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer)
2024-02-28 10:54:54 +0100mjacob(~mjacob@adrastea.uberspace.de)
2024-02-28 10:56:25 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds)
2024-02-28 11:00:41 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 11:04:16 +0100fronzl(~user@p5b0f33a3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-02-28 11:05:22 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 11:05:38 +0100__monty__(~toonn@user/toonn)
2024-02-28 11:06:53 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
2024-02-28 11:15:10 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-28 11:24:48 +0100zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 256 seconds)
2024-02-28 11:27:09 +0100zer0bitz(~zer0bitz@user/zer0bitz)
2024-02-28 11:29:43 +0100danse-nr3(~danse@ba-19-155-200.service.infuturo.it) (Read error: Connection reset by peer)
2024-02-28 11:30:22 +0100danse-nr3(~danse@an-19-162-127.service.infuturo.it)
2024-02-28 11:33:12 +0100mulk(~mulk@pd9514745.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-02-28 11:36:15 +0100Nikopol(nikopol@user/astrorigin) (Ping timeout: 272 seconds)
2024-02-28 11:36:55 +0100mulk(~mulk@pd9514e24.dip0.t-ipconnect.de)
2024-02-28 11:37:00 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 11:40:12 +0100Nikopol(nikopol@user/astrorigin)
2024-02-28 11:40:31 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds)
2024-02-28 11:46:30 +0100Square2(~Square4@user/square)
2024-02-28 11:46:37 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:d931:6fb2:1f6f:56aa) (Ping timeout: 264 seconds)
2024-02-28 11:47:47 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 11:48:59 +0100 <danse-nr3> a code formatter like ourmolu collapses all inputs to a single output. Is this a type of morphism?
2024-02-28 11:50:09 +0100 <danse-nr3> hmm not "all" technically ...
2024-02-28 11:50:55 +0100 <probie> Are you looking for the word "idempotent", or something else?
2024-02-28 11:51:15 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06)
2024-02-28 11:51:43 +0100 <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 11:52:22 +0100oneeyedalien(~oneeyedal@user/oneeyedalien) (Quit: Leaving)
2024-02-28 11:52:48 +0100 <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 11:54:33 +0100 <danse-nr3> huh non-injective maybe ... multitasking does not help with recalling math concepts ):
2024-02-28 11:55:15 +0100 <danse-nr3> not bijective for sure XD
2024-02-28 11:55:26 +0100 <dminuoso> non-surjective and non-injective.
2024-02-28 11:55:42 +0100 <dminuoso> (Im not aware of any specific term for that combination)
2024-02-28 11:55:45 +0100 <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 11:55:57 +0100 <danse-nr3> non-injective, thanks probie
2024-02-28 11:56:38 +0100 <dminuoso> The closest notion of somehow tossing away information I know of is forgetful functors in category theory.
2024-02-28 11:56:51 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06) (Ping timeout: 268 seconds)
2024-02-28 11:56:52 +0100 <dminuoso> But that's not even mildly useful if we dont start out with categories to begin with
2024-02-28 11:57:07 +0100 <danse-nr3> interesting i will look that up when i will have time, cheers
2024-02-28 11:58:07 +0100 <dminuoso> danse-nr3: Perhaps the better description is not that it "throws away information", but rather that it "preserves" information.
2024-02-28 11:59:09 +0100 <danse-nr3> noted
2024-02-28 11:59:21 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06)
2024-02-28 12:01:46 +0100 <opqdonut> a formatter is a projection: it is an idempotent mapping to a subset
2024-02-28 12:02:47 +0100 <danse-nr3> well spotted ... a projection is probably what clicked to me
2024-02-28 12:06:10 +0100 <ncf> "retraction" also comes to mind
2024-02-28 12:06:36 +0100 <danse-nr3> huh? Looking that up...
2024-02-28 12:06:55 +0100kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 255 seconds)
2024-02-28 12:07:09 +0100 <danse-nr3> this https://en.wikipedia.org/wiki/Section_(category_theory) ?
2024-02-28 12:07:20 +0100 <ncf> yes
2024-02-28 12:07:33 +0100 <danse-nr3> interesting, thanks
2024-02-28 12:08:06 +0100 <ncf> with X := String and Y := AST-with-comments or something
2024-02-28 12:08:44 +0100kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca)
2024-02-28 12:09:34 +0100 <ncf> (in fancy terms, this is a splitting of the idempotent formatting function)
2024-02-28 12:09:53 +0100 <danse-nr3> o.o
2024-02-28 12:09:56 +0100xff0x(~xff0x@ai082039.d.east.v6connect.net)
2024-02-28 12:10:13 +0100 <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 12:10:31 +0100 <ncf> https://ncatlab.org/nlab/show/idempotent
2024-02-28 12:14:59 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 264 seconds)
2024-02-28 12:16:14 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-28 12:17:22 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:4142:543a:fbbd:3f06) (Quit: ubert)
2024-02-28 12:26:15 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds)
2024-02-28 12:35:51 +0100ph88^(~ph88@2a02:8109:9e26:c800:b36c:4250:a2e0:f38d)
2024-02-28 12:37:51 +0100teo(~teo@user/teo)
2024-02-28 12:37:57 +0100 <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 12:46:04 +0100puke(~puke@user/puke)
2024-02-28 12:53:08 +0100ph88_(~ph88@2a02:8109:9e26:c800:2e55:526f:a486:95bf)
2024-02-28 12:56:49 +0100ph88^(~ph88@2a02:8109:9e26:c800:b36c:4250:a2e0:f38d) (Ping timeout: 264 seconds)
2024-02-28 12:57:40 +0100ph88^(~ph88@2a02:8109:9e26:c800:8a14:b17:1b0c:ea92)
2024-02-28 12:57:42 +0100 <probie> ph88^: what do you expect to happen if `es` contains another `State`?
2024-02-28 12:58:19 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net)
2024-02-28 12:58:34 +0100ph88_(~ph88@2a02:8109:9e26:c800:2e55:526f:a486:95bf) (Ping timeout: 246 seconds)
2024-02-28 12:59:19 +0100ph88_(~ph88@2a02:8109:9e26:c800:16fb:846f:303b:b33f)
2024-02-28 12:59:51 +0100CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds)
2024-02-28 13:00:11 +0100 <ph88_> probie, match on the inner type of State
2024-02-28 13:00:35 +0100 <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 13:01:31 +0100 <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 13:01:56 +0100 <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 13:02:13 +0100ph88^(~ph88@2a02:8109:9e26:c800:8a14:b17:1b0c:ea92) (Ping timeout: 256 seconds)
2024-02-28 13:08:27 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-02-28 13:10:46 +0100 <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 13:11:06 +0100chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
2024-02-28 13:11:34 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-02-28 13:11:34 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
2024-02-28 13:11:34 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Ping timeout: 260 seconds)
2024-02-28 13:12:02 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
2024-02-28 13:12:16 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net) (Remote host closed the connection)
2024-02-28 13:12:17 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-28 13:13:14 +0100chiselfuse(~chiselfus@user/chiselfuse)
2024-02-28 13:13:48 +0100gmg(~user@user/gehmehgeh)
2024-02-28 13:16:39 +0100stiell_(~stiell@gateway/tor-sasl/stiell)
2024-02-28 13:18:47 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-02-28 13:19:46 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:ddb0:cba8:992d:fa6b)
2024-02-28 13:21:01 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net)
2024-02-28 13:22:11 +0100danse-nr3(~danse@an-19-162-127.service.infuturo.it) (Ping timeout: 264 seconds)
2024-02-28 13:23:24 +0100Guest9(~Guest9@165.225.106.173)
2024-02-28 13:24:56 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net) (Remote host closed the connection)
2024-02-28 13:25:15 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net)
2024-02-28 13:25:55 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-02-28 13:26:00 +0100 <leah2> very random question maybe: when you write code with lots of $ or ., do you write(!) it from left to right?
2024-02-28 13:27:20 +0100ph88^(~ph88@2a02:8109:9e26:c800:db68:7ede:746b:23cf)
2024-02-28 13:28:08 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2024-02-28 13:28:09 +0100 <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 13:28:42 +0100 <Guest9> If you have cabal, and have the source code for a cabal package, how do you install it?
2024-02-28 13:28:43 +0100 <Guest9> The package I'm talking about is : https://hackage.haskell.org/package/fast-tags-2.0.2/src/
2024-02-28 13:29:01 +0100 <leah2> jackdk: my question aims how you write the code, not which construct you use
2024-02-28 13:29:35 +0100 <ph88^> probie, https://pastebin.com/38UXgMM9
2024-02-28 13:29:59 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-02-28 13:30:54 +0100ph88_(~ph88@2a02:8109:9e26:c800:16fb:846f:303b:b33f) (Ping timeout: 268 seconds)
2024-02-28 13:30:54 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 13:30:59 +0100 <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 13:31:46 +0100gmg(~user@user/gehmehgeh)
2024-02-28 13:33:10 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Client Quit)
2024-02-28 13:33:36 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2024-02-28 13:38:39 +0100 <ncf> i write code inside-out and counterclockwise
2024-02-28 13:42:11 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-28 13:43:04 +0100igemnace(~ian@user/igemnace)
2024-02-28 13:44:10 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-02-28 13:44:10 +0100chiselfuse(~chiselfus@user/chiselfuse) (Read error: Connection reset by peer)
2024-02-28 13:44:10 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 13:44:10 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-02-28 13:44:25 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-28 13:44:50 +0100chiselfuse(~chiselfus@user/chiselfuse)
2024-02-28 13:44:57 +0100gmg(~user@user/gehmehgeh)
2024-02-28 13:46:02 +0100stiell_(~stiell@gateway/tor-sasl/stiell)
2024-02-28 13:55:57 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-28 13:56:43 +0100ph88(~ph88@2a02:8109:9e26:c800:8ede:73b0:bb5c:daa3) (Remote host closed the connection)
2024-02-28 13:57:01 +0100ph88(~ph88@2a02:8109:9e26:c800:6088:3c01:97a2:ea63)
2024-02-28 13:58:00 +0100bontaq(~user@ool-45779c03.dyn.optonline.net)
2024-02-28 13:59:38 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-02-28 13:59:56 +0100ec(~ec@gateway/tor-sasl/ec)
2024-02-28 14:00:26 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-02-28 14:04:16 +0100danse-nr3(~danse@151.35.185.185)
2024-02-28 14:04:43 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 246 seconds)
2024-02-28 14:07:36 +0100Guest9(~Guest9@165.225.106.173) (Quit: Client closed)
2024-02-28 14:16:01 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-02-28 14:17:30 +0100euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de)
2024-02-28 14:18:42 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-02-28 14:23:21 +0100Silver_X(~Silver_X@182.178.140.49)
2024-02-28 14:27:19 +0100destituion(~destituio@2a02:2121:34a:61a6:4e6d:b1ea:af4:eb36) (Ping timeout: 255 seconds)
2024-02-28 14:27:49 +0100destituion(~destituio@85.221.111.174)
2024-02-28 14:37:57 +0100RedNifre(~RedNifre@dslb-002-206-059-238.002.206.pools.vodafone-ip.de)
2024-02-28 14:38:01 +0100 <RedNifre> Hello!
2024-02-28 14:38:21 +0100 <danse-nr3> o/
2024-02-28 14:38:22 +0100 <RedNifre> What would be a good name for a function that kinda maps ALL values of a variable sized tuple?
2024-02-28 14:38:37 +0100 <danse-nr3> might still exist
2024-02-28 14:38:41 +0100 <RedNifre> It can't be map, since map would only map one value, to make it monadic, right?
2024-02-28 14:38:47 +0100 <danse-nr3> oh, variable sized
2024-02-28 14:38:53 +0100 <RedNifre> maybe multiMap?
2024-02-28 14:39:02 +0100 <RedNifre> It's not really a Haskell question, more like an FP question.
2024-02-28 14:39:17 +0100Silver_X(~Silver_X@182.178.140.49) (Read error: Connection reset by peer)
2024-02-28 14:39:21 +0100 <danse-nr3> still sounds like an fmap to me, but someone else might know better
2024-02-28 14:39:22 +0100 <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 14:39:36 +0100 <RedNifre> And I now want to make sure that all passed values of type YearMonth fall into a specified range.
2024-02-28 14:39:48 +0100 <danse-nr3> different types?
2024-02-28 14:40:08 +0100 <RedNifre> So something like args.multiMap { when(it) { is yearMonth -> clamp(it); else -> it }}
2024-02-28 14:40:33 +0100 <RedNifre> Yeah, different types. I would inspect the type at runtime and only clamp the YearMonth values and leave the rest.
2024-02-28 14:40:34 +0100 <danse-nr3> could you write the type signature? Or you want to discuss it in an untyped language?
2024-02-28 14:41:58 +0100 <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 14:42:27 +0100 <RedNifre> For example ("Hello", 2080-10) -> ("Hello", 2024-2)
2024-02-28 14:42:57 +0100 <danse-nr3> does this have anything to do with haskell?
2024-02-28 14:43:09 +0100 <RedNifre> Or also ("Some more args", 123, 2090-3, 999, 2040-2) -> ("Some more args", 123, 2024-2, 999, 2024-2)
2024-02-28 14:43:28 +0100 <danse-nr3> i am not familiar with Tuple* (?*) syntax
2024-02-28 14:43:33 +0100 <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 14:44:15 +0100 <sshine> sounds like something you might do with sum types, or instances of a type class, or record types.
2024-02-28 14:44:18 +0100 <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 14:44:39 +0100 <sshine> RedNifre, have you investigated record types?
2024-02-28 14:45:42 +0100 <RedNifre> Sure, but that's not what this is about, since I'm dealing with tuples here.
2024-02-28 14:45:47 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-1d43-7b36-43f5-0bad.rev.sfr.net) (Remote host closed the connection)
2024-02-28 14:46:08 +0100 <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 14:46:09 +0100alexherbo2(~alexherbo@220.12.23.93.rev.sfr.net)
2024-02-28 14:46:35 +0100 <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 14:47:02 +0100 <RedNifre> Hm, how about calling it multiMap? partialMap? crazyMap?
2024-02-28 14:47:27 +0100 <danse-nr3> well a map usually refers to an exposed parameter
2024-02-28 14:47:40 +0100 <danse-nr3> and a functor
2024-02-28 14:48:02 +0100 <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 14:50:09 +0100 <dminuoso> RedNifre: We have a notion of Bifunctor (and accordingly bimap).
2024-02-28 14:50:10 +0100 <RedNifre> Hm, in Ramda it's something like "adjust", maybe I just name it that.
2024-02-28 14:50:20 +0100 <dminuoso> I guess you could generalize this into N-functor and n-map?
2024-02-28 14:50:32 +0100 <RedNifre> Is there also TriFunctor and VariableSizeFunctor with variableSizeMap?
2024-02-28 14:50:37 +0100 <RedNifre> hm!
2024-02-28 14:50:47 +0100 <RedNifre> nMap sounds interesting.
2024-02-28 14:51:04 +0100 <danse-nr3> code that abstracts over map size is very rare in haskell
2024-02-28 14:51:19 +0100 <danse-nr3> sorry, tuple size
2024-02-28 14:51:41 +0100__monty__(~toonn@user/toonn) (Ping timeout: 268 seconds)
2024-02-28 14:54:49 +0100 <dminuoso> RedNifre: Writing an a typeclass Multifunctor might be a fun excercise.
2024-02-28 14:55:37 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-02-28 14:56:15 +0100 <lortabac> RedNifre: I'd call it 'tmap', 'mapT' or 'mapTuple'
2024-02-28 14:58:03 +0100 <danse-nr3> can it even work without something more encapsulated than a tuple though?
2024-02-28 15:02:51 +0100 <lortabac> danse-nr3: I remember seeing different n-ary functor proposals, they were all quite complex
2024-02-28 15:05:02 +0100 <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 15:05:31 +0100Guest50(~Guest15@105.112.248.197)
2024-02-28 15:06:45 +0100 <jackdk> check out Control.Lens.Each from package lens
2024-02-28 15:07:01 +0100 <sshine> sounds lensy actually, yes
2024-02-28 15:08:37 +0100 <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 15:09:37 +0100 <jackdk> uniplate and friends are worth looking at too
2024-02-28 15:09:43 +0100 <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 15:10:14 +0100 <danse-nr3> i think we lost RedNifre already
2024-02-28 15:10:22 +0100Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187)
2024-02-28 15:11:23 +0100mulk(~mulk@pd9514e24.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-02-28 15:11:43 +0100 <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 15:13:12 +0100 <jackdk> You can build all sorts of cool stuff out of generics, Typeable, etc, but it's rarely the best option
2024-02-28 15:13:24 +0100 <Guest50> Hello everyone,
2024-02-28 15:13:24 +0100 <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 15:13:25 +0100 <Guest50> me. Looking forward to connecting with someone willing to share their expertise. Thanks a bunch!
2024-02-28 15:14:11 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-02-28 15:14:26 +0100 <danse-nr3> "the" haskell course?
2024-02-28 15:15:23 +0100 <Guest50> not really i finish "Haskell MOOC" course
2024-02-28 15:15:48 +0100 <Guest50> and i want to embark on build a personal project
2024-02-28 15:16:01 +0100 <Guest50> before starting an internship
2024-02-28 15:16:22 +0100mulk(~mulk@pd9514e24.dip0.t-ipconnect.de)
2024-02-28 15:19:41 +0100 <danse-nr3> welcome to haskell then. About your personal project, i suggest to start small
2024-02-28 15:20:26 +0100 <shapr> hi! I like Haskell!
2024-02-28 15:23:24 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-02-28 15:24:23 +0100 <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 15:25:01 +0100 <danse-nr3> well you can hang around here. Maybe get a libera user name so that we can recognize you easier
2024-02-28 15:25:11 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-02-28 15:25:49 +0100 <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 15:27:23 +0100 <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 15:28:03 +0100 <Guest50> I totally agree with you darkling
2024-02-28 15:33:01 +0100 <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 15:34:59 +0100 <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 15:35:28 +0100 <danse-nr3> oh they are easy to find
2024-02-28 15:40:17 +0100 <Guest50> Okay danse-nr3 i found one already on reddit
2024-02-28 15:40:24 +0100 <danse-nr3> v
2024-02-28 15:41:10 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 15:43:14 +0100__monty__(~toonn@user/toonn)
2024-02-28 15:44:44 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-02-28 15:44:52 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
2024-02-28 15:46:01 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 264 seconds)
2024-02-28 15:48:44 +0100euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 15:49:01 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 15:50:13 +0100__monty__(~toonn@user/toonn) (Ping timeout: 264 seconds)
2024-02-28 15:59:44 +0100teo(~teo@user/teo) ()
2024-02-28 16:09:15 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 16:09:38 +0100CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03)
2024-02-28 16:10:47 +0100Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187) (Ping timeout: 250 seconds)
2024-02-28 16:10:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-02-28 16:11:19 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 16:12:10 +0100danse-nr3(~danse@151.35.185.185) (Ping timeout: 255 seconds)
2024-02-28 16:12:29 +0100euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de)
2024-02-28 16:14:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 16:18:07 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 260 seconds)
2024-02-28 16:20:44 +0100haftl(~user@user/haftl)
2024-02-28 16:23:16 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252)
2024-02-28 16:25:20 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
2024-02-28 16:26:34 +0100danza(~francesco@151.35.185.185)
2024-02-28 16:29:22 +0100zmt00(~zmt00@user/zmt00)
2024-02-28 16:30:26 +0100 <kuribas> There is "Functional Programming" on discord
2024-02-28 16:30:30 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish)
2024-02-28 16:34:23 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2024-02-28 16:39:27 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-02-28 16:41:23 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 16:44:50 +0100vulpine(xfnw@tilde.team) (Quit: Connection reset by purr)
2024-02-28 16:46:04 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 268 seconds)
2024-02-28 16:46:12 +0100bontaq(~user@ool-45779c03.dyn.optonline.net) (Remote host closed the connection)
2024-02-28 16:49:36 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 16:51:17 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 16:53:34 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 16:55:55 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 16:58:17 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 17:00:42 +0100 <juri_> you could also join some haskell project. most people are willing to tolerate a lot for another developer.
2024-02-28 17:01:59 +0100danza(~francesco@151.35.185.185) (Ping timeout: 252 seconds)
2024-02-28 17:02:21 +0100Guest50(~Guest15@105.112.248.197) (Ping timeout: 250 seconds)
2024-02-28 17:03:35 +0100destituion(~destituio@85.221.111.174) (Ping timeout: 264 seconds)
2024-02-28 17:07:06 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-02-28 17:11:26 +0100destituion(~destituio@2a02:2121:34a:61a6:3256:75da:727b:1921)
2024-02-28 17:12:22 +0100danza(~francesco@151.35.185.185)
2024-02-28 17:20:56 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-02-28 17:25:57 +0100bontaq(~user@ool-45779c03.dyn.optonline.net)
2024-02-28 17:26:49 +0100Guest58(~Guest58@188.120.100.237)
2024-02-28 17:32:45 +0100 <RedNifre> No, you didn't lose me.
2024-02-28 17:35:09 +0100 <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 17:35:11 +0100 <RedNifre> type (this is not type checked automatically, since I think it's impossible, at least in Kotlin).
2024-02-28 17:36:05 +0100danza(~francesco@151.35.185.185) (Ping timeout: 252 seconds)
2024-02-28 17:36:15 +0100Silver_X(~Silver_X@182.178.140.49)
2024-02-28 17:37:45 +0100 <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 17:37:46 +0100 <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 17:37:50 +0100 <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 17:37:57 +0100 <EvanR> then you can fmap the components
2024-02-28 17:38:17 +0100Guest30(~Guest58@188.120.100.237)
2024-02-28 17:38:29 +0100 <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 17:38:38 +0100 <RedNifre> And it's done already, so it's all good :)
2024-02-28 17:38:47 +0100 <RedNifre> Thank you to everyone who chimed in!
2024-02-28 17:39:44 +0100 <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 17:39:56 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
2024-02-28 17:41:14 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 17:41:30 +0100Guest30(~Guest58@188.120.100.237) (Client Quit)
2024-02-28 17:41:47 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252) (Ping timeout: 250 seconds)
2024-02-28 17:42:13 +0100Guest58(~Guest58@188.120.100.237) (Ping timeout: 250 seconds)
2024-02-28 17:42:37 +0100 <cheater> Haskell Developers Announce Discovery of Industry Programmer Who Gives a Shit
2024-02-28 17:43:26 +0100 <cheater> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaand he's gone
2024-02-28 17:43:36 +0100 <cheater> back to sulking, everyone
2024-02-28 17:45:13 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 17:47:37 +0100 <Silver_X> That was a good read
2024-02-28 17:48:11 +0100CiaoSen(~Jura@2a05:5800:2d6:e700:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
2024-02-28 17:51:36 +0100danse-nr3(~danse@151.35.185.185)
2024-02-28 17:52:25 +0100Guest58(~Guest58@188.120.100.237)
2024-02-28 17:52:38 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-28 17:53:11 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-02-28 17:54:17 +0100alexherbo2(~alexherbo@220.12.23.93.rev.sfr.net) (Remote host closed the connection)
2024-02-28 17:54:38 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-503a-5ce6-b6b2-07fb.rev.sfr.net)
2024-02-28 17:56:58 +0100carbolymer(~carbolyme@dropacid.net) (Remote host closed the connection)
2024-02-28 17:58:03 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-02-28 18:02:49 +0100danse-nr3(~danse@151.35.185.185) (Ping timeout: 264 seconds)
2024-02-28 18:03:19 +0100danse-nr3(~danse@151.35.204.200)
2024-02-28 18:07:14 +0100glguy(g@libera/staff/glguy) (Quit: Quit)
2024-02-28 18:09:14 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-28 18:12:33 +0100glguy(g@libera/staff/glguy)
2024-02-28 18:17:45 +0100Silver_X(~Silver_X@182.178.140.49) (Quit: Leaving)
2024-02-28 18:19:57 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds)
2024-02-28 18:25:33 +0100Guest58(~Guest58@188.120.100.237) (Ping timeout: 250 seconds)
2024-02-28 18:26:49 +0100danse-nr3(~danse@151.35.204.200) (Ping timeout: 264 seconds)
2024-02-28 18:27:36 +0100g(g@libera/staff/glguy) (Remote host closed the connection)
2024-02-28 18:30:36 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
2024-02-28 18:32:29 +0100__monty__(~toonn@user/toonn)
2024-02-28 18:33:34 +0100ak-1(~ak-1@ip-037-201-198-027.um10.pools.vodafone-ip.de)
2024-02-28 18:34:18 +0100alexherbo2(~alexherbo@2a02-8440-3241-a025-503a-5ce6-b6b2-07fb.rev.sfr.net) (Remote host closed the connection)
2024-02-28 18:36:19 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-28 18:37:06 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-02-28 18:41:24 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 18:41:35 +0100g(glguy@libera/staff/glguy)
2024-02-28 18:41:51 +0100notzmv(~daniel@user/notzmv) (Ping timeout: 272 seconds)
2024-02-28 18:41:53 +0100g(glguy@libera/staff/glguy) ()
2024-02-28 18:42:19 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:ddb0:cba8:992d:fa6b) (Remote host closed the connection)
2024-02-28 18:43:40 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds)
2024-02-28 18:44:51 +0100euphores(~SASL_euph@user/euphores)
2024-02-28 18:46:55 +0100danse-nr3(~danse@151.35.204.200)
2024-02-28 18:46:55 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 18:49:22 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-02-28 18:49:31 +0100euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-28 18:49:47 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-28 18:49:52 +0100ec(~ec@gateway/tor-sasl/ec)
2024-02-28 18:50:23 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-02-28 18:50:31 +0100rvalue(~rvalue@user/rvalue)
2024-02-28 18:53:37 +0100Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187)
2024-02-28 18:53:53 +0100Guest62(~Guest62@2406:7400:56:348a:945b:9e1e:cc22:9187) (Client Quit)
2024-02-28 18:55:27 +0100ak-1(~ak-1@ip-037-201-198-027.um10.pools.vodafone-ip.de) (Quit: Client closed)
2024-02-28 19:05:14 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-02-28 19:08:41 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-28 19:11:38 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 19:12:22 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 19:13:26 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-02-28 19:13:30 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
2024-02-28 19:14:03 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 19:16:52 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 19:17:19 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Client Quit)
2024-02-28 19:18:29 +0100Square2(~Square4@user/square) (Ping timeout: 256 seconds)
2024-02-28 19:18:54 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
2024-02-28 19:31:30 +0100sadie-sorceress(~sadie-sor@199.96.191.158)
2024-02-28 19:32:31 +0100infinity0Guest2606
2024-02-28 19:32:32 +0100Guest2606(~infinity0@pwned.gg) (Killed (iridium.libera.chat (Nickname regained by services)))
2024-02-28 19:32:41 +0100infinity0(~infinity0@pwned.gg)
2024-02-28 19:39:14 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-28 19:39:39 +0100sadie-sorceress(~sadie-sor@199.96.191.158) (Ping timeout: 250 seconds)
2024-02-28 19:41:19 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-02-28 19:41:43 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 19:42:27 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Client Quit)
2024-02-28 19:42:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-28 19:43:14 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-28 19:43:26 +0100infinity0(~infinity0@pwned.gg)
2024-02-28 19:47:43 +0100danse-nr3(~danse@151.35.204.200) (Ping timeout: 272 seconds)
2024-02-28 19:48:44 +0100notzmv(~daniel@user/notzmv)
2024-02-28 19:51:36 +0100target_i(~target_i@217.175.14.39)
2024-02-28 19:51:56 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 252 seconds)
2024-02-28 19:53:01 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-02-28 19:57:30 +0100sadie-sorceress(~sadie-sor@199.96.191.158)
2024-02-28 20:02:22 +0100sadie-sorceress(~sadie-sor@199.96.191.158) (Client Quit)
2024-02-28 20:06:41 +0100phma(~phma@host-67-44-208-86.hnremote.net) (Read error: Connection reset by peer)
2024-02-28 20:06:53 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds)
2024-02-28 20:07:44 +0100phma(~phma@host-67-44-208-71.hnremote.net)
2024-02-28 20:08:12 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 20:11:49 +0100tri_(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 20:13:03 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
2024-02-28 20:13:28 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 20:16:31 +0100tri_(~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
2024-02-28 20:25:31 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-02-28 20:26:20 +0100thegeekinside(~thegeekin@189.217.83.221) (Remote host closed the connection)
2024-02-28 20:37:37 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-28 20:39:48 +0100ph88^(~ph88@2a02:8109:9e26:c800:db68:7ede:746b:23cf) (Remote host closed the connection)
2024-02-28 20:41:54 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 20:42:25 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 264 seconds)
2024-02-28 20:43:49 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-02-28 20:44:08 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-28 20:44:17 +0100tri(~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
2024-02-28 20:44:30 +0100tri(~tri@ool-18bbef1a.static.optonline.net)
2024-02-28 20:46:04 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252)
2024-02-28 20:53:28 +0100jargon(~jargon@111.sub-174-205-228.myvzw.com)
2024-02-28 20:57:07 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252) (Quit: Client closed)
2024-02-28 21:03:53 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252)
2024-02-28 21:04:52 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-02-28 21:17:48 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-28 21:29:44 +0100vulpine(xfnw@tilde.team)
2024-02-28 21:39:51 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 21:51:55 +0100pyooque(~puke@user/puke)
2024-02-28 21:51:55 +0100pukeGuest2325
2024-02-28 21:51:55 +0100pyooquepuke
2024-02-28 21:53:29 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 252 seconds)
2024-02-28 21:54:19 +0100Guest2325(~puke@user/puke) (Ping timeout: 256 seconds)
2024-02-28 21:55:22 +0100zetef(~quassel@95.77.17.251)
2024-02-28 21:58:36 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-02-28 22:01:53 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de)
2024-02-28 22:05:49 +0100 <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 22:06:31 +0100 <glguy> > until (>= 1000) (*2) 1
2024-02-28 22:06:32 +0100 <lambdabot> 1024
2024-02-28 22:07:19 +0100euphores(~SASL_euph@user/euphores)
2024-02-28 22:08:19 +0100 <energizer> ah nice
2024-02-28 22:08:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-02-28 22:09:10 +0100euleritian(~euleritia@dynamic-176-006-186-165.176.6.pool.telefonica.de)
2024-02-28 22:09:48 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-28 22:09:51 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2024-02-28 22:12:01 +0100 <energizer> what about the scan version of that, returning the list of intermediate results?
2024-02-28 22:12:47 +0100 <int-e> > takeWhile (< 1000) $ iterate (*2) 1
2024-02-28 22:12:48 +0100 <lambdabot> [1,2,4,8,16,32,64,128,256,512]
2024-02-28 22:13:11 +0100Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 264 seconds)
2024-02-28 22:13:12 +0100 <int-e> (not quite right, I know)
2024-02-28 22:13:21 +0100 <int-e> :t unfoldr
2024-02-28 22:13:22 +0100 <lambdabot> (b -> Maybe (a, b)) -> b -> [a]
2024-02-28 22:13:39 +0100 <int-e> (unfoldr is so unwieldy)
2024-02-28 22:14:31 +0100target_i(~target_i@217.175.14.39) (Quit: leaving)
2024-02-28 22:15:03 +0100zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-02-28 22:15:35 +0100 <Rembane> :i until
2024-02-28 22:15:56 +0100 <Rembane> Hm... nope. I need to alias unfoldr with unwieldr though.
2024-02-28 22:16:17 +0100 <c_wraith> unfoldr is a demonstration of how anamorphisms can be a lot more awkward than catmorphisms
2024-02-28 22:16:20 +0100gmg(~user@user/gehmehgeh)
2024-02-28 22:17:40 +0100 <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 22:18:09 +0100 <energizer> i think scanuntil would be `(a -> Bool) -> (a -> a) -> a -> [a]` ?
2024-02-28 22:19:22 +0100 <Rembane> c_wraith: Is that why the hof in unfoldr gives Maybe (a, b)?
2024-02-28 22:19:30 +0100 <c_wraith> yes
2024-02-28 22:19:32 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.252) (Quit: Client closed)
2024-02-28 22:19:50 +0100 <Rembane> Got it.
2024-02-28 22:19:53 +0100 <c_wraith> I suppose you could CPS it.
2024-02-28 22:20:12 +0100 <c_wraith> But then the type would look... uh... even more unwieldy
2024-02-28 22:22:05 +0100 <int-e> we should all remember that explicit recursion is always an option
2024-02-28 22:22:08 +0100 <Rembane> There's a certain allure with a maximum cursed anamorphism
2024-02-28 22:22:44 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-02-28 22:25:14 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-02-28 22:25:48 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-02-28 22:25:59 +0100gmg(~user@user/gehmehgeh)
2024-02-28 22:26:35 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-28 22:31:43 +0100 <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 22:31:44 +0100 <lambdabot> [0,1,2,3,4,5]
2024-02-28 22:32:19 +0100 <c_wraith> the type is only a little impenetrable
2024-02-28 22:33:32 +0100 <c_wraith> huh. I'm like one step away from rediscovering fodlr/build fusion
2024-02-28 22:33:38 +0100 <c_wraith> *foldr/build
2024-02-28 22:34:43 +0100Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2024-02-28 22:35:56 +0100 <int-e> :t GHC.Base.build
2024-02-28 22:35:57 +0100 <lambdabot> (forall b. (a -> b -> b) -> b -> b) -> [a]
2024-02-28 22:37:27 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds)
2024-02-28 22:37:29 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-02-28 22:39:57 +0100Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-02-28 22:41:30 +0100turlando(~turlando@user/turlando) (Remote host closed the connection)
2024-02-28 22:42:04 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-02-28 22:42:45 +0100turlando(~turlando@user/turlando)
2024-02-28 22:43:35 +0100hiredman(~hiredman@frontier1.downey.family) (Ping timeout: 260 seconds)
2024-02-28 22:43:57 +0100Katarushisu1(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net)
2024-02-28 22:48:10 +0100 <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 22:52:43 +0100pavonia(~user@user/siracusa)
2024-02-28 22:53:06 +0100michalz(~michalz@185.246.207.197) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-28 22:53:36 +0100Lycurgus(~georg@user/Lycurgus)
2024-02-28 22:53:42 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-02-28 22:56:35 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-02-28 23:12:00 +0100hiredman(~hiredman@frontier1.downey.family)
2024-02-28 23:21:25 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-02-28 23:24:53 +0100haftl(~user@user/haftl) (Remote host closed the connection)
2024-02-28 23:25:11 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-02-28 23:35:33 +0100Square2(~Square4@user/square)
2024-02-28 23:43:07 +0100acidjnk_new(~acidjnk@p200300d6e737e7563c535b90a1f52aa7.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-02-28 23:43:30 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-28 23:46:34 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-28 23:54:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2024-02-28 23:55:28 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)