Home liberachat/#haskell: Logs Calendar

Logs on 2024-02-28 (liberachat/#haskell)

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

All times are in UTC on 2024-02-28.