Home liberachat/#haskell: Logs Calendar

Logs on 2023-04-26 (liberachat/#haskell)

00:04:11 nate1 joins (~nate@98.45.169.16)
00:06:20 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
00:09:05 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
00:09:15 × y04nn quits (~username@2a03:1b20:5:f011::aaae) (Ping timeout: 248 seconds)
00:09:43 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
00:10:36 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:14:55 Me-me joins (~Me-me@146.102.215.218.dyn.iprimus.net.au)
00:15:15 Batzy_ joins (~quassel@user/batzy)
00:16:32 × Batzy_ quits (~quassel@user/batzy) (Client Quit)
00:17:51 Batzy_ joins (~quassel@user/batzy)
00:17:53 × elvishjerricco quits (~elvishjer@2001:470:69fc:105::6172) (Ping timeout: 246 seconds)
00:18:15 elvishjerricco joins (~elvishjer@2001:470:69fc:105::6172)
00:18:32 × Batzy quits (~quassel@user/batzy) (Ping timeout: 252 seconds)
00:20:55 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!)
00:21:17 × jwiegley quits (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Remote host closed the connection)
00:21:39 jwiegley joins (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
00:21:49 namiroff_ joins (~namiroff@31.223.145.39)
00:22:19 Wstfgl0_ joins (~Me-me@146.102.215.218.dyn.iprimus.net.au)
00:22:32 × Me-me quits (~Me-me@146.102.215.218.dyn.iprimus.net.au) (Killed (NickServ (GHOST command used by Wstfgl0_)))
00:22:35 Wstfgl0_ is now known as Me-me
00:22:46 Me-me is now known as notme
00:24:05 × namiroff quits (~namiroff@31.223.145.73) (Ping timeout: 240 seconds)
00:25:15 × slack1256 quits (~slack1256@181.42.41.193) (Ping timeout: 255 seconds)
00:27:05 notme is now known as Me-me
00:28:54 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
00:33:09 × Me-me quits (~Me-me@146.102.215.218.dyn.iprimus.net.au) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.)
00:33:12 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
00:33:37 Me-me joins (~Me-me@user/me-me)
00:33:43 slack1256 joins (~slack1256@181.42.41.193)
00:37:20 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
00:38:37 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf)
00:41:05 jargon joins (~jargon@184.101.73.92)
00:43:20 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf) (Ping timeout: 260 seconds)
00:43:45 × Igloo quits (~ian@matrix.chaos.earth.li) (Remote host closed the connection)
00:52:21 × barzo quits (~hd@31.223.56.27) (Quit: Leaving)
00:52:35 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:52:35 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:52:35 wroathe joins (~wroathe@user/wroathe)
00:58:52 Igloo joins (~ian@matrix.chaos.earth.li)
01:01:25 LSkilton joins (~LSkilton@138.84.45.144)
01:06:39 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:3d98:d056:c84e:e188) (Ping timeout: 260 seconds)
01:06:40 ub is now known as ubert
01:07:34 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
01:10:59 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:44 × LSkilton quits (~LSkilton@138.84.45.144) (K-Lined)
01:17:07 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:30 codaraxis joins (~codaraxis@user/codaraxis)
01:23:18 × gurkenglas quits (~gurkengla@dynamic-046-114-002-228.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
01:26:41 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
01:32:28 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 250 seconds)
01:36:25 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 260 seconds)
01:38:35 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 264 seconds)
01:42:01 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
01:44:17 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
01:50:06 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
01:53:55 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
01:58:08 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:00:40 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
02:02:25 slac45769 joins (~slack1256@191.126.227.64)
02:05:00 × slack1256 quits (~slack1256@181.42.41.193) (Ping timeout: 260 seconds)
02:05:52 × AlexNoo quits (~AlexNoo@178.34.150.15) (Read error: Connection reset by peer)
02:06:15 AlexNoo joins (~AlexNoo@178.34.150.15)
02:10:59 × heartburn quits (~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 265 seconds)
02:11:21 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3488:c18b:7c02:d36f)
02:16:24 × namiroff_ quits (~namiroff@31.223.145.39) (Ping timeout: 255 seconds)
02:16:31 blankhart joins (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net)
02:24:14 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:26:05 × ryantrinkle quits (~ryantrink@140.174.240.199) (Ping timeout: 240 seconds)
02:29:10 thegeekinside joins (~thegeekin@189.180.38.222)
02:32:54 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:34:40 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
02:44:11 × Square quits (~Square4@user/square) (Ping timeout: 260 seconds)
02:44:25 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:46:52 ryantrinkle joins (~ryantrink@140.174.240.199)
02:48:01 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 240 seconds)
02:51:34 × slac45769 quits (~slack1256@191.126.227.64) (Read error: Connection reset by peer)
02:52:44 × polyphem quits (~polyphem@ip-109-43-48-228.web.vodafone.de) (Remote host closed the connection)
02:53:07 slack1256 joins (~slack1256@186.11.80.223)
02:54:51 Artem[m] is now known as artem_[m]
02:56:22 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:56:54 × td_ quits (~td@i53870921.versanet.de) (Ping timeout: 255 seconds)
02:58:44 td_ joins (~td@i5387093B.versanet.de)
02:59:18 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:01:09 Manikariza joins (~Manikariz@189.172.5.194)
03:03:13 × blankhart quits (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Quit: WeeChat 3.5)
03:04:11 × Manikariza quits (~Manikariz@189.172.5.194) (K-Lined)
03:04:25 × pyook quits (~puke@user/puke) (Quit: Quit)
03:04:43 pyook joins (~puke@user/puke)
03:07:12 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
03:13:38 × artem_[m] quits (~artemtype@2001:470:69fc:105::75b) (Quit: Reconnecting)
03:13:57 artem_[m] joins (~artemtype@2001:470:69fc:105::75b)
03:40:10 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
03:40:10 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
03:40:10 wroathe joins (~wroathe@user/wroathe)
03:45:26 nate1 joins (~nate@98.45.169.16)
03:55:47 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
03:58:54 biberu joins (~biberu@user/biberu)
04:04:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
04:05:38 merijn joins (~merijn@145.90.225.7)
04:06:01 × jwiegley quits (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
04:09:36 ratapaca joins (~ratapaca@98.40.240.33)
04:11:09 × krei-se- quits (~krei-se@p57af2733.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
04:12:48 × aeroplane quits (~user@user/aeroplane) (Ping timeout: 248 seconds)
04:15:58 krei-se joins (~krei-se@31.6.41.56)
04:18:48 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
04:19:18 × nehsou^ quits (~nehsou@c-76-105-96-13.hsd1.ga.comcast.net) (Remote host closed the connection)
04:19:26 nate1 joins (~nate@98.45.169.16)
04:19:44 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds)
04:25:25 mbuf joins (~Shakthi@49.207.178.186)
04:35:00 heartburn joins (~gass@2a00:d880:3:1::b1e4:b241)
04:36:50 mizlan joins (~mizlan@2607:f010:2a7:1005:9db6:2055:e41e:d0fd)
04:37:00 × mizlan quits (~mizlan@2607:f010:2a7:1005:9db6:2055:e41e:d0fd) (Client Quit)
04:39:22 × merijn quits (~merijn@145.90.225.7) (Ping timeout: 265 seconds)
04:40:16 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
04:41:08 biberu joins (~biberu@user/biberu)
04:42:02 × edwtjo quits (~edwtjo@fsf/member/edwtjo) (Read error: Connection reset by peer)
04:47:57 edwtjo joins (~edwtjo@h-155-4-52-185.A213.priv.bahnhof.se)
04:47:57 × edwtjo quits (~edwtjo@h-155-4-52-185.A213.priv.bahnhof.se) (Changing host)
04:47:57 edwtjo joins (~edwtjo@fsf/member/edwtjo)
04:49:02 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds)
04:49:51 × ratapaca quits (~ratapaca@98.40.240.33) (Quit: Leaving)
04:52:48 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
04:55:28 nick2 joins (~nick@ip68-14-184-208.pn.at.cox.net)
04:56:51 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
04:57:17 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
04:57:51 biberu joins (~biberu@user/biberu)
04:58:35 hugo joins (znc@verdigris.lysator.liu.se)
05:00:12 × nick2 quits (~nick@ip68-14-184-208.pn.at.cox.net) (Ping timeout: 255 seconds)
05:05:43 × fun-safe-math quits (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Quit: Leaving)
05:05:57 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
05:09:21 × fun-safe-math quits (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Client Quit)
05:09:41 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
05:14:58 × mmhat quits (~mmh@p200300f1c701f1f9ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
05:21:48 × ddellacosta quits (~ddellacos@146.70.166.158) (Ping timeout: 255 seconds)
05:23:35 × czy quits (~user@50.30.140.25) (Remote host closed the connection)
05:23:44 Sgeo_ joins (~Sgeo@user/sgeo)
05:26:02 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:29:00 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 255 seconds)
05:30:04 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.au)
05:30:04 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.au) (Changing host)
05:30:04 dibblego joins (~dibblego@haskell/developer/dibblego)
05:30:55 × thegeekinside quits (~thegeekin@189.180.38.222) (Ping timeout: 260 seconds)
05:40:53 slac65159 joins (~slack1256@186.11.80.223)
05:40:56 jwiegley joins (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
05:41:03 × slack1256 quits (~slack1256@186.11.80.223) (Remote host closed the connection)
05:41:03 × mbuf quits (~Shakthi@49.207.178.186) (Remote host closed the connection)
05:41:10 mbuf joins (~Shakthi@49.207.178.186)
05:41:29 × hueso quits (~root@user/hueso) (Read error: Connection reset by peer)
05:42:14 hueso joins (~root@user/hueso)
05:45:44 ddellacosta joins (~ddellacos@static-198-44-136-216.cust.tzulo.com)
05:50:15 tr_ev joins (~trev@user/trev)
05:50:43 × fun-safe-math quits (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Quit: Leaving)
05:52:50 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
05:59:10 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
05:59:18 × slac65159 quits (~slack1256@186.11.80.223) (Remote host closed the connection)
05:59:28 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
05:59:36 tr_ev is now known as trev
05:59:37 michalz joins (~michalz@185.246.207.203)
06:00:03 slack1256 joins (~slack1256@186.11.80.223)
06:00:42 × hueso quits (~root@user/hueso) (Read error: Connection reset by peer)
06:00:43 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
06:00:50 hueso_ joins (~root@user/hueso)
06:04:57 slac38868 joins (~slack1256@186.11.75.185)
06:06:10 gentauro joins (~gentauro@user/gentauro)
06:06:55 × slack1256 quits (~slack1256@186.11.80.223) (Ping timeout: 252 seconds)
06:09:47 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
06:10:44 chele joins (~chele@user/chele)
06:11:32 hueso joins (~root@user/hueso)
06:11:33 × hueso_ quits (~root@user/hueso) (Read error: Connection reset by peer)
06:14:04 × slac38868 quits (~slack1256@186.11.75.185) (Ping timeout: 255 seconds)
06:24:00 × drlkf quits (~drlkf@chat.drlkf.net) (Ping timeout: 260 seconds)
06:29:05 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:33:47 × MajorBiscuit quits (~MajorBisc@2001:1c00:2408:a400:7f99:b6d8:c8b8:dc05) (Ping timeout: 260 seconds)
06:35:34 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
06:42:15 Bocaneri joins (~sauvin@user/Sauvin)
06:42:39 Bocaneri is now known as Guest5440
06:42:44 codaraxis__ joins (~codaraxis@user/codaraxis)
06:42:48 × drewolson quits (~drewolson@user/drewolson) (Quit: Ping timeout (120 seconds))
06:42:48 × russruss quits (~russruss@my.russellmcc.com) (Quit: Ping timeout (120 seconds))
06:43:01 drewolson joins (~drewolson@user/drewolson)
06:43:09 russruss joins (~russruss@my.russellmcc.com)
06:43:18 × Sauvin quits (~sauvin@user/Sauvin) (Read error: Connection reset by peer)
06:43:59 lortabac joins (~lortabac@2a01:e0a:541:b8f0:6525:d96f:48d2:80f6)
06:45:39 jonathan_ joins (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se)
06:46:51 × codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
06:53:44 Guest5440 is now known as Sauvin
06:54:25 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
06:54:27 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
06:56:29 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
06:59:02 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:00:12 crvs joins (~crvs@212.37.18.202)
07:09:48 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
07:13:49 acidjnk joins (~acidjnk@p200300d6e715c48190549dfddbb09d76.dip0.t-ipconnect.de)
07:23:10 gurkenglas joins (~gurkengla@dynamic-046-114-002-228.46.114.pool.telefonica.de)
07:30:17 falafel joins (~falafel@2603-8000-d700-115c-2db2-df52-4b5d-7f33.res6.spectrum.com)
07:33:13 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 255 seconds)
07:36:23 zeenk joins (~zeenk@2a02:2f04:a20f:5200::7fe)
07:43:31 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
07:48:00 cfricke joins (~cfricke@user/cfricke)
07:49:08 × jargon quits (~jargon@184.101.73.92) (Remote host closed the connection)
07:49:48 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:53:52 mc47 joins (~mc47@xmonad/TheMC47)
07:56:38 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:02:41 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
08:02:41 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
08:03:18 chiselfuse joins (~chiselfus@user/chiselfuse)
08:03:29 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
08:06:37 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
08:06:37 × paulpaul1076 quits (~textual@95.29.5.210) (Remote host closed the connection)
08:09:02 MajorBiscuit joins (~MajorBisc@145.94.190.155)
08:17:45 × falafel quits (~falafel@2603-8000-d700-115c-2db2-df52-4b5d-7f33.res6.spectrum.com) (Ping timeout: 260 seconds)
08:26:33 <dminuoso> https://hackage.haskell.org/package/postgresql-simple-0.6.5/docs/Database-PostgreSQL-Simple.html#t:Query
08:26:35 <dminuoso> data Query
08:26:49 <dminuoso> But the data type is defined as a newtype.
08:27:02 <dminuoso> What's going on here?
08:27:45 takuan joins (~takuan@178-116-218-225.access.telenet.be)
08:28:32 L29Ah joins (~L29Ah@wikipedia/L29Ah)
08:29:41 × ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
08:32:21 <tomsmeding> dminuoso: does haddock not always display it that way if the constructor is not exported?
08:32:36 <tomsmeding> indeed, if you can't use the constructor, newtypeness is not observable in the API, is it?
08:33:30 × Igloo quits (~ian@matrix.chaos.earth.li) (Ping timeout: 255 seconds)
08:33:37 Igloo joins (~ian@matrix.chaos.earth.li)
08:34:01 <dminuoso> That really depends on how you look at it.
08:34:25 <dminuoso> Say you have a smart constructor mkQuery, then the difference is observable in strictness between `mkQuery undefined` and `mkQuery "foo"`
08:34:50 <dminuoso> Which also depends on the strictness of mkQuery obviously
08:34:52 <tomsmeding> hardly, that could also be explained by mkQuery having a bang pattern
08:34:53 <tomsmeding> yeah
08:35:00 <dminuoso> No, it cannot.
08:35:02 <tomsmeding> I would say that's part of the API of mkQuery
08:35:08 <dminuoso> tomsmeding: that only works in one direction
08:35:18 × MajorBiscuit quits (~MajorBisc@145.94.190.155) (Ping timeout: 255 seconds)
08:35:22 <dminuoso> If `mkQuery undefined `seq` ()` does not blow up, you cannot explain that with mkQuery.
08:35:24 <tomsmeding> the user observes the strictness only through mkQuery
08:35:29 <tomsmeding> ah, yes
08:35:37 <tomsmeding> hm
08:36:15 <tomsmeding> well -- assuming that mkQuery eventually puts its argument right there in the field of the data type
08:36:29 <dminuoso> It doesnt really matter what mkQuery actually does.
08:36:34 <tomsmeding> if you don't know the implementation of Query, who knows that it could be 'newtype Query = Query (Bool, String)'
08:36:41 <dminuoso> Mmm
08:36:44 <tomsmeding> then that's certainly lazy in the String
08:36:57 <dminuoso> okay thats a fair point.
08:37:10 <tomsmeding> I mean, that would be a weird newtype maybe, but certainly possible
08:37:15 <dminuoso> But I think displaying it as `data` is grossly misleading
08:37:29 <dminuoso> if you already have some rough ambient knowledge of its implementation
08:37:37 <dminuoso> "opaque type" would be better.
08:37:41 <tomsmeding> yes that's where the argument falls down
08:37:42 <tomsmeding> yes
08:38:02 <tomsmeding> aren't type families also written as 'type' or something
08:38:24 <dminuoso> tomsmeding: so I think you're talking about associated type synonyms.
08:38:35 <dminuoso> The terminology gets really confusing for me
08:38:43 <tomsmeding> ah, that may be what I'm remembering, yes
08:38:51 <tomsmeding> no then it makes sense
08:39:00 <dminuoso> Because they are formally called associated type synonyms in the GHC manual, but enabled via TypeFamilies
08:39:09 <tomsmeding> I briefly thought I remembered that a proper standalone type family, not sure whether open or closed, was sometimes displayed as 'type' instead of 'type family'
08:39:15 <dminuoso> Right
08:39:21 <tomsmeding> yeah I call those associated type families personally
08:39:37 <dminuoso> I get confused by this every time, because I somehow expect to be able to write `instance Foo ... where type instance ...`
08:39:43 <tomsmeding> which is maybe confusing half-way terminology :p
08:39:47 <dminuoso> Indeed I do as well.
08:39:49 <tomsmeding> I guess
08:40:29 <geekosaur> maybe someone should propose it 🙂
08:41:00 <dminuoso> The kind of bike shedding you have to go through ghc proposals thesee days is not something I really want.
08:41:30 <tomsmeding> I don't think we should change this part of the syntax now
08:41:49 <dminuoso> Though I dont mean that in a strictly negative way. I think the current proposals process generally improves things.
08:42:03 <tomsmeding> it's perhaps slightly confusing, but it's not like the alternative will be valid with a different meaning any time soon
08:42:08 <dminuoso> It should take effort to make changes to the language. :)
08:42:33 <tomsmeding> and also this is not worth making the current version _invalid_ synax in a few releases
08:43:01 <tomsmeding> for Eq-with-no-(/=) (was that implemented, by the way?), the situation was different because implementations of (/=) were quite rare in the first place
08:43:24 <tomsmeding> here you'd be changing the only syntax that the feature has
08:43:29 <eldritchcookie[m> say https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/liberal_type_synonyms.html#extension-LiberalTypeSynonyms wasn't this impossible ?
08:44:11 <geekosaur> I wasn't thinking about killing the current syntax, just allowing optional `instance` there
08:44:24 <tomsmeding> eldritchcookie[m: well you still can't put a type synonym as the argument to a parametrised data type, can you?
08:44:32 <geekosaur> not like it'll ever mean something else
08:44:45 <tomsmeding> only if at place where you're putting in the type synonym, it already immediately reduces to fully-applied form
08:44:48 <eldritchcookie[m> ah okay
08:44:59 <tomsmeding> geekosaur: fair
08:46:08 <tomsmeding> eldritchcookie[m: see the very last example on the page you linked
08:46:14 <tomsmeding> ah no not that one
08:46:23 nate1 joins (~nate@98.45.169.16)
08:48:11 <tomsmeding> eldritchcookie[m: even this is still invalid https://play.haskell.org/saved/4la4AbYI
08:48:55 <tomsmeding> it's just "partially-applied type synonym as argument to another type synonym, where the full type synonym expansion doesn't have any partially applied type synonyms any more"
08:51:03 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
08:55:08 CiaoSen joins (~Jura@p200300c5af1d63002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
08:56:09 <eldritchcookie[m> i was reading "thinking with types" and it shows a way to choose the monad stack with a runtime value by using singletons, would it be possible to choose a record's member's with a runtime value ?
08:57:00 ubert1 joins (~Thunderbi@2a02:8109:abc0:6434:c4d3:e016:342:46f2)
08:58:32 <dminuoso> eldritchcookie[m: What is a "record's member" in this context exactly?
08:58:40 <dminuoso> Or what do you mean by "choose"?
09:03:15 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3488:c18b:7c02:d36f) (Remote host closed the connection)
09:06:16 <eldritchcookie[m> ok i am unsure exactly so i will tell my train of thought, i want to make a VTT for multiple TTRPGs so i thought to have a group of maps for each character statistic however those change per game so i will almost always have they remain the same for a long time. so i wanted to leverage this fact for added safety.
09:07:21 <eldritchcookie[m> basically for instance DND has one set of stats and GURPS another but GURPS unsurprisingly has the same Stats as GURPS
09:12:01 czy joins (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net)
09:14:00 × fun-safe-math quits (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Ping timeout: 255 seconds)
09:14:44 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:15:37 <[exa]> eldritchcookie[m: btw care to join #-offtopic? we can probably discuss the designs there much more verbosely
09:16:10 <eldritchcookie[m> sure
09:21:04 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
09:35:31 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::7fe) (Remote host closed the connection)
09:35:53 zeenk joins (~zeenk@2a02:2f04:a20f:5200::fba)
09:42:54 oo_miguel joins (~Thunderbi@77-252-46-249.static.ip.netia.com.pl)
09:45:53 <oo_miguel> Is it possible to list currently enabled language extensions on the GHCi prompt? I currently use `%s` on the prompt to list packages and I am aware of the `prompt-function` option. However I am not sure if there is a way to access the list of the extensions somehow.
09:46:48 <geekosaur> :set language, iirc
09:47:36 <geekosaur> sorry, it's :show language
09:47:43 <geekosaur> I always get that wrong for some reason
09:48:52 <geekosaur> also note :showi language
09:49:13 <geekosaur> (which shows what applies to things you type in as opposed to what language :load will parse)
09:50:25 <oo_miguel> Oh I am aware of the `show langauge`
09:51:00 <geekosaur> you can't add the,m to the prompt afaik
09:51:13 <oo_miguel> Sorry for misformulating my question. I want to list them autoamtically after every command, as I do with `:set prompt "....%s...."` with modues currently
09:51:25 <oo_miguel> heh same problem with the `:show`
09:51:47 <oo_miguel> anyway, ok. So I am not able to get them withing prompt-function. Thanks for claryfying
09:55:18 <geekosaur> well, there's %call
09:55:32 <geekosaur> but I don't know how well it will work with multiline output
09:56:05 <oo_miguel> oh, missed that one. I'll try it out!
09:56:44 <geekosaur> hm, nope, it's an external command 😞
09:56:57 <geekosaur> so prompt_function it is
09:58:44 <oo_miguel> yeah ideally I would need to call the `: show language` within the prompt-function and then process its output. But already accepted that this is not possible currently
10:03:10 jargon joins (~jargon@184.101.73.92)
10:03:43 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
10:06:50 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
10:08:33 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
10:10:49 × remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 256 seconds)
10:13:17 remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz)
10:16:32 rs joins (~rs@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de)
10:16:56 rs is now known as Guest5252
10:21:21 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
10:24:56 × ubert1 quits (~Thunderbi@2a02:8109:abc0:6434:c4d3:e016:342:46f2) (Remote host closed the connection)
10:29:19 riady[m] joins (~riadymatr@2001:470:69fc:105::3:4dc5)
10:31:10 tok joins (~user@user/tok)
10:33:39 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 255 seconds)
10:34:06 riady[m] is now known as ariady[m]
10:36:20 <ariady[m]> @help
10:36:20 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
10:36:36 <ariady[m]> list
10:36:45 <ariady[m]> help list
10:37:06 <ariady[m]> lambdabot: @list
10:37:06 <lambdabot> What module? Try @listmodules for some ideas.
10:37:17 <ariady[m]> @listmodules
10:37:17 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
10:37:17 <lambdabot> seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where
10:37:50 <ariady[m]> @undo [[x,y] | x <- [1,2], y <- [1,2]]
10:37:50 <lambdabot> concatMap (\ x -> concatMap (\ y -> [[x, y]]) [1, 2]) [1, 2]
10:39:57 <ariady[m]> @undo let n = [1..3] in [[x,y,z] | x <- n, y <- n, z <- n]
10:39:58 <lambdabot> let { n = [1 .. 3]} in concatMap (\ x -> concatMap (\ y -> concatMap (\ z -> [[x, y, z]]) n) n) n
10:45:22 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
10:48:01 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:48:09 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
10:58:25 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
11:02:25 cheater_ joins (~Username@user/cheater)
11:03:45 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
11:03:49 cheater_ is now known as cheater
11:08:16 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
11:21:08 × czy quits (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
11:25:12 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
11:32:54 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
11:33:13 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
11:33:57 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:36:40 shriekingnoise joins (~shrieking@186.137.175.87)
11:38:52 aeroplane joins (~user@user/aeroplane)
11:44:14 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
11:44:33 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
11:45:36 __monty__ joins (~toonn@user/toonn)
11:50:24 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:6525:d96f:48d2:80f6) (Ping timeout: 248 seconds)
11:52:31 lortabac joins (~lortabac@37.171.190.168)
11:54:21 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
11:58:34 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:4156:1a65:5694:85cf) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
11:59:16 YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:adb5:c76d:d6c1:df1)
11:59:20 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
12:04:23 <dminuoso> Mmm, I would really like to get the peername for a unix domain socket in a warp application. It seems I would have to rip first class support into warp for this.
12:04:48 <dminuoso> What alternatives might I have? It would be lovely if nginx could get the peername and inject it as a HTTP header, but I couldnt find any such option
12:09:48 <aeroplane> what is a warp application?
12:09:48 × lortabac quits (~lortabac@37.171.190.168) (Read error: Connection reset by peer)
12:10:00 <aeroplane> just curious
12:12:03 <probie> A WAI app which uses Warp to serve it
12:14:58 lortabac joins (~lortabac@2a01:e0a:541:b8f0:b01:1242:9428:b0b8)
12:15:39 <aeroplane> ok I got it, its a haskell http server library
12:17:36 × CiaoSen quits (~Jura@p200300c5af1d63002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
12:21:17 namiroff_ joins (~namiroff@31.223.145.39)
12:25:00 Square joins (~Square4@user/square)
12:28:07 × pyook quits (~puke@user/puke) (Ping timeout: 276 seconds)
12:41:44 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 240 seconds)
12:43:12 chiselfuse joins (~chiselfus@user/chiselfuse)
12:43:48 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
12:44:12 yurideabreu joins (~yurideabr@189.6.27.58)
12:44:29 yurideabreu is now known as magus
12:44:43 magus is now known as maguss
12:44:57 maguss is now known as magus
12:45:00 magus is now known as maguss
12:46:45 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:47:01 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
12:47:08 <maguss> Hi guys. I am having trouble understanding how to make VScode with HLS find the Reflex Platform modules. I have made it work once, but when the Haskell extension installed its cabal, GHC and HLS it stopped working. How can I debug this?
12:47:52 nate1 joins (~nate@98.45.169.16)
12:48:09 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
12:51:35 <Axman6> have you built the project using cabal or stack yet?
12:52:27 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
12:52:56 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
12:54:04 pyook joins (~puke@user/puke)
12:55:26 <jade[m]> I'm a little confused about the role core and c-- play in the compilation process. I understand why these exist of course, but why do they exist as "source" files?
12:55:26 <jade[m]> As I understand it, we have `Haskell Source -> Parse Haskell AST -> Write Core -> Parse Core AST -> Write C-- -> Parse C-- AST -> Write ASM`, but why does it not directly transform between the different "types" of AST like `Haskell Source -> Parse Haskell AST -> Transform into Core AST -> Transform into C-- AST -> Write ASM`?
12:58:46 <dminuoso> jade[m]: If I had to guess just simplicity of the modular design.
12:59:14 <dminuoso> Realistically its not even close to a hot spot
12:59:46 <dminuoso> and it may also have some historical relevance
13:00:42 <dminuoso> Perhaps this has also caching opportunities
13:00:59 <dminuoso> Since if you somehow know the artifact is still in tact, you can resume the pipeline from any stage if the artifacts are kept
13:04:05 × gurkenglas quits (~gurkengla@dynamic-046-114-002-228.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
13:06:08 <chreekat> whoa, does it really write out the intermediate files somewhere?
13:06:52 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
13:06:57 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
13:07:07 <dminuoso> Yup
13:07:14 <dminuoso> See GHC/Driver/Pipeline.hs
13:07:57 <carbolymer> what's the analogue cabal command to:
13:07:57 <carbolymer> stack test --ta '--hedgehog-replay "Size 100 Seed 15737640735508047734 16943050916655939693" -p "your_spec_name"'
13:08:36 <jade[m]> wait, does it write and then re-parse the files in another component
13:08:39 <carbolymer> carbolymer: --test-options
13:08:42 <carbolymer> carbolymer:
13:08:44 <carbolymer> thx
13:08:44 <jade[m]> or does it write it out but internally keeps the AST
13:08:51 <tomsmeding> dminuoso: X doubt
13:09:30 <tomsmeding> I just ran 'strace -o log -f ghc tmp.hs' on some small file and the only non-RDONLY open()s I see are for /tmp/ghc.../ghc_2.s, tmp.hi and tmp.o.tmp
13:09:46 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
13:09:47 × Guest5252 quits (~rs@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de) (Quit: Client closed)
13:09:58 <tomsmeding> presumably the first is assembly, the second is the interface file and the third is (after inspection) an output file of gcc
13:10:05 <dminuoso> tomsmeding: Mmm!
13:10:49 <dminuoso> tomsmeding: This is curious, no matter how I look at it, this seems to connect the pipeline phases together via file paths
13:10:52 <dminuoso> At least from the source code
13:11:07 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
13:11:25 <dminuoso> See pipelineStart (note how it calls things like cmmPipeline)
13:11:34 <dminuoso> cmmPipeline :: P m => PipeEnv -> HscEnv -> FilePath -> m FilePath
13:11:34 <tomsmeding> ah, ghc_2.s goes into gcc -x assembler which spawns as which writes tmp.o.tmp, which later gets renamed to tmp.o
13:11:47 <tomsmeding> so no cmm in sight
13:15:17 <tomsmeding> dminuoso: doesn't that just call into fullPipeline
13:15:26 <tomsmeding> the fromPhase thing is called on the _start_ phase
13:15:43 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
13:17:13 tomsmeding has never looked at this code before so yields to dminuoso again :p
13:19:16 <dminuoso> tomsmeding: Ohh!
13:19:19 <dminuoso> I think you're right.
13:19:32 <dminuoso> This looks just like the infrastructure to resume compilation from some earlier output
13:22:13 <maguss> @Axman6 I have ran ./try-reflex and ran vscode. I am trying to use GHCJS to build the calculator project in https://github.com/reflex-frp/reflex-platform
13:22:13 <lambdabot> Unknown command, try @list
13:22:20 <jade[m]> hm ok
13:22:42 <jade[m]> my bigger question was originally how to use utilize GHC to compile from core
13:23:03 <jade[m]> essentially using it as a library, does GHC expose an api for that?
13:23:18 mncheck joins (~mncheck@193.224.205.254)
13:23:20 <maguss> to Axman6: I have ran ./try-reflex and ran vscode. I am trying to use GHCJS to build the calculator project in https://github.com/reflex-frp/reflex-platform
13:24:56 <geekosaur> jade[m], external core used to be a thing but was removed due to complexity and lack of use. (actual core is an AST, not textual)
13:25:20 <jade[m]> mhm yeah
13:25:51 <jade[m]> so can I essentially use GHC's internal core ast and write a function to convert my AST to that and pass it along to GHC?
13:25:55 <jade[m]> or is that not possible?
13:26:15 <dminuoso> jade[m]: Yes it is perfectly possible
13:27:00 <jade[m]> very cool
13:27:34 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
13:28:42 <dminuoso> Im not entirely sure whether this actually works from the GHC executable itself, but you can just use ghc as a library
13:28:51 <jade[m]> yep
13:29:37 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
13:29:48 <dminuoso> jade[m]: ah not even that, ghc supports it already
13:29:49 <tomsmeding> dminuoso: yeah indeed
13:29:56 <dminuoso> https://downloads.haskell.org/ghc/latest/docs/users_guide/using.html#meaningful-file-suffixes
13:30:16 <dminuoso> https://downloads.haskell.org/ghc/latest/docs/users_guide/using.html#batch-compiler-mode
13:30:49 <dminuoso> jade[m]: So it seems like I was wrong. GHC in general does not generate intermediate files, but it *capable* of dumping and starting from any phase.
13:30:58 <jade[m]> mhm
13:31:00 <jade[m]> thanks a lot
13:31:01 <dminuoso> But doesnt do so by default.
13:31:06 <dminuoso> It's pretty cool :)
13:31:12 <tomsmeding> dminuoso: what is the suffix for starting from core then?
13:31:18 <jade[m]> this also makes more sense and was what I expected it to do
13:31:29 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
13:31:32 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
13:31:34 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8)
13:31:58 <dminuoso> tomsmeding: doesnt seem to be documented
13:32:07 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
13:32:48 <dminuoso> Ah mm
13:33:36 <dminuoso> Maybe core doesnt actually exist?
13:33:59 <tomsmeding> it was a lie all along
13:34:20 <tomsmeding> dminuoso: compiler/GHC/Driver/Phases.hs startPhase
13:34:49 <dminuoso> tomsmeding: Right, but I dont see any core phase
13:34:54 <tomsmeding> indeed
13:35:03 <dminuoso> It seems like core is really internal to the hs phase.
13:35:16 <tomsmeding> yeah there's even no corresponding constructor in Phase
13:36:18 <dminuoso> Or I dont know
13:36:23 <dminuoso> whats the output of the haskell phase?
13:36:23 <tomsmeding> chreekat: don't worry, it doesn't
13:36:38 <dminuoso> If the haskell phase puts out core, all should be good again
13:36:52 <dminuoso> It just means you cant generate core and have the simplifier play with it
13:36:55 tomsmeding has a hard time understanding this code
13:37:56 <tomsmeding> or is this hscPipeline?
13:38:00 <tomsmeding> outputting a ModIface
13:38:15 <tomsmeding> hm no that's too much
13:38:26 <dminuoso> Well the input to As should be cmm
13:38:58 <dminuoso> There's something strange here
13:39:04 <dminuoso> There's certainly a CmmCpp phase
13:39:10 <dminuoso> But nothing ever connects to it
13:39:28 <dminuoso> Maybe this is just a start phase to inject arbitrary cmm into the compiler?
13:40:35 <carbolymer> how do I convert `Pico` to microseconds Int?
13:41:00 <carbolymer> or NominalDiffTime -> Int
13:41:06 <tomsmeding> dminuoso: runPhase in GHC.Driver.Pipeline.Execute
13:43:33 dminuoso wonders why there is no `instance Integral (Fixed a)`
13:43:51 tomsmeding was looking for the same
13:44:05 <dminuoso> carbolymer: well you can just unwrap the Integral.
13:44:12 <tomsmeding> *Integer
13:44:16 <dminuoso> Indeed.
13:44:49 <dminuoso> tomsmeding: Ah I guess something something quotRem prevents that instance?
13:44:56 <tomsmeding> there is toRational in Real
13:45:00 <tomsmeding> carbolymer: ^
13:45:34 <tomsmeding> dminuoso: because you might need infinite precision?
13:46:00 <tomsmeding> doesn't fly, it implements Fractional
13:46:25 <mauke> > 42 :: NominalDiffTime
13:46:25 <carbolymer> tomsmeding: you mean Rational?
13:46:27 <lambdabot> error:
13:46:27 <lambdabot> Not in scope: type constructor or class ‘NominalDiffTime’
13:46:44 <dminuoso> carbolymer: Just unwrap the Fixed.
13:46:48 <tomsmeding> carbolymer: no, the Real class has a toRational method with type Real a => a -> Rational
13:47:03 <carbolymer> >.>
13:47:04 <dminuoso> carbolymer: then you can multiply by 1e6, check whether it exceeds Int, and then use.
13:47:08 <mauke> wouldn't you just multiply by 1e6 and floor?
13:47:15 <carbolymer> yeah
13:47:16 <carbolymer> >floor $ toRational (0.123456789 :: NominalDiffTime) * 1000000 :: Int
13:47:20 <carbolymer> seems to be working
13:47:28 <mauke> why toRational?
13:47:41 <tomsmeding> mauke: what's the alternative, besides unwrapping the MkFixed
13:47:43 <carbolymer> mauke: right, it's redundant
13:47:54 <tomsmeding> oh there, I see
13:47:57 <dminuoso> The toRational seems odd
13:48:05 <dminuoso> But oh well.
13:48:22 <tomsmeding> haskell numeric hierarchy weirdness strikes again
13:48:29 <dminuoso> tomsmeding: ohh, I understand why there's no toIntegral.
13:48:32 <dminuoso> *Integral
13:48:33 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
13:48:36 <tomsmeding> Integer
13:49:04 <dminuoso> tomsmeding: it cant possibly ever be a left inversee for fromInteger.
13:49:14 <tomsmeding> I see
13:49:30 <dminuoso> So you would have `fromInteger (toInteger i) /= i`
13:49:38 <dminuoso> However, to be fair, Integral doesnt formally have any laws...
13:49:52 <tomsmeding> yeah but it seems sensible to assume this as a law that should at least mostly hold
13:50:07 <tomsmeding> Nan-ish stuff aside, when applicable, perhaps
13:50:18 <dminuoso> It would also seem sensible to have some obvious way of doing this.
13:50:40 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
13:50:44 <dminuoso> Asking for a `floor` of some `Fixed E9` seems reasonable
13:50:55 <dminuoso> Do we have RealFrac?
13:50:59 <tomsmeding> yes
13:51:05 <tomsmeding> but surely that will round
13:51:10 <tomsmeding> i.e. throw away your microsecond precision
13:51:29 <dminuoso> Then I guess going through toRational *is* the only sensible thing to dot
13:52:25 <mauke> > 1 :: Pico
13:52:27 <lambdabot> 1.000000000000
13:53:08 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
13:53:17 <geekosaur> > toEnum 1 :: Pico
13:53:19 <lambdabot> 0.000000000001
13:53:20 <mauke> > floor ((1 :: Pico) * 1e6)
13:53:22 <lambdabot> 1000000
13:53:33 thegeekinside joins (~thegeekin@189.180.38.222)
13:53:35 <dminuoso> Though I would just unwrap the Fixed.
13:53:48 <tomsmeding> > fromEnum (1 :: Pico)
13:53:50 <lambdabot> 1000000000000
13:53:52 <dminuoso> But I dont know, you might want rational precision
13:53:59 <tomsmeding> how about abusing Enum lol
13:53:59 <dminuoso> tomsmeding: gosh.
13:54:02 <dminuoso> haha
13:54:04 <dminuoso> was about to say yes
13:54:14 <dminuoso> % :t fromEnum
13:54:14 <yahb2> fromEnum :: Enum a => a -> Int
13:54:14 <tomsmeding> :t fromEnum
13:54:15 <lambdabot> Enum a => a -> Int
13:54:22 <tomsmeding> yeah issue being that the codomain is Int there
13:54:50 <dminuoso> fromEnum shouldnt exist
13:55:18 tomsmeding has a meeting and will be afk
13:55:29 <dminuoso> I feel like Enum should only have functions that dont mention Int.
13:55:45 <dminuoso> succ, pred, enumFrom, enumFromThen, enumFromTo, enumFromThenTo
13:56:19 <dminuoso> Those things capture what Enum is about. fromEnum/toEnum are just the hackiest bolted in of C-style enumerations brought into the same typeclass because they share the letters "enum" in their name./
13:57:52 × acidjnk quits (~acidjnk@p200300d6e715c48190549dfddbb09d76.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
14:00:43 × ddellacosta quits (~ddellacos@static-198-44-136-216.cust.tzulo.com) (Quit: WeeChat 3.8)
14:00:59 gurkenglas joins (~gurkengla@dynamic-046-114-002-228.46.114.pool.telefonica.de)
14:01:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
14:04:58 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:05:40 nick4 joins (~nick@50.86.118.19)
14:05:57 nschoe joins (~q@2a01:e0a:8e:a190:557c:56ba:3dd0:6c62)
14:07:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3488:c18b:7c02:d36f)
14:08:07 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:08:16 ddellacosta joins (~ddellacos@static-198-44-136-216.cust.tzulo.com)
14:09:35 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
14:11:22 × Me-me quits (~Me-me@user/me-me) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.)
14:11:40 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3488:c18b:7c02:d36f) (Ping timeout: 250 seconds)
14:11:52 × namiroff_ quits (~namiroff@31.223.145.39) (Read error: Connection reset by peer)
14:13:04 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
14:14:08 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
14:14:37 rf joins (~rf@2605:59c8:1604:2210:835d:96ae:399e:aaae)
14:17:19 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 256 seconds)
14:18:10 <Axman6> @hoogle e -> Maybe a -> Either e a
14:18:10 <lambdabot> Data.Either.Combinators maybeToRight :: b -> Maybe a -> Either b a
14:18:10 <lambdabot> Rebase.Prelude maybeToRight :: () => b -> Maybe a -> Either b a
14:18:11 <lambdabot> Network.Haskoin.Util maybeToEither :: b -> Maybe a -> Either b a
14:24:05 <dminuoso> Axman6: Also often called `note`
14:24:26 <ncf> dminuoso: i wouldn't call it a hack... it's simply requiring that the type has a specified isomorphism to ℤ (or ℤ/nℤ) instead of merely being a ℤ- (or ℤ/nℤ-)torsor
14:24:28 <dminuoso> as a suggestive wordplay, together with hush :: Either a b -> Maybe b
14:24:52 <ncf> which you could argue is unnecessary if all we care about is the action, but in haskell it just makes things more convenient
14:25:19 <dminuoso> ncf: it is a hack because requirement is not satisfied by pretty much any instance.
14:25:22 <ncf> it's much more problematic that succ and pred are partial imo
14:25:38 <dminuoso> And I have not read that requirement anywhere either.
14:25:44 <dminuoso> It's at best wishful thinking
14:26:05 <ncf> well, i'd expect any lawful instance to at least be a retract of Int
14:26:18 × nick4 quits (~nick@50.86.118.19) (Ping timeout: 255 seconds)
14:26:29 <ncf> as in fromEnum . toEnum = id
14:26:52 <dminuoso> Sure, and what does toEnum even mean then?
14:27:08 <ncf> er sorry, the other way around
14:27:09 <dminuoso> The naming of it and the behavior deriving generated instances clearly demonstrate the intent.
14:27:15 <dminuoso> Which is to simulate C-style enumerations.
14:30:32 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
14:30:53 <maguss> Is there a channel specific to GHCJS questions?
14:31:00 <dminuoso> maguss: not that I know of (yet)
14:34:10 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
14:38:10 tosyl joins (~user@103.206.114.124)
14:39:50 × nschoe quits (~q@2a01:e0a:8e:a190:557c:56ba:3dd0:6c62) (Ping timeout: 250 seconds)
14:40:36 nick4 joins (~nick@50.86.118.19)
14:45:24 acidjnk joins (~acidjnk@p200300d6e715c4336965881302acf76a.dip0.t-ipconnect.de)
14:46:23 Sgeo joins (~Sgeo@user/sgeo)
14:49:36 × jonathan_ quits (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
14:50:18 <maguss> dminuoso: Thanks!
14:50:38 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
14:51:05 user joins (~user@103.206.114.114)
14:51:08 justsomeguy joins (~justsomeg@user/justsomeguy)
14:51:38 Digitteknohippie joins (~user@user/digit)
14:52:25 × Digit quits (~user@user/digit) (Ping timeout: 240 seconds)
14:52:47 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
14:52:51 × tosyl quits (~user@103.206.114.124) (Ping timeout: 255 seconds)
14:56:22 user is now known as tosyl
14:56:35 Digitteknohippie is now known as Digit
14:59:34 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:b01:1242:9428:b0b8) (Quit: WeeChat 2.8)
15:02:52 × krei-se quits (~krei-se@31.6.41.56) (Ping timeout: 265 seconds)
15:04:45 krei-se joins (~krei-se@p57af2733.dip0.t-ipconnect.de)
15:08:48 y04nn joins (~username@2a03:1b20:5:f011::aaae)
15:10:38 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
15:10:51 × remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 255 seconds)
15:12:45 remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz)
15:13:23 jonathan_ joins (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se)
15:13:43 nomadalgia joins (~nomadalgi@dhcp-077-251-039-086.chello.nl)
15:15:38 <justsomeguy> Does this sound correct? (>>=) is a HOF that takes a wrapped vaule, and (a function that takes an unwrapped vaule as input and returns a wrapped value as output), and then returns a wrapped vaule.
15:15:47 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:15:56 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
15:16:25 <dminuoso> justsomeguy: Not reallz.
15:16:53 thelibertine joins (~libertine@105.48.185.209)
15:17:06 × y04nn quits (~username@2a03:1b20:5:f011::aaae) (Remote host closed the connection)
15:17:06 <dminuoso> But mostly because I think calling it "wrapped" is wrong or misleading.
15:17:08 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
15:17:26 × nomadalgia quits (~nomadalgi@dhcp-077-251-039-086.chello.nl) (Client Quit)
15:18:00 nschoe joins (~q@2a01:e0a:8e:a190:a405:7910:3dee:868e)
15:18:12 <justsomeguy> If I said "A vaule enclosed in a type constructor of one argument" rather than "wrapped" would it make sense?
15:18:24 × rf quits (~rf@2605:59c8:1604:2210:835d:96ae:399e:aaae) (Ping timeout: 250 seconds)
15:18:36 <justsomeguy> Erm, data constructor, rather.
15:18:52 artem_[m] is now known as Artem[m]
15:19:06 <justsomeguy> I guess I should just dispense with the metaphors entirely until I understand the thing.
15:19:09 <c_wraith> justsomeguy: but no such value needs to exist
15:19:16 <dminuoso> justsomeguy: Yes! That's the first good step.
15:19:23 <dminuoso> The metaphors are indeed not helpful.
15:19:38 hanabi joins (~hanabi@dhcp-077-251-039-086.chello.nl)
15:19:38 <geekosaur> there is no guaranteed value there. for IO it's best thought of as a callback to be applied when a value becomes available
15:20:36 <c_wraith> like... where's the value in ((+1) >>= (*)) ?
15:22:48 <dminuoso> justsomeguy: Forcibly trying to see the pattern before studying individual instances is a helpless excercise. It's like trying to understand what abstract algebra is about before you practice adding or multipying numbers.
15:23:41 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
15:23:50 <dminuoso> It's much more sensible to just start using concrete instances like IO or Maybe (just like its useful to start adding natural numbers), and then you maybe explore other instances. For each individual instance, its behavior can be described without metaphors, but concretely.
15:24:14 <dminuoso> The pattern will emerge on its own eventually the more instances you start using.
15:24:50 <dminuoso> And more importantly, most individual instances can be fully understood in just a minute or two.
15:24:55 <dminuoso> It's very effecftive.
15:26:17 <justsomeguy> I guess my next step is to find a bunch of instances on Hoogle and try them all out.
15:26:19 × hanabi quits (~hanabi@dhcp-077-251-039-086.chello.nl) (Read error: Connection reset by peer)
15:27:00 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
15:27:00 hanabi joins (~hanabi@dhcp-077-251-039-086.chello.nl)
15:30:31 geekosaur joins (~geekosaur@xmonad/geekosaur)
15:31:27 × hanabi quits (~hanabi@dhcp-077-251-039-086.chello.nl) (Client Quit)
15:31:42 hanabi joins (~hanabi@dhcp-077-251-039-086.chello.nl)
15:35:36 rf joins (~rf@2605:59c8:1604:2210:4a2b:fc:eab3:8901)
15:35:47 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
15:36:59 × maguss quits (~yurideabr@189.6.27.58) (Ping timeout: 260 seconds)
15:37:04 <tomsmeding> can one put a standalone kind signature on an associated type family?
15:37:24 <tomsmeding> to make matters more complicated, I also want the thing to have a functional dependency
15:39:13 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
15:39:26 <dminuoso> Will this discussion end with you using CPP inside of TemplateHaskell, in a standalone kind signature on an associated tyfam?
15:39:35 <tomsmeding> lol
15:39:36 <tomsmeding> no
15:40:11 <dminuoso> But you have to admit, this is just missing typed TH splices, maybe involving ScopedTypeVariables captured variables
15:40:21 <dminuoso> (These two are extremely buggy together by the way)
15:40:27 dminuoso has crashed many GHCs that way
15:40:38 <dminuoso> in combination that is.
15:40:39 <tomsmeding> what, typed TH splices?
15:41:02 <tomsmeding> I know that I'm notorious for asking weird questions but there is no TH here, trust me
15:41:28 <tomsmeding> I want to have an associated type family with a functional dependency but with result kind unequal to Type
15:41:44 <tomsmeding> or is that just not a thing
15:42:15 × thelibertine quits (~libertine@105.48.185.209) (Quit: Leaving)
15:42:23 <tomsmeding> the ghc user guide is quite silent about the combination, on the topic of fundeps, tyfams as well as standalone kindsigs
15:43:41 <eldritchcookie[m> this is probably something really stupid that i am forgetting but why does this... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/330bbb6c98d4e3a984ec7bd726e1efd9c49b9a89>)
15:44:24 potato44 joins (uid421314@id-421314.lymington.irccloud.com)
15:49:20 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
15:50:37 × hgolden_ quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Quit: Leaving)
15:50:49 vglfr joins (~vglfr@37.73.153.49)
15:50:52 hgolden_ joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com)
15:53:29 <dminuoso> (State [e -> Eff (State [e -> Eff es ()] : es) ()] :> es)
15:53:36 maguss joins (~yurideabr@191.56.51.174)
15:53:40 <dminuoso> That looks awfully wrong.
15:54:02 <eldritchcookie[m> yeah it does
15:54:03 <dminuoso> eldritchcookie[m: whats the type of `act`?
15:54:31 <dminuoso> But gosh
15:54:38 <dminuoso> How people willingly use these effect systems is beyond me
15:55:00 <eldritchcookie[m> it should be e -> Eff localEs ()
15:55:23 <[Leary]> tomsmeding: Why standalone? You can write e.g. `class ... where { type Foo (a :: Type) (b :: k) = (r :: k) | r -> a b; ... }`.
15:55:31 <dminuoso> eldritchcookie[m: that doesnt look like it nicely unifies with localUnlift
15:56:18 × nick4 quits (~nick@50.86.118.19) (Ping timeout: 255 seconds)
15:56:32 <dminuoso> eldritchcookie[m: ahh yes, the modify is strange.
15:57:02 <dminuoso> Or maybe not. Ill just stop my head is spinning
15:59:48 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
16:01:58 × maguss quits (~yurideabr@191.56.51.174) (Read error: Connection reset by peer)
16:02:35 <kuribas> dminuoso: to me they look like a fancy way to get dependency injection.
16:03:42 × hanabi quits (~hanabi@dhcp-077-251-039-086.chello.nl) (Read error: Connection reset by peer)
16:03:50 hanabi joins (~hanabi@dhcp-077-251-039-086.chello.nl)
16:05:11 × tok quits (~user@user/tok) (Remote host closed the connection)
16:06:02 tok joins (~user@user/tok)
16:06:10 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
16:06:56 × remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 248 seconds)
16:07:05 maguss joins (~yurideabr@189.6.27.58)
16:09:51 remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz)
16:10:24 × crvs quits (~crvs@212.37.18.202) (Read error: Connection reset by peer)
16:10:26 wizardng joins (uid599328@id-599328.hampstead.irccloud.com)
16:11:00 econo joins (uid147250@user/econo)
16:11:17 × Jonno_FTW quits (~come@user/jonno-ftw/x-0835346) (Ping timeout: 246 seconds)
16:11:22 <eldritchcookie[m> the main benefit is the possibility to interpret a effect in multiple ways
16:12:00 Jonno_FTW joins (~come@api.carswap.me)
16:12:00 × Jonno_FTW quits (~come@api.carswap.me) (Changing host)
16:12:00 Jonno_FTW joins (~come@user/jonno-ftw/x-0835346)
16:12:01 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
16:12:24 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:13:25 <monochrom> Every decoupling is a fancy way to get dependency injection. Every dependency injection is a fancy way to get decoupling. >:)
16:15:10 × nschoe quits (~q@2a01:e0a:8e:a190:a405:7910:3dee:868e) (Ping timeout: 250 seconds)
16:16:16 × vglfr quits (~vglfr@37.73.153.49) (Ping timeout: 276 seconds)
16:16:45 × aeroplane quits (~user@user/aeroplane) (Ping timeout: 240 seconds)
16:17:36 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
16:17:37 vglfr joins (~vglfr@37.73.153.49)
16:17:50 × hanabi quits (~hanabi@dhcp-077-251-039-086.chello.nl) (Read error: Connection reset by peer)
16:18:08 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
16:18:20 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
16:21:18 Cale joins (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
16:21:57 × trev quits (~trev@user/trev) (Quit: trev)
16:23:01 <eldritchcookie[m> cool
16:23:52 trev joins (~trev@user/trev)
16:26:36 × mbuf quits (~Shakthi@49.207.178.186) (Quit: Leaving)
16:27:39 <zincy> monochrom: How are you defining "decoupling"?
16:29:50 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
16:31:04 nick4 joins (~nick@wsip-174-78-110-18.pn.at.cox.net)
16:32:34 <eldritchcookie[m> um if i use a type application i get a sensible error
16:33:07 <eldritchcookie[m> Couldn't match type ‘es’ with ‘State [e -> Eff es ()] : es’... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/0f801e38738511c04dacd2df5d77e8cd11b965e2>)
16:33:39 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
16:35:01 × vglfr quits (~vglfr@37.73.153.49) (Ping timeout: 252 seconds)
16:40:28 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
16:40:52 chexum joins (~quassel@gateway/tor-sasl/chexum)
16:41:39 <eldritchcookie[m> so basically i need an infinite type
16:42:41 Bocaneri joins (~sauvin@user/Sauvin)
16:43:05 Bocaneri is now known as Guest6979
16:43:55 <Hecate> eldritchcookie[m: could you create a reproducer at play.haskell.org? :)
16:45:10 Bocaneri joins (~sauvin@user/Sauvin)
16:45:22 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 265 seconds)
16:45:34 Bocaneri is now known as Guest476
16:46:03 <eldritchcookie[m> sure just need to learn how, the problem isn't with Effectful but rather that i wanted something impossible
16:46:21 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
16:46:43 Guest476 is now known as Sauvin
16:48:23 × Guest6979 quits (~sauvin@user/Sauvin) (Ping timeout: 260 seconds)
16:48:35 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:49:24 nate1 joins (~nate@98.45.169.16)
16:51:21 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
16:53:31 <eldritchcookie[m> https://play.haskell.org/saved/pOIziSnO
16:54:01 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
16:55:06 <eldritchcookie[m> basically for my idea to work i would need a a constraint of State [Eff (State (recurse again): es)] :> es
16:56:33 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
16:57:05 justsomeguy joins (~justsomeg@user/justsomeguy)
16:58:40 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
17:01:10 <Hecate> eldritchcookie[m: indeed that's pretty deep. I would encourage you to ask in https://github.com/haskell-effectful/effectful/discussions
17:14:20 × mud quits (~mud@user/kadoban) (Remote host closed the connection)
17:15:23 × ubert quits (~Thunderbi@p548c9793.dip0.t-ipconnect.de) (Quit: ubert)
17:17:10 Bocaneri joins (~sauvin@user/Sauvin)
17:17:33 Bocaneri is now known as Guest1957
17:17:51 Guest1957 is now known as Epicycloid
17:19:17 × tosyl quits (~user@103.206.114.114) (Quit: WeeChat 3.8)
17:19:33 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 255 seconds)
17:23:36 × maguss quits (~yurideabr@189.6.27.58) (Ping timeout: 255 seconds)
17:31:10 <tomsmeding> [Leary]: the whole point is to make that b not a parameter of the type class
17:31:47 <tomsmeding> because otherwise we run into this https://gitlab.haskell.org/ghc/ghc/-/issues/14860
17:36:54 <tomsmeding> but it turns out that workaround 2 in the last post to that issue actually solves our problem, so my question has been made redundant :)
17:46:23 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
17:49:52 × Inst quits (~Inst@2601:6c4:4081:54f0:45f7:243a:3f7e:8aff) (Ping timeout: 248 seconds)
17:50:39 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:52:23 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
17:53:14 ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de)
17:56:03 <jade[m]> When I build the core AST with GHC.Core.CoreExpr, how do I pass it along to ghc to use it to compile further down to cmm and then the backend?
18:02:58 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
18:03:17 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
18:06:35 mc47 joins (~mc47@xmonad/TheMC47)
18:12:31 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
18:13:20 pavonia joins (~user@user/siracusa)
18:14:05 <monochrom> zincy: Please consult any software engineering textbook for "tightly coupled" vs "loosely coupled".
18:14:30 <monochrom> (With the advice that usually we prefer the loosely one.)
18:17:01 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
18:22:52 vizor joins (~macroVizo@2601:602:77f:f0a0::c38a)
18:23:38 maguss joins (~yurideabr@189.6.27.58)
18:24:32 vglfr joins (~vglfr@37.73.153.49)
18:26:08 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
18:26:15 <zincy> There are a ton of working definitions
18:26:50 <monochrom> That is OK.
18:29:27 <zincy> monochrom: Did you ever get the chance to try lean out yet?
18:30:56 minigrim0 joins (~minigrim0@2a01:4f9:6b:3416:68ba:8dff:fe58:a5ea)
18:32:05 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
18:32:24 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
18:35:54 hugo- joins (znc@verdigris.lysator.liu.se)
18:41:53 × mei quits (~mei@user/mei) (Remote host closed the connection)
18:48:00 × vglfr quits (~vglfr@37.73.153.49) (Ping timeout: 248 seconds)
18:49:40 vglfr joins (~vglfr@37.73.153.49)
18:50:03 mei joins (~mei@user/mei)
18:51:22 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
19:05:14 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
19:05:47 slack1256 joins (~slack1256@181.43.95.185)
19:06:36 codaraxis___ joins (~codaraxis@user/codaraxis)
19:08:11 × codaraxis___ quits (~codaraxis@user/codaraxis) (Max SendQ exceeded)
19:09:01 codaraxis___ joins (~codaraxis@user/codaraxis)
19:10:15 × codaraxis__ quits (~codaraxis@user/codaraxis) (Ping timeout: 255 seconds)
19:10:53 × codaraxis___ quits (~codaraxis@user/codaraxis) (Max SendQ exceeded)
19:11:39 codaraxis___ joins (~codaraxis@user/codaraxis)
19:13:02 codaraxis__ joins (~codaraxis@user/codaraxis)
19:15:00 falafel joins (~falafel@2603-8000-d700-115c-537a-f91e-d604-9800.res6.spectrum.com)
19:15:45 Bocaneri joins (~sauvin@user/Sauvin)
19:15:48 Bocaneri is now known as Sauvin
19:16:48 × codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 248 seconds)
19:18:40 × Epicycloid quits (~sauvin@user/Sauvin) (Ping timeout: 260 seconds)
19:21:23 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
19:33:07 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
19:33:25 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
19:34:38 × fun-safe-math quits (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Quit: Leaving)
19:42:42 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds)
19:44:18 queepeg joins (~user@88-110-184-186.dynamic.dsl.as9105.com)
19:45:20 × falafel quits (~falafel@2603-8000-d700-115c-537a-f91e-d604-9800.res6.spectrum.com) (Ping timeout: 250 seconds)
19:47:13 × vizor quits (~macroVizo@2601:602:77f:f0a0::c38a) (Quit: WeeChat 3.8)
19:49:48 queepeg parts (~user@88-110-184-186.dynamic.dsl.as9105.com) (ERC 5.4 (IRC client for GNU Emacs 28.2))
19:50:00 <tomsmeding> jade[m]: I think that's a question for #ghc
19:52:39 × maguss quits (~yurideabr@189.6.27.58) (Quit: Konversation terminated!)
19:57:48 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
19:58:11 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net)
20:09:13 × vglfr quits (~vglfr@37.73.153.49) (Ping timeout: 256 seconds)
20:13:01 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
20:18:11 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:19:23 somerandomnick joins (~somerando@217.160.36.77)
20:20:49 Guest4243 joins (~Guest42@95.91.231.168)
20:21:20 × jonathan_ quits (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
20:27:23 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:32:09 <Guest4243> @repoint ( . )$( . )
20:32:10 <lambdabot> (\ g x g0 x0 -> g x (g0 x0))
20:32:18 × Guest4243 quits (~Guest42@95.91.231.168) (Quit: Connection closed)
20:42:16 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:43:28 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:43:55 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
20:47:05 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
20:48:15 × trev quits (~trev@user/trev) (Quit: trev)
20:50:54 nate1 joins (~nate@98.45.169.16)
20:51:34 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:52:29 <somerandomnick> @ping
20:52:29 <lambdabot> pong
20:52:31 × oo_miguel quits (~Thunderbi@77-252-46-249.static.ip.netia.com.pl) (Ping timeout: 276 seconds)
20:55:28 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
21:08:45 × tok quits (~user@user/tok) (Remote host closed the connection)
21:18:48 × somerandomnick quits (~somerando@217.160.36.77) (Remote host closed the connection)
21:19:14 somerandomnick joins (~somerando@217.160.36.77)
21:36:52 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
21:37:16 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 265 seconds)
21:39:19 × nick4 quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 276 seconds)
21:44:01 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9471-3a9c-c321-b3e4.rev.sfr.net) (Remote host closed the connection)
21:44:04 × michalz quits (~michalz@185.246.207.203) (Remote host closed the connection)
21:44:59 × ix quits (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) (Quit: WeeChat 3.8)
21:45:26 rekahsoft joins (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
21:46:29 ix joins (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe)
21:49:04 kritzefitz joins (~kritzefit@debian/kritzefitz)
21:57:30 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:07:39 × thegeekinside quits (~thegeekin@189.180.38.222) (Ping timeout: 256 seconds)
22:11:32 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::fba) (Quit: Konversation terminated!)
22:15:20 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:16:42 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
22:16:50 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
22:16:56 nick4 joins (~nick@2600:8807:9103:b700:c41a:f850:bfc2:4f27)
22:21:14 × nick4 quits (~nick@2600:8807:9103:b700:c41a:f850:bfc2:4f27) (Ping timeout: 246 seconds)
22:25:09 thegeekinside joins (~thegeekin@189.180.38.222)
22:29:29 npmania joins (~Thunderbi@121.128.226.31)
22:33:35 × Cale quits (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com) (Remote host closed the connection)
22:35:52 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
22:36:21 chiselfuse joins (~chiselfus@user/chiselfuse)
22:36:22 Cale joins (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
22:40:50 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
22:42:45 × gurkenglas quits (~gurkengla@dynamic-046-114-002-228.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
22:44:26 merijn joins (~merijn@145.90.225.7)
22:45:14 gurkenglas joins (~gurkengla@46.114.179.150)
23:00:39 × oljenkins quits (~philipp@p5dec4bb3.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
23:08:10 codaraxis___ joins (~codaraxis@user/codaraxis)
23:09:08 × acidjnk quits (~acidjnk@p200300d6e715c4336965881302acf76a.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
23:11:25 × codaraxis__ quits (~codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
23:13:02 × codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
23:17:48 × merijn quits (~merijn@145.90.225.7) (Ping timeout: 265 seconds)
23:26:23 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection)
23:26:45 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
23:26:56 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 240 seconds)
23:27:11 chiselfu1e joins (~chiselfus@user/chiselfuse)
23:27:25 jwiegley is now known as johnw`
23:28:07 johnw` is now known as johnw
23:28:41 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
23:29:02 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c7a:f7d7:990c:5acb)
23:30:01 Guest75 joins (~Guest75@node-1w7jr9qnoiav0z7eosky02l6y.ipv6.telus.net)
23:37:05 finsternis joins (~X@23.226.237.192)
23:39:30 × Guest75 quits (~Guest75@node-1w7jr9qnoiav0z7eosky02l6y.ipv6.telus.net) (Quit: Client closed)
23:42:49 mauke_ joins (~mauke@user/mauke)
23:44:20 × mauke quits (~mauke@user/mauke) (Ping timeout: 252 seconds)
23:44:20 mauke_ is now known as mauke
23:46:41 × heartburn quits (~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 246 seconds)
23:48:22 <Clinton[m]> Is there a MonadState style typeclass that abstracts over a Key/Value store? Yes, I know I could use StateT and a Map, but I'd like to eventually replace an in memory implementation with some other implementation, like a database based one. I don't want to have to load the whole table each time I want to get one row to conform to the interface.
23:52:05 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
23:52:05 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
23:52:05 wroathe joins (~wroathe@user/wroathe)
23:54:02 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
23:54:42 heartburn joins (~gass@2a00:d880:3:1::b1e4:b241)

All times are in UTC on 2023-04-26.