2021/06/21

2021-06-21 00:00:05 +0200 <geekosaur> there are some who prefer not to use mtl but they still use transformers, with different packages over it (generally effect systems)
2021-06-21 00:00:16 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-06-21 00:01:32 +0200 <qrpnxz> oh monad transformers, i heard these are some big deal monad composer thing or something idk xD
2021-06-21 00:02:27 +0200moet(~moet@172.58.38.245) (Ping timeout: 265 seconds)
2021-06-21 00:02:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-21 00:03:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 00:04:29 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit)
2021-06-21 00:04:38 +0200unyu(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-06-21 00:09:25 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-21 00:11:09 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-06-21 00:11:14 +0200jasonu(~jasonu@166.70.242.157)
2021-06-21 00:12:27 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-21 00:14:03 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 265 seconds)
2021-06-21 00:17:19 +0200bilegeek(~bilegeek@2600:1008:b017:63a6:c26d:d119:faaa:a6d7)
2021-06-21 00:20:38 +0200jasonu(~jasonu@166.70.242.157) (Quit: Ping timeout (120 seconds))
2021-06-21 00:20:39 +0200wolfshappen_(~waff@irc.furworks.de) (Ping timeout: 268 seconds)
2021-06-21 00:21:07 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-21 00:21:57 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-06-21 00:23:56 +0200pera(~pera@user/pera) (Quit: leaving)
2021-06-21 00:30:17 +0200 <remexre> is https://en.wikipedia.org/wiki/Monad_(functional_programming)#Free_monads just wrong?
2021-06-21 00:30:39 +0200 <remexre> I'm having trouble interpreting the syntax (what language is that...), but the use of F in Bind definitely seems ill-kinded
2021-06-21 00:31:09 +0200 <remexre> and the definition of (>>=) is ill-typed per that definition
2021-06-21 00:31:41 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-06-21 00:33:50 +0200fabfianda(~fabfianda@mob-5-90-243-109.net.vodafone.it) (Ping timeout: 265 seconds)
2021-06-21 00:34:01 +0200 <dminuoso> remexre: The definition of >>= is indeed wrong, and the rest - I cant quite make it out.
2021-06-21 00:34:34 +0200fabfianda(~fabfianda@net-109-116-251-109.cust.vodafonedsl.it)
2021-06-21 00:35:09 +0200 <remexre> TBH I'm just gonna rewrite it to be in Haskell then
2021-06-21 00:35:13 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-21 00:36:33 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 00:37:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 00:38:47 +0200 <dibblego> remexre: https://gist.github.com/tonymorris/3f534e5ef92990c8c3618411aae07dea
2021-06-21 00:39:14 +0200 <dminuoso> Gah. my ide-bios seems to constantly pick up on my ~/venv directory. :(
2021-06-21 00:39:21 +0200 <dminuoso> It wants to watch all files
2021-06-21 00:39:38 +0200 <dminuoso> I have a multi cradle set up with none for that and some other directories..
2021-06-21 00:39:53 +0200 <remexre> dibblego: yeah, they don't do applicatives in the other examples, and use different names, so I'm doing it a bit differently, but yeah
2021-06-21 00:47:32 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-21 00:47:35 +0200 <dminuoso> Ahh heh. This is lsp-mode, not haskell-language-server
2021-06-21 00:48:51 +0200dhil(~dhil@195.213.192.47) (Ping timeout: 265 seconds)
2021-06-21 00:57:45 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 01:00:52 +0200trent1(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-06-21 01:02:17 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-21 01:07:31 +0200fendor(~fendor@178.115.131.43.wireless.dyn.drei.com) (Remote host closed the connection)
2021-06-21 01:09:44 +0200fvr(uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-21 01:11:09 +0200alx741(~alx741@181.196.68.152)
2021-06-21 01:14:48 +0200slack1256(~slack1256@181.203.98.105)
2021-06-21 01:15:00 +0200zeenk(~zeenk@82.76.113.130) (Quit: Konversation terminated!)
2021-06-21 01:15:11 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-21 01:16:20 +0200nate1(~nate@2601:1c0:4201:35b0:580e:3804:cf92:f841)
2021-06-21 01:18:18 +0200moet_(~moet@172.58.27.142) (Ping timeout: 265 seconds)
2021-06-21 01:18:57 +0200sh91(~sh9@softbank060116136158.bbtec.net)
2021-06-21 01:19:47 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 265 seconds)
2021-06-21 01:19:47 +0200moet(~moet@172.58.27.142)
2021-06-21 01:20:59 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Ping timeout: 244 seconds)
2021-06-21 01:21:14 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Ping timeout: 265 seconds)
2021-06-21 01:22:24 +0200kayprish(~kayprish@46.240.143.86) (Read error: Connection reset by peer)
2021-06-21 01:30:54 +0200wolfshappen(~waff@irc.furworks.de)
2021-06-21 01:31:16 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-06-21 01:31:50 +0200nate1(~nate@2601:1c0:4201:35b0:580e:3804:cf92:f841) (Ping timeout: 265 seconds)
2021-06-21 01:35:53 +0200sh91sh9
2021-06-21 01:37:49 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
2021-06-21 01:39:28 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-21 01:40:05 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 265 seconds)
2021-06-21 01:41:21 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 01:44:09 +0200wolfshappen(~waff@irc.furworks.de) (Quit: later)
2021-06-21 01:44:29 +0200wolfshappen(~waff@irc.furworks.de)
2021-06-21 01:44:53 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 265 seconds)
2021-06-21 01:45:51 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-06-21 01:47:23 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-21 01:55:34 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-06-21 01:55:35 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Quit: Leaving)
2021-06-21 01:56:02 +0200moet(~moet@172.58.27.142) (Ping timeout: 265 seconds)
2021-06-21 01:56:38 +0200moet(~moet@172.58.27.142)
2021-06-21 01:58:44 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-21 02:01:10 +0200lbseale(~lbseale@user/ep1ctetus)
2021-06-21 02:01:27 +0200lbseale(~lbseale@user/ep1ctetus) (Client Quit)
2021-06-21 02:12:38 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-21 02:18:14 +0200ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 265 seconds)
2021-06-21 02:19:21 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-21 02:20:01 +0200unyu(~pyon@user/pyon)
2021-06-21 02:20:43 +0200lbseale(~lbseale@user/ep1ctetus)
2021-06-21 02:21:26 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-21 02:23:33 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9) (Ping timeout: 265 seconds)
2021-06-21 02:25:53 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-06-21 02:26:28 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-06-21 02:34:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 02:37:25 +0200fef(~thedawn@user/thedawn)
2021-06-21 02:39:44 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:28e5:866c:bfd1:85d2) (Read error: Connection reset by peer)
2021-06-21 02:41:00 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:3573:4e54:4d99:437f) (Remote host closed the connection)
2021-06-21 02:43:05 +0200yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat)
2021-06-21 02:43:27 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-21 02:43:49 +0200yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp)
2021-06-21 02:55:39 +0200sheepduck(~sheepduck@user/sheepduck)
2021-06-21 02:57:32 +0200 <dsal> "I can't quite figure out how to express my ACL stuff as a property test." *figured it out* *found bug in ACL code* *found bug in manual ACL test that allowed bug*
2021-06-21 02:59:34 +0200 <monochrom> "It's bugs all the way down" >:)
2021-06-21 03:03:13 +0200MQ-17J(~MQ-17J@8.6.144.186) (Ping timeout: 265 seconds)
2021-06-21 03:03:14 +0200jasonu(~user@166.70.242.157)
2021-06-21 03:07:35 +0200 <cdsmith> I want the first thread to call initClassIfNeeded for a given class to run a setup action, and other threads that call with the same class block until that thread finishes initializing. My solution at https://github.com/cdsmith/HMock/blob/main/src/Test/HMock/Internal/MockT.hs#L98 uses two TVars and like 25 lines of code. Is there an easier way?
2021-06-21 03:07:37 +0200hammond2(~abner@gateway02.insomnia247.nl)
2021-06-21 03:08:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 03:10:03 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 03:10:54 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 03:12:01 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 03:12:28 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-06-21 03:12:33 +0200saolof(~olofs@90-227-86-119-no542.tbcn.telia.com) (Quit: Leaving)
2021-06-21 03:13:51 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-21 03:18:50 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-21 03:21:33 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 265 seconds)
2021-06-21 03:25:54 +0200 <jasonu> Hi everyone, I'm a Haskell noob who is just about to finish up working through Graham Hutton's book "Programming in Haskell" 2nd Edition. I'm looking for a good second book to further my skills. I was thinking about "Book of "
2021-06-21 03:27:03 +0200 <jasonu> Oops. I was thinking about "Book of Monads" or perhaps "Haskell in Depth". Any comments or suggestions from the community. I'm also open to project ideas.
2021-06-21 03:30:20 +0200mpt(~tom@2a02:908:1862:49e0::3)
2021-06-21 03:35:31 +0200xff0x(~xff0x@2001:1a81:5381:2000:e1b5:6bc2:be6a:4590) (Ping timeout: 268 seconds)
2021-06-21 03:37:19 +0200xff0x(~xff0x@2001:1a81:53cb:7800:33aa:1278:7cdb:992c)
2021-06-21 03:39:50 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Leaving)
2021-06-21 03:39:55 +0200mnrmnaughmnrgle(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-06-21 03:39:55 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds)
2021-06-21 03:42:19 +0200mnrmnaughmnrgle(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Remote host closed the connection)
2021-06-21 03:42:39 +0200mnrmnaugh(~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
2021-06-21 03:42:51 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 03:44:46 +0200vicfred(~vicfred@user/vicfred)
2021-06-21 03:46:26 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 03:46:30 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-21 03:48:34 +0200hammond2(~abner@gateway02.insomnia247.nl) (Changing host)
2021-06-21 03:48:34 +0200hammond2(~abner@user/hammond2)
2021-06-21 03:48:55 +0200hammond2hammond_
2021-06-21 03:49:36 +0200hammond_proscan
2021-06-21 03:50:18 +0200proscanhammond_
2021-06-21 03:50:56 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-21 04:01:34 +0200fef(~thedawn@user/thedawn)
2021-06-21 04:01:36 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Remote host closed the connection)
2021-06-21 04:01:51 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-06-21 04:02:43 +0200 <Axman6> jasonu: project recommendations is always hard, that mostly depends on what you're interested in
2021-06-21 04:04:12 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-21 04:05:54 +0200trent1(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 240 seconds)
2021-06-21 04:08:01 +0200 <_73> Type1 = `ContT PS.ProgramState (ExceptT Error (State PS.ProgramState)) Value`. `Type2 = ExceptT Error (State PS.ProgramState) Value`. I am having trouble understanding what I have gained by adding the extra ContT monad to my transformer stack. I was able to rewrite all of my code to use Type1, simply by doing `f = ContT $ \k -> do ... next <- k $ ValueConstructer a; pure next`. It is not clear to me though what advantage I gain from
2021-06-21 04:08:01 +0200 <_73> using Type1 versus Type2. I have only done this because a book I am reading using continuations and I want to try to map my project closer to this book.
2021-06-21 04:09:06 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 04:13:45 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-06-21 04:13:56 +0200 <Axman6> Why did you make the change in the first place?
2021-06-21 04:14:31 +0200 <jasonu> Axman6: I'm interested in using Haskell for webdev.
2021-06-21 04:15:28 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 04:15:45 +0200 <_73> Axman6: Experimental mostly
2021-06-21 04:16:06 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds)
2021-06-21 04:18:03 +0200vicfred_(~vicfred@fixed-187-191-48-110.totalplay.net)
2021-06-21 04:20:15 +0200vicfred_(~vicfred@fixed-187-191-48-110.totalplay.net) (Client Quit)
2021-06-21 04:21:02 +0200vicfred(~vicfred@user/vicfred) (Ping timeout: 265 seconds)
2021-06-21 04:23:14 +0200 <Axman6> jasonu: writing web servers in haskell is pretty fun, I personally really like using Servant as it lets me move a lot of the definition of the interface into types, which brings a lot of advantages (thinkg like automatic swagger docs, JS api generation etc.)
2021-06-21 04:29:33 +0200 <Axman6> things*
2021-06-21 04:32:11 +0200 <jasonu> Axman6: I've looked into Servant and it seems quite powerful, but I think I'm not at that level I have a weak grasp of Monads. I still need to learn about State, Monad Transformers and half a dozen other things.
2021-06-21 04:34:03 +0200mpt(~tom@2a02:908:1862:49e0::3) (Ping timeout: 265 seconds)
2021-06-21 04:36:33 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-06-21 04:36:33 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (zinc.libera.chat (Nickname regained by services)))
2021-06-21 04:36:33 +0200finn_elijaFinnElija
2021-06-21 04:37:49 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-21 04:44:33 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-21 04:46:47 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3-dev)
2021-06-21 04:47:08 +0200slack1256(~slack1256@181.203.98.105) (Ping timeout: 265 seconds)
2021-06-21 04:48:26 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer)
2021-06-21 04:50:07 +0200 <Cajun> janonu: i read that book too! its very good; i moved onto Parallel and Concurrent Programming in Haskell and i recommend it
2021-06-21 04:50:17 +0200 <Cajun> jasonu * typo
2021-06-21 04:51:28 +0200 <Cajun> but you cant really approach it without firmly understanding the language, so make sure you understand the second part of Programming in Haskell as thats crucial
2021-06-21 04:52:16 +0200 <Cajun> sadly the textbook lacks as many examples as Hutton's, but its still a great introduction to parallelization
2021-06-21 04:53:59 +0200 <jasonu> Thanks Cajun. I do plan to read that one as well...sometime.
2021-06-21 04:54:03 +0200 <_73> jasonu: I wrote a website in haskell as a intermediate haskell noob. I did not understand monads or transformers. That project helped me a lot to learn these concepts though. I used Yesod because it comes with a book.
2021-06-21 04:54:51 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-21 04:56:45 +0200trent1(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-06-21 04:57:17 +0200td_(~td@94.134.91.60) (Ping timeout: 265 seconds)
2021-06-21 04:57:54 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-21 04:58:07 +0200Jonno_FTW(~come@api.carswap.me) (Changing host)
2021-06-21 04:58:07 +0200Jonno_FTW(~come@user/jonno-ftw/x-0835346)
2021-06-21 04:59:05 +0200td_(~td@94.134.91.150)
2021-06-21 05:01:10 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-21 05:02:54 +0200 <sm[m]> jasonu: time to work on some projects!
2021-06-21 05:04:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 05:05:57 +0200altern(~altern@altern.corbina.com.ua) (Ping timeout: 265 seconds)
2021-06-21 05:06:03 +0200 <jasonu> _73: I kinda want something to help fill in gaps in my knowledge while doing project work. The Yesod book looks like it could lead to a good project rather quickly.
2021-06-21 05:07:19 +0200 <jasonu> sm[m]: Yeah, writing code is the only way to learn, and at some point you just have to dive in.
2021-06-21 05:08:13 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 05:08:24 +0200yd502(~yd502@180.168.212.6)
2021-06-21 05:13:58 +0200fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-21 05:18:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-21 05:22:17 +0200 <sm[m]> Yesod is great. I've got a foss yesod app if you'd like to try and contribute to an existing code base
2021-06-21 05:22:17 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-06-21 05:22:46 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-06-21 05:23:48 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-21 05:24:42 +0200ukari(~ukari@user/ukari)
2021-06-21 05:24:59 +0200 <sm[m]> yesod apps aren't the easiest place to start, but tweaking a working app can be rewarding
2021-06-21 05:26:00 +0200wanagnuj(~wanagnuj@101.95.97.158)
2021-06-21 05:26:01 +0200wanagnuj(~wanagnuj@101.95.97.158) (Client Quit)
2021-06-21 05:26:40 +0200MQ-17J(~MQ-17J@8.6.144.186)
2021-06-21 05:27:16 +0200wanagnuj(~wanagnuj@101.95.97.158)
2021-06-21 05:27:18 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-06-21 05:28:10 +0200wanagnuj(~wanagnuj@101.95.97.158) (Client Quit)
2021-06-21 05:28:43 +0200wanagnuj(~wanagnuj@101.95.97.158)
2021-06-21 05:29:08 +0200wanagnuj(~wanagnuj@101.95.97.158) (Client Quit)
2021-06-21 05:30:41 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 258 seconds)
2021-06-21 05:34:56 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-21 05:35:36 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-06-21 05:36:49 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
2021-06-21 05:36:50 +0200Lord_of_Life_Lord_of_Life
2021-06-21 05:39:26 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-06-21 05:39:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 05:47:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-06-21 05:47:12 +0200alx741(~alx741@181.196.68.152) (Quit: alx741)
2021-06-21 05:47:54 +0200econo(uid147250@user/econo)
2021-06-21 05:59:49 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2021-06-21 06:00:02 +0200Sgeo_(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-06-21 06:00:02 +0200jasonu`(~user@166.70.242.157)
2021-06-21 06:00:12 +0200phma_(phma@2001:5b0:210d:d028:dead:9920:575e:b71e)
2021-06-21 06:00:23 +0200wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-21 06:00:28 +0200yd502_(~yd502@180.168.212.6)
2021-06-21 06:00:51 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-21 06:00:55 +0200tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-06-21 06:01:30 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 06:02:05 +0200bontaq`(~user@ool-18e47f8d.dyn.optonline.net)
2021-06-21 06:02:28 +0200ikex1(ash@user/ikex)
2021-06-21 06:02:33 +0200fiddlerwoaroof_(~fiddlerwo@user/fiddlerwoaroof)
2021-06-21 06:02:36 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 06:02:49 +0200Feuermagier_(~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a)
2021-06-21 06:02:54 +0200nurupo_(~nurupo.ga@user/nurupo)
2021-06-21 06:03:05 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 244 seconds)
2021-06-21 06:03:08 +0200tomsmeding_(~tomsmedin@2a03:b0c0:0:1010::767:3001)
2021-06-21 06:03:08 +0200econo_(uid147250@user/econo)
2021-06-21 06:03:19 +0200hnOsmium0001_(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-21 06:03:26 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-21 06:03:58 +0200howdy`(~user@2001:8003:2432:d501:1ea:381d:5464:1a19)
2021-06-21 06:04:28 +0200moet(~moet@172.58.27.142) (Ping timeout: 265 seconds)
2021-06-21 06:04:29 +0200Ferdiran1(~somebody@2001:4c78:2012:5000::2)
2021-06-21 06:04:44 +0200np(~nerdypepp@user/nerdypepper)
2021-06-21 06:04:47 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-06-21 06:04:47 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (copper.libera.chat (Nickname regained by services)))
2021-06-21 06:04:47 +0200finn_elijaFinnElija
2021-06-21 06:04:57 +0200ezzieygu1wuf(~Unknown@user/ezzieyguywuf)
2021-06-21 06:05:03 +0200trent2(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-06-21 06:05:05 +0200euandreh_(~euandreh@2804:14c:33:9fe5:ee71:32ea:12e0:378c)
2021-06-21 06:05:12 +0200jonatan_(~nate@h77-53-70-163.cust.a3fiber.se)
2021-06-21 06:05:18 +0200td__(~td@94.134.91.150)
2021-06-21 06:05:29 +0200amirouche`(~amirouche@user/amirouche)
2021-06-21 06:05:31 +0200xff0x_(~xff0x@2001:1a81:53cb:7800:33aa:1278:7cdb:992c)
2021-06-21 06:06:05 +0200moet(~moet@172.58.27.142)
2021-06-21 06:06:11 +0200derelict_(~derelict@user/derelict)
2021-06-21 06:07:07 +0200RemiYuko(~licht@user/akechishiro)
2021-06-21 06:07:32 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 06:09:34 +0200jackhill_(~jackhill@kalessin.dragonsnail.net)
2021-06-21 06:09:36 +0200econo(uid147250@user/econo) (*.net *.split)
2021-06-21 06:09:36 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (*.net *.split)
2021-06-21 06:09:36 +0200Feuermagier(~Feuermagi@user/feuermagier) (*.net *.split)
2021-06-21 06:09:36 +0200yd502(~yd502@180.168.212.6) (*.net *.split)
2021-06-21 06:09:36 +0200td_(~td@94.134.91.150) (*.net *.split)
2021-06-21 06:09:36 +0200trent1(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (*.net *.split)
2021-06-21 06:09:36 +0200xff0x(~xff0x@2001:1a81:53cb:7800:33aa:1278:7cdb:992c) (*.net *.split)
2021-06-21 06:09:36 +0200jakalx(~jakalx@base.jakalx.net) (*.net *.split)
2021-06-21 06:09:36 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
2021-06-21 06:09:36 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (*.net *.split)
2021-06-21 06:09:36 +0200jasonu(~user@166.70.242.157) (*.net *.split)
2021-06-21 06:09:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (*.net *.split)
2021-06-21 06:09:36 +0200nerdypepper(~nerdypepp@user/nerdypepper) (*.net *.split)
2021-06-21 06:09:36 +0200ikex(ash@user/ikex) (*.net *.split)
2021-06-21 06:09:36 +0200tomsmeding(~tomsmedin@tomsmeding.com) (*.net *.split)
2021-06-21 06:09:36 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (*.net *.split)
2021-06-21 06:09:36 +0200jackhill(~jackhill@kalessin.dragonsnail.net) (*.net *.split)
2021-06-21 06:09:36 +0200aveltras[m](~aveltrasm@2001:470:69fc:105::3ef9) (*.net *.split)
2021-06-21 06:09:36 +0200Sgeo(~Sgeo@user/sgeo) (*.net *.split)
2021-06-21 06:09:36 +0200nurupo(~nurupo.ga@user/nurupo) (*.net *.split)
2021-06-21 06:09:36 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (*.net *.split)
2021-06-21 06:09:36 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (*.net *.split)
2021-06-21 06:09:36 +0200phma(phma@2001:5b0:210d:d028:dead:9920:575e:b71e) (*.net *.split)
2021-06-21 06:09:36 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (*.net *.split)
2021-06-21 06:09:36 +0200euandreh(~euandreh@2804:14c:33:9fe5:c617:f0e4:6f11:e3af) (*.net *.split)
2021-06-21 06:09:36 +0200howdy(~user@2001:8003:2432:d501:71e9:d3d3:3664:52d2) (*.net *.split)
2021-06-21 06:09:36 +0200img(~img@user/img) (*.net *.split)
2021-06-21 06:09:36 +0200derelict(~derelict@user/derelict) (*.net *.split)
2021-06-21 06:09:36 +0200rawles(~o@sputnik.rawles.net) (*.net *.split)
2021-06-21 06:09:36 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (*.net *.split)
2021-06-21 06:09:36 +0200jonatan(~nate@h77-53-70-163.cust.a3fiber.se) (*.net *.split)
2021-06-21 06:09:36 +0200amirouche(~amirouche@user/amirouche) (*.net *.split)
2021-06-21 06:09:36 +0200AkechiShiro(~licht@user/akechishiro) (*.net *.split)
2021-06-21 06:09:36 +0200Ferdirand(~somebody@2001:4c78:2012:5000::2) (*.net *.split)
2021-06-21 06:09:36 +0200fiddlerwoaroof(~fiddlerwo@user/fiddlerwoaroof) (*.net *.split)
2021-06-21 06:09:36 +0200econo_econo
2021-06-21 06:09:37 +0200nurupo_nurupo
2021-06-21 06:09:37 +0200ikex1ikex
2021-06-21 06:09:41 +0200hnOsmium0001_hnOsmium0001
2021-06-21 06:09:45 +0200wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2021-06-21 06:09:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-21 06:10:52 +0200phma_phma
2021-06-21 06:11:52 +0200sheepduck(~sheepduck@user/sheepduck) (Quit: Leaving)
2021-06-21 06:12:03 +0200sheepduck(~sheepduck@user/sheepduck)
2021-06-21 06:12:12 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-06-21 06:16:36 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-21 06:16:43 +0200img(~img@user/img)
2021-06-21 06:17:08 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-21 06:18:36 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 06:19:27 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 265 seconds)
2021-06-21 06:20:01 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 06:20:08 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2021-06-21 06:23:09 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds)
2021-06-21 06:25:29 +0200vonfry(~user@240e:688:3:1010:5942:1e2c:6233:6863)
2021-06-21 06:32:40 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-21 06:33:32 +0200 <jackdk> I stumbled across the following type while trying to write a trace function for an evaluator for a language I'm working on `data Trace m a = Done a | Step a (m (Trace m a))`. It looks like `Free m a` with an additional value - does it have a canonical name?
2021-06-21 06:34:26 +0200wei2912(~wei2912@112.199.250.21)
2021-06-21 06:37:23 +0200 <dibblego> Ap Either (Cofree f)
2021-06-21 06:39:12 +0200sheepduck(~sheepduck@user/sheepduck) (Quit: Leaving)
2021-06-21 06:46:47 +0200 <jackdk> Ap?
2021-06-21 06:47:05 +0200 <jackdk> the only Ap I know is in Data.Monoid and has the wrong kind
2021-06-21 06:47:13 +0200 <dibblego> newtype Ap f g a = Ap (f a (g a))
2021-06-21 06:47:39 +0200jasonu`(~user@166.70.242.157) (Remote host closed the connection)
2021-06-21 06:47:51 +0200jasonu`(~user@166.70.242.157)
2021-06-21 06:48:57 +0200 <dibblego> I don't know what it is; almost NonEmptyList
2021-06-21 06:49:16 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Ping timeout: 258 seconds)
2021-06-21 06:51:41 +0200aveltras[m](~aveltrasm@2001:470:69fc:105::3ef9)
2021-06-21 06:52:45 +0200jasonu`(~user@166.70.242.157) (Ping timeout: 268 seconds)
2021-06-21 06:54:44 +0200yd502_(~yd502@180.168.212.6) (Ping timeout: 265 seconds)
2021-06-21 07:00:08 +0200ChanServ(ChanServ@services.libera.chat) (shutting down)
2021-06-21 07:00:11 +0200cheater(~Username@user/cheater) (Remote host closed the connection)
2021-06-21 07:01:17 +0200bilegeek(~bilegeek@2600:1008:b017:63a6:c26d:d119:faaa:a6d7) (Quit: Leaving)
2021-06-21 07:05:04 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-06-21 07:08:45 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-06-21 07:11:54 +0200finsternis(~X@23.226.237.192) (Remote host closed the connection)
2021-06-21 07:14:42 +0200azeem(~azeem@dynamic-adsl-94-34-49-60.clienti.tiscali.it) (Remote host closed the connection)
2021-06-21 07:14:44 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection)
2021-06-21 07:14:45 +0200fabfianda(~fabfianda@net-109-116-251-109.cust.vodafonedsl.it) (Remote host closed the connection)
2021-06-21 07:14:55 +0200ChanServ(ChanServ@services.libera.chat)
2021-06-21 07:14:55 +0200osmium.libera.chat+o ChanServ
2021-06-21 07:15:40 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-21 07:16:01 +0200azeem(~azeem@dynamic-adsl-94-34-49-60.clienti.tiscali.it)
2021-06-21 07:16:23 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-21 07:17:06 +0200vonfry(~user@240e:688:3:1010:5942:1e2c:6233:6863) (Quit: ERC (IRC client for Emacs 27.2))
2021-06-21 07:17:47 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-21 07:20:17 +0200 <Axman6> have there been any proposals for a monadic case syntax? something like case! (something foo bar :: m BaZ) of Baz x -> ...; Quux y -> ...; which would be equivalent to something foo bar >>= \case ...
2021-06-21 07:21:17 +0200 <shachaf> I'd probably rather see the (<- x) syntax.
2021-06-21 07:21:28 +0200jneira(~jneira@212.8.115.226)
2021-06-21 07:21:44 +0200 <Axman6> what would that look like?
2021-06-21 07:21:48 +0200 <nshepperd> would it really be an improvement over >>= \case?
2021-06-21 07:21:53 +0200 <shachaf> https://github.com/ghc-proposals/ghc-proposals/pull/64
2021-06-21 07:23:49 +0200 <Axman6> hmm, that's cute, though the question about ordering of evaluation is a good one, I'd hate to have to write flip foo (<- y) (<- x) z to get y to run before x just because foo was definied in the "wrong" order
2021-06-21 07:24:03 +0200 <Axman6> but, I would probably use it a lot if it were available
2021-06-21 07:24:10 +0200 <shachaf> Then don't, just do it the same way you do in C.
2021-06-21 07:24:17 +0200 <nshepperd> i would only use it when ordering doesn't matter
2021-06-21 07:24:34 +0200 <shachaf> You write f(g(), h()), but if you care about the order, you write "int x = g(); int y = h(); f(x, y);"
2021-06-21 07:24:47 +0200yd502_(~yd502@180.168.212.6)
2021-06-21 07:25:30 +0200 <nshepperd> to enforce this, ghc should desugar the bindings into different possible orderings on different days of the week
2021-06-21 07:25:51 +0200yd502_(~yd502@180.168.212.6) (Client Quit)
2021-06-21 07:26:18 +0200 <shachaf> Anyway, it solves your case issue.
2021-06-21 07:28:08 +0200 <nshepperd> https://github.com/ghc-proposals/ghc-proposals/pull/64#issuecomment-318910111 yikes
2021-06-21 07:28:11 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-06-21 07:29:13 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 07:29:35 +0200jneira(~jneira@212.8.115.226)
2021-06-21 07:33:31 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-06-21 07:35:01 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-21 07:35:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 07:55:07 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 07:55:46 +0200zeenk(~zeenk@82.76.113.130)
2021-06-21 07:56:02 +0200Morrow_(~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-06-21 08:02:06 +0200bontaq`(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 258 seconds)
2021-06-21 08:03:47 +0200 <Rembane> tomsmeding_: I can totally see why those parts feel odd to you. It just struck me! There's another paper where they reason about generating highly recursive types in a more structured way: https://octopi.chalmers.se/2018/11/11/dragen/
2021-06-21 08:03:48 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-06-21 08:04:07 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-21 08:04:17 +0200MQ-17J(~MQ-17J@8.6.144.186) (Ping timeout: 268 seconds)
2021-06-21 08:04:36 +0200MQ-17J(~MQ-17J@8.9.230.29)
2021-06-21 08:05:40 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-21 08:06:54 +0200tput(~tim@S0106a84e3fe54613.ed.shawcable.net) (Ping timeout: 264 seconds)
2021-06-21 08:07:24 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 08:08:28 +0200michalz(~michalz@185.246.204.40)
2021-06-21 08:09:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-21 08:10:42 +0200Feuermagier_(~Feuermagi@2a02:2488:4211:3400:5def:8486:9e4:b49a) (Quit: Leaving)
2021-06-21 08:14:25 +0200Meh(~Meh@202.14.120.214)
2021-06-21 08:14:33 +0200qbt(~edun@user/edun)
2021-06-21 08:14:48 +0200MehGuest3331
2021-06-21 08:14:50 +0200Guest3331(~Meh@202.14.120.214) (Client Quit)
2021-06-21 08:14:56 +0200awth13(~user@user/awth13)
2021-06-21 08:16:08 +0200Meh(~Meh@202.14.120.214)
2021-06-21 08:16:32 +0200MehGuest5827
2021-06-21 08:16:55 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-21 08:17:21 +0200Guest5827(~Meh@202.14.120.214) (Client Quit)
2021-06-21 08:17:23 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-21 08:19:05 +0200MQ-17J(~MQ-17J@8.9.230.29) (Ping timeout: 268 seconds)
2021-06-21 08:20:50 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 08:21:17 +0200jneira(~jneira@212.8.115.226)
2021-06-21 08:21:45 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 08:22:25 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 258 seconds)
2021-06-21 08:22:43 +0200Guest9(~Guest9@43.250.158.40)
2021-06-21 08:23:29 +0200unyu(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-06-21 08:25:42 +0200teaSlurper(~chris@81.96.113.213) (Read error: Connection reset by peer)
2021-06-21 08:26:00 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 08:31:00 +0200leeb_(~leeb@KD111239158072.au-net.ne.jp)
2021-06-21 08:33:55 +0200leeb(~leeb@KD111239153103.au-net.ne.jp) (Ping timeout: 258 seconds)
2021-06-21 08:34:52 +0200unyu(~pyon@user/pyon)
2021-06-21 08:35:50 +0200trent2(~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 268 seconds)
2021-06-21 08:35:59 +0200unyu(~pyon@user/pyon) (Client Quit)
2021-06-21 08:38:56 +0200deshalb(~deshalb@user/deshalb)
2021-06-21 08:40:00 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-21 08:40:49 +0200nikoo
2021-06-21 08:43:21 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9f46:523f:c74b:90e0)
2021-06-21 08:43:30 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 258 seconds)
2021-06-21 08:45:16 +0200MQ-17J(~MQ-17J@8.9.230.29)
2021-06-21 08:48:18 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-06-21 08:52:36 +0200chele(~chele@user/chele)
2021-06-21 08:54:13 +0200Morrow_(~MorrowM_@147.161.13.127)
2021-06-21 09:01:27 +0200moet_(~moet@172.58.19.92)
2021-06-21 09:04:18 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9)
2021-06-21 09:04:35 +0200moet(~moet@172.58.27.142) (Ping timeout: 258 seconds)
2021-06-21 09:06:52 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-21 09:08:22 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-21 09:08:39 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-06-21 09:11:42 +0200Morrow(~MorrowM_@147.161.13.127)
2021-06-21 09:12:06 +0200 <Unhammer> hm, why isn't takeEnd part of Data.Sequence
2021-06-21 09:12:07 +0200MQ-17J(~MQ-17J@8.9.230.29) (Ping timeout: 268 seconds)
2021-06-21 09:14:35 +0200Morrow_(~MorrowM_@147.161.13.127) (Ping timeout: 268 seconds)
2021-06-21 09:14:56 +0200moet(~moet@172.58.38.233)
2021-06-21 09:15:28 +0200 <Unhammer> guess it'd be something like Seq.foldrWithIndex (\_ e (!c,a)->if c<n then (c+1, e:<|a) else (c,a))
2021-06-21 09:16:23 +0200 <maerwald[m]> That looks like a proposal similarly brittle and confusing like ApplicativeDo
2021-06-21 09:16:28 +0200moet_(~moet@172.58.19.92) (Ping timeout: 258 seconds)
2021-06-21 09:20:48 +0200 <nshepperd> Unhammer: takeEnd? why not just use Seq.drop (Seq.length xs - n)
2021-06-21 09:23:03 +0200 <nshepperd> The length is cached so that should be about as fast as it can get
2021-06-21 09:23:56 +0200 <nshepperd> it is odd that the module doesn't have takeEnd and dropEnd for convenience though
2021-06-21 09:26:04 +0200tomsmeding_tomsmeding
2021-06-21 09:27:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 09:28:24 +0200 <tomsmeding> Rembane: thanks for the reference! will read later :)
2021-06-21 09:28:39 +0200 <tomsmeding> Sweden is active in this area it seems
2021-06-21 09:31:51 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds)
2021-06-21 09:33:04 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-21 09:34:30 +0200nschoe(~quassel@178.251.84.79)
2021-06-21 09:35:07 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2021-06-21 09:35:34 +0200pera(~pera@154.red-79-155-45.dynamicip.rima-tde.net)
2021-06-21 09:35:58 +0200peraGuest8323
2021-06-21 09:37:24 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-21 09:37:24 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-21 09:38:32 +0200gnoo(~gnoo@user/gnoo)
2021-06-21 09:39:49 +0200 <Unhammer> nshepperd, I assuming Seq.drop would "start from the beginning", but now I see the docs say O(log(min(i,n−i))) which I guess means it does the smart thing and picks the end it's closest to :)
2021-06-21 09:39:54 +0200 <Unhammer> *I was assuming
2021-06-21 09:40:30 +0200 <nshepperd> it uses a clever thing similar to binary search
2021-06-21 09:40:41 +0200 <Unhammer> Thanks (though I still think it'd be nice to have takeEnd/dropEnd there for convenience)
2021-06-21 09:41:09 +0200 <nshepperd> hence the logarithmic time
2021-06-21 09:41:43 +0200deshalb(~deshalb@user/deshalb) (Ping timeout: 268 seconds)
2021-06-21 09:41:45 +0200 <int-e> it's kind of intrinsic to the measured finger trees
2021-06-21 09:46:25 +0200cfricke(~cfricke@user/cfricke)
2021-06-21 09:46:42 +0200ubert(~Thunderbi@p200300ecdf259dd4ad9b8920565e1743.dip0.t-ipconnect.de)
2021-06-21 09:48:40 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 258 seconds)
2021-06-21 09:49:07 +0200Morrow(~MorrowM_@147.161.13.127) (Ping timeout: 268 seconds)
2021-06-21 09:50:19 +0200 <Unhammer> nah I could easily write a bad drop function that goes slowly from the start
2021-06-21 09:50:47 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-21 09:51:01 +0200 <Unhammer> I've got lots of experience with taking performant data structures and making them go slowly
2021-06-21 09:51:27 +0200berberman(~berberman@user/berberman) (Ping timeout: 244 seconds)
2021-06-21 09:52:11 +0200berberman(~berberman@user/berberman)
2021-06-21 09:52:31 +0200tzh_(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-06-21 09:52:49 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-21 09:53:49 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-21 09:57:53 +0200fm(~fm@user/fm) (Quit: fm)
2021-06-21 10:00:54 +0200octeep(~octeep@n219077212239.netvigator.com) (Ping timeout: 264 seconds)
2021-06-21 10:01:16 +0200acid(~acid@user/acid) (Ping timeout: 244 seconds)
2021-06-21 10:02:20 +0200acid(~acid@user/acid)
2021-06-21 10:03:40 +0200Guest8323(~pera@154.red-79-155-45.dynamicip.rima-tde.net) (Quit: leaving)
2021-06-21 10:03:54 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 10:03:56 +0200octeep(~octeep@42-2-220-152.static.netvigator.com)
2021-06-21 10:04:30 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:06:16 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 10:06:22 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net)
2021-06-21 10:06:40 +0200hendursa1(~weechat@user/hendursaga)
2021-06-21 10:08:04 +0200Guest9(~Guest9@43.250.158.40) (Ping timeout: 265 seconds)
2021-06-21 10:08:52 +0200jneira(~jneira@212.8.115.226) (Client Quit)
2021-06-21 10:09:10 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:09:20 +0200 <int-e> Unhammer: but if you do the natural thing, which is to look at the current node in the fingertree and its parts (each of which has a known length), and skip over all the parts that are shorter than your target length... you'll almost automatically end up with that complexity.
2021-06-21 10:09:30 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-06-21 10:09:57 +0200lemmih(~lemmih@2406:3003:2072:44:925e:d7ab:50d2:4457) (Remote host closed the connection)
2021-06-21 10:10:15 +0200lemmih(~lemmih@2406:3003:2072:44:9bcd:6adc:313d:18f9)
2021-06-21 10:10:24 +0200 <int-e> And that was my point: you get that complexity even if you don't try to look at the finger tree from the "shorter" end.
2021-06-21 10:13:30 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:7fb:5bd8:2599:2fdb)
2021-06-21 10:17:32 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-06-21 10:17:32 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-06-21 10:17:44 +0200jumper149(~jumper149@80.240.31.34)
2021-06-21 10:18:23 +0200Sgeo_(~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
2021-06-21 10:18:49 +0200maroloccio(~marolocci@186.210.216.126)
2021-06-21 10:19:13 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:7fb:5bd8:2599:2fdb) (Remote host closed the connection)
2021-06-21 10:19:56 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:2a76:42b9:78db:d162)
2021-06-21 10:20:24 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 10:22:38 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 10:23:00 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:24:08 +0200fendor(~fendor@178.115.131.43.wireless.dyn.drei.com)
2021-06-21 10:25:02 +0200jneira(~jneira@212.8.115.226) (Client Quit)
2021-06-21 10:25:05 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds)
2021-06-21 10:25:18 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:26:51 +0200maroloccio1(~marolocci@189.15.9.54)
2021-06-21 10:29:22 +0200maroloccio(~marolocci@186.210.216.126) (Ping timeout: 246 seconds)
2021-06-21 10:31:04 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 10:31:48 +0200 <merijn> Unhammer: Don't we all? ;)
2021-06-21 10:31:59 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-21 10:33:48 +0200kuribas(~user@ptr-25vy0i7yslxo8ej7h6j.18120a2.ip6.access.telenet.be)
2021-06-21 10:35:29 +0200 <siraben> finger trees <3
2021-06-21 10:36:10 +0200 <siraben> are there structures that can be used to replace mutable graphs in imperative languages? problems involving mutable graphs are usually quite difficult in Haskell
2021-06-21 10:37:22 +0200 <merijn> The answer is always arrays :p
2021-06-21 10:37:25 +0200qrpnxz(abc4f95c31@user/qrpnxz) (Quit: Gateway shutdown)
2021-06-21 10:37:41 +0200qrpnxz(~qrpnxz@user/qrpnxz)
2021-06-21 10:37:47 +0200 <merijn> If there is one lesson I have taken away from HPC it's that arrays are the universal HPC data structure :p
2021-06-21 10:37:54 +0200 <tomsmeding> re:finger trees: just want to post this very nice explanation of them for those who haven't seen it yet https://www.cs.tufts.edu/~nr/cs257/archive/koen-claessen/finger-trees.pdf
2021-06-21 10:38:14 +0200 <merijn> And if you're not using arrays...well, better figure out a way to start :p
2021-06-21 10:38:45 +0200 <EvanR> "everything is arrays", this is where conal comes to knock some sense into us
2021-06-21 10:39:34 +0200 <merijn> EvanR: Naah, that's APL talking
2021-06-21 10:39:48 +0200 <merijn> HPC isn't "everything is arrays", but "everything *should be* arrays" :p
2021-06-21 10:39:49 +0200involans(~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
2021-06-21 10:40:49 +0200 <EvanR> is this because architecture is built to cache, prefetch, stream, and SIMD operate on arrays
2021-06-21 10:41:22 +0200 <merijn> Like that one time I had a perfectly optimal, single pass O(n log n) algorithm and I made it 7x faster, by adding a double pass on top of it and replacing heaps with a single massive array :p
2021-06-21 10:41:26 +0200 <merijn> EvanR: Pretty much
2021-06-21 10:41:51 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 10:42:19 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:42:28 +0200 <merijn> EvanR: O(n) where you are basically linearly going over a massive array will almost always beat some fancy optimal data structure where you have dynamic allocations, pointer chasing, etc.
2021-06-21 10:42:37 +0200 <int-e> merijn: it's embarrasing how often the stupidest approach is the fastest because CPUs coevolve with stupid algorithms (if you want to be cynical about it ;-) )
2021-06-21 10:42:51 +0200 <siraben> merijn: Data.Array is enough or should I use Data.Vector?
2021-06-21 10:42:57 +0200 <siraben> Hm, always arrays? aaaa
2021-06-21 10:43:11 +0200 <merijn> siraben: tbh, either are a massive improvement overy lists
2021-06-21 10:43:17 +0200 <int-e> siraben: yes, arrays, especially if you get sequential access to them
2021-06-21 10:43:24 +0200 <merijn> siraben: Personally I prefer Vector for 1D
2021-06-21 10:43:32 +0200 <int-e> or the arrays are small enough to (mostly) fit into the cache
2021-06-21 10:43:38 +0200 <merijn> siraben: Array is more flexible (as it allows custom indexing schemes)
2021-06-21 10:43:45 +0200 <shachaf> int-e: Do you think CPUs could do much better?
2021-06-21 10:43:48 +0200 <siraben> Yeah I already avoid lists whenever doing random access, but arrays are awkward enough that sometimes I just resort to Map (Int,Int) a
2021-06-21 10:43:58 +0200 <merijn> siraben: tbh, Map is surprisingly performant
2021-06-21 10:44:01 +0200 <siraben> multidimensional arrays, that is
2021-06-21 10:44:18 +0200 <merijn> siraben: Like, I've had Map with millions of elements doing lookups in tight loops and it performs pretty well
2021-06-21 10:44:53 +0200 <siraben> I see
2021-06-21 10:44:57 +0200 <merijn> Of course, there's also the matter of "does performance matter here?"
2021-06-21 10:45:19 +0200kayprish(~kayprish@46.240.143.86) (Read error: Connection reset by peer)
2021-06-21 10:45:22 +0200 <merijn> Like, if your code is doing disk/network IO there's basically no point in optimising compute to be faster than the time you're waiting for IO anyway
2021-06-21 10:45:44 +0200 <merijn> (well, there's some if the machine is shared or whatever, but you get what I mean)
2021-06-21 10:46:03 +0200 <EvanR> it's like drive faster so we can get to the red light sooner
2021-06-21 10:46:22 +0200 <merijn> EvanR: Now I'm imagining "green waves" for compute xD
2021-06-21 10:46:39 +0200 <int-e> shachaf: I don't know. Maybe RAM is not the right abstraction for advanced algorithms :P
2021-06-21 10:47:00 +0200jneira(~jneira@212.8.115.226) (Client Quit)
2021-06-21 10:47:01 +0200 <kuribas> merijn: wouldn't it be better to combine arrays with other structures (like trees or lists)?
2021-06-21 10:47:19 +0200moet(~moet@172.58.38.233) (Ping timeout: 258 seconds)
2021-06-21 10:47:20 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:47:21 +0200 <merijn> kuribas: In what scenario?
2021-06-21 10:47:22 +0200 <siraben> merijn: yeah, this is in solving algorithmic type problems
2021-06-21 10:47:22 +0200 <EvanR> array mapped trie
2021-06-21 10:47:24 +0200 <kuribas> merijn: for example, chunked lists for time series.
2021-06-21 10:47:28 +0200 <siraben> e.g. AOC, Codeforces, etc.
2021-06-21 10:47:31 +0200 <siraben> Google Code Jam
2021-06-21 10:47:56 +0200 <siraben> I have a conservative template for these types of problems
2021-06-21 10:47:57 +0200 <siraben> https://github.com/siraben/haoc-2020/blob/master/template.hs
2021-06-21 10:48:15 +0200 <merijn> kuribas: Why would a chunked list be better than just an array?
2021-06-21 10:48:20 +0200 <siraben> but in particular I should avoid other libraries whenever possible, even Data.Vector isn't always on the autograder
2021-06-21 10:48:34 +0200 <siraben> merijn: cache reasons?
2021-06-21 10:48:37 +0200 <kuribas> merijn: less copying
2021-06-21 10:48:47 +0200 <merijn> kuribas: That only applies if you mutate
2021-06-21 10:48:59 +0200 <kuribas> merijn: also if you need to store them
2021-06-21 10:49:02 +0200 <kuribas> and retrieve
2021-06-21 10:49:02 +0200 <siraben> IIRC, the kind of linked lists one learns in undergrad CS is woefully slow compared to unrolled link lists
2021-06-21 10:49:16 +0200 <siraben> s/link/linked/
2021-06-21 10:49:25 +0200 <merijn> siraben: Right, but Haskell lists are the dreadful type ;)
2021-06-21 10:49:38 +0200 <siraben> yeah
2021-06-21 10:49:40 +0200 <kuribas> siraben: for code contests it's rarely the language or implementation that matters, usually just the algorithmic complexity.
2021-06-21 10:49:41 +0200 <siraben> but lists aren't always so bad, IME
2021-06-21 10:50:01 +0200 <siraben> if you do a single pass and use folds correctly, they can be quite performant
2021-06-21 10:50:11 +0200 <siraben> kuribas: yeah
2021-06-21 10:50:12 +0200 <EvanR> because they get compiled away entirely? xD
2021-06-21 10:50:18 +0200 <int-e> Haskell's lists are so convenient though... I usually start out with lists and then replace them by some kind of array (Data.Vector is an array in that view) if performance becomes an issue.
2021-06-21 10:50:19 +0200 <siraben> it is annoying to do these problems when I wish I could "just" mutate a structure
2021-06-21 10:50:24 +0200 <EvanR> no list is definitely fast
2021-06-21 10:50:28 +0200 <siraben> that I know I'm handling in a linear way, so in-place should be fine
2021-06-21 10:50:29 +0200 <maerwald[m]> If you're lucky that fusion triggers you mean
2021-06-21 10:50:37 +0200 <siraben> maerwald: yeah
2021-06-21 10:50:44 +0200 <siraben> IntSet and IntMap are really fast, IME
2021-06-21 10:50:50 +0200dka_(~code-is-a@ns3059207.ip-193-70-33.eu)
2021-06-21 10:50:54 +0200 <kuribas> siraben: leverage lazyness?
2021-06-21 10:51:02 +0200 <siraben> probably I've use IntMap much more than laziness
2021-06-21 10:51:07 +0200 <kuribas> siraben: I find most of these problems have nice elegant lazy solution
2021-06-21 10:51:12 +0200 <siraben> s/use/used/ s/laziness/arrays/
2021-06-21 10:51:15 +0200 <int-e> And of course there's all those cases where you use lists intermittently and rely on fusion for them to mostly disappear.
2021-06-21 10:51:34 +0200 <siraben> kuribas: lol https://github.com/siraben/haoc-2020/blob/master/day3.hs
2021-06-21 10:51:38 +0200 <merijn> siraben: Well, it depends on how you define "bad" :)
2021-06-21 10:51:47 +0200 <siraben> `part2 i = let (a, b, c, d, e, _) = foldl' f (0, 0, 0, 0, 0, 1) (tail i) in a * b * c * d * e` "oops"
2021-06-21 10:51:52 +0200 <merijn> siraben: Like I said, not everything actually needs "high performance"
2021-06-21 10:52:11 +0200 <merijn> And there's no point investing effort into optimising something that doesn't need optimisation
2021-06-21 10:52:21 +0200 <siraben> merijn: yeah of course, I'm also interested in how to get the fastest possible especially for toy problems
2021-06-21 10:52:29 +0200 <siraben> in practice it may not matter when I/O, network is far slower
2021-06-21 10:52:31 +0200dka_(~code-is-a@ns3059207.ip-193-70-33.eu) (Remote host closed the connection)
2021-06-21 10:52:48 +0200 <siraben> reducing branches actually does wonders
2021-06-21 10:52:55 +0200dka(~code-is-a@ns3059207.ip-193-70-33.eu)
2021-06-21 10:52:59 +0200 <merijn> siraben: So of course lists are convenient when the performance of something isn't immediately crucial. Especially since GHC has quite some effort on optimising list transformations
2021-06-21 10:53:40 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:2a76:42b9:78db:d162) (Remote host closed the connection)
2021-06-21 10:53:54 +0200 <EvanR> any time casual performance concerns come up, I remind everyone the internet is based on PHP and ruby on rails
2021-06-21 10:54:01 +0200jespada(~jespada@90.254.247.46)
2021-06-21 10:54:07 +0200 <kuribas> and Python!
2021-06-21 10:54:08 +0200 <siraben> merijn: ok, here's a good example, how can I avoid V.cons here?
2021-06-21 10:54:08 +0200 <siraben> https://github.com/siraben/morans/blob/bb1e65b26d83188ea81b6509e7d340d8af94ee48/morans.hs#L55
2021-06-21 10:54:25 +0200 <siraben> it needs to be performant since this is a neural net in haskell
2021-06-21 10:54:37 +0200 <siraben> I got the running time down from 45 s to around 22s
2021-06-21 10:54:44 +0200 <siraben> just by translating the code to vectors
2021-06-21 10:54:49 +0200 <int-e> siraben: kiss: https://paste.debian.net/1201880/
2021-06-21 10:54:50 +0200 <siraben> but V.cons is linear in the size of the vector >.<
2021-06-21 10:55:11 +0200 <merijn> siraben: You're just constructing a new result vector from some input, right?
2021-06-21 10:55:12 +0200 <Taneb> siraben: can you turn it into a scan rather than a fold?
2021-06-21 10:55:35 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-21 10:55:39 +0200 <EvanR> instead of consing, you could use an endo builder
2021-06-21 10:55:47 +0200 <Taneb> Ending with a vector of tuples which is easy to make into a tuple of vectors
2021-06-21 10:55:49 +0200 <siraben> hm, it would be awesome if hlint had support for laws that require some precondition to be true, such as the foldl/scanl law
2021-06-21 10:56:00 +0200 <kuribas> merijn: why would a chunked list be slower than one bug chunk (for large enough chunks).
2021-06-21 10:56:01 +0200 <merijn> siraben: There are in-place construction functions for vector
2021-06-21 10:56:14 +0200 <EvanR> instead of copying into new vectors each time, you build a thing you can iterate through later
2021-06-21 10:56:48 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:315a:5813:efa5:bde0)
2021-06-21 10:56:49 +0200 <merijn> siraben: I'd say you want something like generate instead: https://hackage.haskell.org/package/vector-0.12.3.0/docs/Data-Vector-Fusion-Stream-Monadic.html#v:…
2021-06-21 10:57:32 +0200 <siraben> int-e: yes, that's similar to my initial solution, I managed to get down from 39 μs to 26 μs by using bytestring and some strictness
2021-06-21 10:57:46 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 10:58:06 +0200jneira(~jneira@212.8.115.226)
2021-06-21 10:58:24 +0200 <merijn> siraben: So instead of folding, running basically an indexed loop on the original vector, something like: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/StepAggregate.hs#L112-L116
2021-06-21 10:58:42 +0200 <siraben> ah, interesting, I could try that
2021-06-21 10:58:46 +0200 <siraben> ooh, VS.unsafeIndex
2021-06-21 10:59:03 +0200 <merijn> siraben: unsafeIndex skips bounds checking
2021-06-21 10:59:15 +0200 <merijn> So great way to segfault your code if you don't know what you're doing ;)
2021-06-21 10:59:30 +0200 <siraben> yeah, how much difference does it make?
2021-06-21 10:59:39 +0200 <merijn> Very little
2021-06-21 10:59:40 +0200 <EvanR> all you need is a proof you're in bounds
2021-06-21 10:59:49 +0200 <siraben> this would be the type of stuff that refinement types (or full blown dep types) could help with
2021-06-21 10:59:54 +0200 <merijn> but I'm using this in a tight loop where I do millions (maybe billions) of lookups :p
2021-06-21 10:59:55 +0200 <siraben> EvanR: right
2021-06-21 11:00:12 +0200 <merijn> So a billion times very little helps ;)
2021-06-21 11:00:14 +0200 <EvanR> a real proof can be difficult to actually get and maintain
2021-06-21 11:00:22 +0200 <siraben> I think the GOL type problems in AOC were more performance sensitive as well
2021-06-21 11:00:29 +0200 <int-e> siraben: I tend not to optimize anything that runs in under a second when using runghc :)
2021-06-21 11:00:44 +0200 <merijn> siraben: Anyway, the key point here is that generate basically allocates an empty vector and fills in every element with "Int -> a" (where the Int is the index)
2021-06-21 11:01:06 +0200 <siraben> int-e: fair enough, as kuribas said, algorithmic efficiency can matter more even in CP problems
2021-06-21 11:01:08 +0200 <merijn> siraben: So you can construct your result array "in place" if you can reformulate your fold into a function from index to a value
2021-06-21 11:01:10 +0200 <siraben> merijn: yeah
2021-06-21 11:01:21 +0200 <merijn> That will save all the cons copying
2021-06-21 11:01:26 +0200 <siraben> the recursion pattern is a bit weird here
2021-06-21 11:01:32 +0200 <siraben> in my function `revaz`
2021-06-21 11:01:53 +0200 <siraben> because it calls the function zLayer defined as `zLayer as (bs, wvs) = V.zipWith (+) bs $ V.sum . V.zipWith (*) as <$> wvs`
2021-06-21 11:02:01 +0200 <siraben> so in that sense, it's already quadratic
2021-06-21 11:02:58 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-21 11:03:14 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-06-21 11:03:38 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-21 11:05:05 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 11:06:53 +0200ocramz(~user@c80-216-51-213.bredband.tele2.se)
2021-06-21 11:07:01 +0200 <ocramz> hullo!
2021-06-21 11:07:31 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-06-21 11:07:47 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 11:08:56 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-06-21 11:08:59 +0200 <ocramz> ghc-lib versus ghc-as-a-library : can I write a GHC plugin by importing only ghc-lib ? or, yes it does typecheck and the interface is the same as ghc library, but would it work when used by code that compiles against the ghc library ?
2021-06-21 11:09:45 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection)
2021-06-21 11:09:56 +0200azeem(~azeem@dynamic-adsl-94-34-49-60.clienti.tiscali.it) (Ping timeout: 258 seconds)
2021-06-21 11:09:59 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9) (Ping timeout: 244 seconds)
2021-06-21 11:10:10 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-06-21 11:10:43 +0200azeem(~azeem@176.200.214.195)
2021-06-21 11:11:10 +0200 <kuribas> merijn: I also remember some article where they implemented search using a hybrid tree and linear search on arrays.
2021-06-21 11:11:37 +0200 <kuribas> merijn: that was on CPU though. GPU's are another beast.
2021-06-21 11:12:21 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds)
2021-06-21 11:12:32 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-21 11:14:04 +0200hexo(~hexo@user/hexo) (Quit: Leaving)
2021-06-21 11:14:07 +0200xsperry(~as@user/xsperry) (Ping timeout: 244 seconds)
2021-06-21 11:15:13 +0200maroloccio1(~marolocci@189.15.9.54) (Ping timeout: 246 seconds)
2021-06-21 11:16:22 +0200 <kuribas> RE poor error handling in haskell, my PR to cassava for providing a decent error message (which should have been there), has been just sitting there for several weeks now.
2021-06-21 11:17:14 +0200 <kuribas> This kind of sloppiness in core libraries just goes against all ideas of haskell being more rigorous.
2021-06-21 11:17:56 +0200 <kuribas> It's like just an obsession for type level programming, GADTs etc, but then ignoring low hanging fruit.
2021-06-21 11:18:10 +0200 <ocramz> cassava has been in a sorry state for a while now. I guess CSV is seen as low priority by the intelligentsia
2021-06-21 11:18:43 +0200 <ocramz> (whereas the rest of the world lives inside excel tables and csv dumps)
2021-06-21 11:18:49 +0200 <kuribas> ocramz: :-( We use CSV for everthing...
2021-06-21 11:18:57 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 11:18:59 +0200 <ocramz> I know, anybody doing data work uses csv
2021-06-21 11:20:25 +0200 <merijn> If only there was some way to just take the existing work and improve it directly yourself... ;)
2021-06-21 11:20:42 +0200 <ocramz> btw kuribas, I've had a good experience with csv-conduit ( https://hackage.haskell.org/package/csv-conduit ) for parsing , and serializing by hand with bytestring/text builders
2021-06-21 11:20:53 +0200 <merijn> Then you could just pay programmers to make it to your liking, imagine that!
2021-06-21 11:21:42 +0200 <ocramz> merijn, it's not about open source entitlement. we all do our share of OSS. but if a maintainer is not responsive and doesn't allow external help, then it's a problem
2021-06-21 11:21:56 +0200 <kuribas> this
2021-06-21 11:23:05 +0200 <kuribas> I am not even blaming the maintainer, he may be very busy or something, just saying it's a problem that reflects badly on the language.
2021-06-21 11:23:24 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 11:23:40 +0200jneira(~jneira@212.8.115.226)
2021-06-21 11:23:46 +0200 <merijn> Right, but if the maintainer is too busy you ask if you can be co-maintainer and if not you fork?
2021-06-21 11:24:43 +0200chronon(~chronon@user/chronon)
2021-06-21 11:25:23 +0200 <ocramz> that would work if Hackage had a hierarchical name space, which is part of the social contract of our particular corner of open source
2021-06-21 11:25:36 +0200 <kuribas> merijn: forking is possible, but not very convenient, and certainly doesn't reflect well on haskell.
2021-06-21 11:25:56 +0200 <ocramz> e.g. kuribas.cassava is actively maintained, use that
2021-06-21 11:25:59 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz)
2021-06-21 11:26:14 +0200 <merijn> Sure it's not convenient, but what else do you propose?
2021-06-21 11:27:09 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-06-21 11:27:09 +0200gnoo(~gnoo@user/gnoo) (Remote host closed the connection)
2021-06-21 11:27:09 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2021-06-21 11:27:09 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-06-21 11:27:09 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2021-06-21 11:27:09 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2021-06-21 11:27:09 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-06-21 11:27:09 +0200hendursa1(~weechat@user/hendursaga) (Remote host closed the connection)
2021-06-21 11:27:13 +0200 <kuribas> I can ask to be co-maintainer...
2021-06-21 11:28:27 +0200 <merijn> Like, these discussions are always about how lack of maintenance reflects on the library/community and how things "should" be professional, but in the end there's literally just 1 solution and that is "pay people enough to prioritise their open source work"
2021-06-21 11:29:02 +0200 <ocramz> OR allow co-maintainers, as kuribas proposed one line above
2021-06-21 11:29:21 +0200 <merijn> ocramz: I proposed that even earlier, but in effect that is still the same solution
2021-06-21 11:29:33 +0200 <merijn> since, presumably, you are getting paid by your job to do that maintenance
2021-06-21 11:29:57 +0200 <ocramz> many write OSS in their spare time
2021-06-21 11:30:07 +0200 <kuribas> merijn: reviewing PRs shouldn't be that much work...
2021-06-21 11:30:14 +0200__monty__(~toonn@user/toonn)
2021-06-21 11:30:19 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-06-21 11:30:25 +0200 <merijn> ocramz: If you do, then you should realise why people might not have the time to prioritise
2021-06-21 11:30:26 +0200 <Taneb> ocramz: if it's their spare time, they have no obligation on how to spend that time
2021-06-21 11:30:31 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2021-06-21 11:30:33 +0200 <merijn> kuribas: Who cares if it's much work or not
2021-06-21 11:30:35 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2021-06-21 11:30:45 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-21 11:31:00 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-21 11:31:05 +0200 <kuribas> we should care for core libraries.
2021-06-21 11:31:07 +0200 <ocramz> I feel we're talking past each other here
2021-06-21 11:31:33 +0200 <merijn> Some of my stuff still doesn't support GHC 9.0, because after 1.5 year of stuck at home in lockdown I can't find the energy to work on it in my spare time
2021-06-21 11:31:35 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 11:32:02 +0200 <kuribas> couldn't that be something for haskell consultancy companies? They get paid to sell haskell, so it is in their interest to have decent libraries.
2021-06-21 11:32:19 +0200 <ocramz> since the Hackage namespace is write-only, and flat, IMO once you upload a new package it shoudl become part of the commons, and it should be easy by design to let new maintainers in, both in the repo and as hackage uploaders
2021-06-21 11:32:35 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-21 11:32:44 +0200 <ocramz> without complex bargaining, or ego battles
2021-06-21 11:32:46 +0200 <merijn> ocramz: That seems like a good way to get people to not upload code at all
2021-06-21 11:32:49 +0200hendursa1(~weechat@user/hendursaga)
2021-06-21 11:32:55 +0200gnoo(~gnoo@user/gnoo)
2021-06-21 11:33:20 +0200 <merijn> ocramz: I mean, you don't have to bargain, it's open source, you can simply fork it with a different name and use/advertise that?
2021-06-21 11:33:25 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-21 11:33:51 +0200 <kuribas> ocramz: wasn't their some drama a while ago about exactly that? Someone doing changes against the authors wishes.
2021-06-21 11:34:01 +0200 <ocramz> because by forking we have two similar things, one of which is left to bitrot
2021-06-21 11:34:19 +0200 <ocramz> kuribas : yeah
2021-06-21 11:34:22 +0200 <kuribas> I thought there was already a process for abandoned projects.
2021-06-21 11:34:22 +0200 <Taneb> kristjansson: cassava/Cassava?
2021-06-21 11:34:48 +0200 <Taneb> kuribas* sorry
2021-06-21 11:34:48 +0200 <ocramz> yeah
2021-06-21 11:35:10 +0200 <kuribas> but I am not even talking about obscore/abandoned projects, I am talking about libraries considered core, like Cassava, Aeson, ...
2021-06-21 11:35:21 +0200 <ocramz> this duplication is technically feasible but frankly sucks, because it shows that it was not possible to reach a civil agreement
2021-06-21 11:35:21 +0200 <merijn> I mean, I wouldn't consider either of those core
2021-06-21 11:35:36 +0200 <kuribas> merijn: what do you use for JSON then?
2021-06-21 11:35:44 +0200 <merijn> kuribas: I don't use JSON
2021-06-21 11:35:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Ping timeout: 244 seconds)
2021-06-21 11:35:53 +0200 <kuribas> merijn: good for you :)
2021-06-21 11:35:59 +0200 <ocramz> kuribas: aeson, same thing
2021-06-21 11:36:15 +0200 <merijn> Here's the key problem in "these core libraries", I doubt you'll find much agreement community wide on what is "core"
2021-06-21 11:36:43 +0200 <merijn> Anything GHC depends on, sure. containers and vector also. I think people will already start disagreeing on unordered-containers
2021-06-21 11:36:56 +0200 <kuribas> merijn: Cassava is the standard for CSV, Aeson for JSON, or am I wrong?
2021-06-21 11:37:07 +0200 <merijn> kuribas: Define "standard"
2021-06-21 11:37:10 +0200 <ocramz> merijn : a simple graph centrality argument willl show why cassava can be considered as "core" : https://packdeps.haskellers.com/reverse/cassava
2021-06-21 11:37:18 +0200 <kuribas> merijn: as in, what everyone uses?
2021-06-21 11:37:28 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net) (Quit: Client closed)
2021-06-21 11:37:38 +0200 <Taneb> kuribas: that's community-accepted rather than standard. <blink> was supported by all commonly used browsers many years ago
2021-06-21 11:37:53 +0200 <merijn> ocramz: I mean, that's 96 packages, most of which I never even heard off...
2021-06-21 11:38:02 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-21 11:38:14 +0200 <Taneb> And, like, there are alternatives for both cassava and aeson, that do get used
2021-06-21 11:38:15 +0200 <ocramz> "I haven't heard of a thing" is not a good argument why a thing is not important
2021-06-21 11:38:37 +0200 <merijn> ocramz: I mean, vector has 1900 reverse dependencies
2021-06-21 11:38:54 +0200 <merijn> 5300 for containers
2021-06-21 11:39:06 +0200 <merijn> Those are orders of magnitude "more core" than cassava
2021-06-21 11:39:16 +0200 <ocramz> all of these should be core, so what
2021-06-21 11:39:18 +0200 <Taneb> ocramz: so, why should someone lose control of something they've created because it gets popular? That's what I understand of what you're proposing
2021-06-21 11:39:39 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net)
2021-06-21 11:39:40 +0200 <merijn> Taneb: Well, he proposed they should lose control because they made it public on Hackage
2021-06-21 11:39:47 +0200 <merijn> Taneb: That's slightly different
2021-06-21 11:39:53 +0200 <merijn> But I still don't think it's a great idea
2021-06-21 11:40:30 +0200 <ocramz> the (current?) architecture of cabal/hackage forces this particular state of things
2021-06-21 11:40:38 +0200 <merijn> ocramz: I'm not saying it's not important. I'm saying it's not important enough to take away from owners
2021-06-21 11:40:54 +0200 <merijn> How so?
2021-06-21 11:40:58 +0200 <ocramz> whereas forking is ..?
2021-06-21 11:41:01 +0200 <kuribas> merijn: cassava :: 565 DLs, csv :: 181 Dls (last upload 2010) csv-conduit :: 119 DLs
2021-06-21 11:41:19 +0200 <kuribas> https://hackage.haskell.org/packages/search?terms=csv
2021-06-21 11:41:31 +0200 <merijn> ocramz: Making a new thing with a different name and distinct new person in charge
2021-06-21 11:41:58 +0200 <Taneb> kuribas: groups, 823 downloads in the past 30 days. I don't think anyone's suggested that groups should be standard
2021-06-21 11:42:07 +0200 <merijn> Taneb: Lots of bot downloads
2021-06-21 11:42:15 +0200 <merijn> kuribas: Those are number per version, btw
2021-06-21 11:42:48 +0200dhil(~dhil@195.213.192.47)
2021-06-21 11:42:58 +0200maroloccio(~marolocci@189.15.9.54)
2021-06-21 11:43:24 +0200 <Taneb> And I think a lot of people get their packages from stackage or nixpkgs or similar not-Hackage sources these days and that won't count for those download stats
2021-06-21 11:43:35 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 11:44:11 +0200 <kuribas> Just showing that Cassava is by far the most popular CSV parser, and Aeson for JSON...
2021-06-21 11:44:19 +0200 <kuribas> prove me wrong...
2021-06-21 11:44:24 +0200 <merijn> Right, but I wasn't arguing popularity
2021-06-21 11:44:33 +0200 <Taneb> I don't think anyone was arguing that they weren't
2021-06-21 11:45:21 +0200 <merijn> I wasn't arguing "those aren't core, because they're not the most popular" I was arguing "they aren't core, because their usage isn't nearly universal enough"
2021-06-21 11:45:45 +0200 <ocramz> idk feels like we've hit ideological brick walls here. You upload a BSD package to the commons, plant a flag, and then impede its evolution
2021-06-21 11:45:59 +0200 <tomsmeding> kuribas: just as a data point on people disagreeing about the definition of "core": anything that cannot be compiled in 2 GB of RAM is something that I personally would never want as "core" :p
2021-06-21 11:45:59 +0200 <ocramz> this, to me, is backwards
2021-06-21 11:46:00 +0200Cajun(~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed)
2021-06-21 11:46:22 +0200 <tomsmeding> (hint, aeson)
2021-06-21 11:46:39 +0200 <tomsmeding> vector barely passes iirc
2021-06-21 11:47:05 +0200 <ocramz> tomsmeding: that's a pretty arbitrary bar but ok
2021-06-21 11:47:11 +0200 <merijn> ocramz: Well, Hackage is open source and welcomes more contributions if you have better ideas
2021-06-21 11:47:33 +0200 <merijn> ocramz: Who gets to decide when/who gets to steal a package, though?
2021-06-21 11:47:39 +0200 <ocramz> "steal"
2021-06-21 11:47:41 +0200 <Taneb> ocramz: the flag you plant is just a name
2021-06-21 11:47:55 +0200 <kuribas> I am fine with using something else that Aeson or Cassava, but there isn't much, is there?
2021-06-21 11:48:08 +0200 <tomsmeding> ocramz: true :)
2021-06-21 11:48:11 +0200 <ocramz> you literally placed in the middle of the town square, with your name written on a post it
2021-06-21 11:48:30 +0200 <Taneb> It's a pretty large town square
2021-06-21 11:48:36 +0200 <merijn> ocramz: I have package foo, person X wants to basically completely change the direction of my package
2021-06-21 11:48:44 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 11:48:48 +0200 <merijn> ocramz: At which point is this progress vs ruining?
2021-06-21 11:48:51 +0200 <merijn> Who is the arbiter?
2021-06-21 11:49:15 +0200jneira(~jneira@212.8.115.226)
2021-06-21 11:49:19 +0200 <ocramz> case by case basis. If you let it bitrot for two years and it doesn't build with the latest compilers then it's not ruining it's evolving
2021-06-21 11:49:29 +0200 <ocramz> oh, Hackage-wide CI would be nice too
2021-06-21 11:49:35 +0200 <ocramz> getting there though
2021-06-21 11:49:36 +0200 <kuribas> maybe we should have a "core" CSV and JSON parser, which is handled by a committee, like the standard libraries?
2021-06-21 11:49:41 +0200allbery_b(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-06-21 11:49:48 +0200 <merijn> ocramz: Who decides the case-by-case basis?
2021-06-21 11:50:17 +0200 <merijn> kuribas: That's a great way to slow down development, not speed up
2021-06-21 11:50:18 +0200 <Taneb> kuribas: that doesn't feel like a solution to the underlying problem
2021-06-21 11:50:28 +0200 <merijn> kuribas: Now that CLC has to agree to any API changes...
2021-06-21 11:51:06 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net) (Quit: Client closed)
2021-06-21 11:51:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-06-21 11:51:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 11:52:10 +0200 <ocramz> merijn: idk the next candidate maintainer?
2021-06-21 11:52:18 +0200 <kuribas> python comes with csv and json out of the box.
2021-06-21 11:52:26 +0200 <ocramz> the alternatives here are 1. bitrot 2. doing something about it
2021-06-21 11:52:53 +0200 <ocramz> anyway kuribas : use csv-conduit and text , and be merry
2021-06-21 11:52:57 +0200 <merijn> What if people do not agree whether a library is bitrotting?
2021-06-21 11:52:58 +0200 <Taneb> kuribas: I'm not convinced that Python is the best language for Haskell to imitate
2021-06-21 11:53:29 +0200 <ocramz> merijn : I don't understand what's your angle besides fabricating objections
2021-06-21 11:53:38 +0200 <merijn> kuribas: And as soon as something moves into python's core libraries it stops changing and >60% of the core libraries are now deprecated/recommended against by now
2021-06-21 11:53:53 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-21 11:54:15 +0200 <merijn> ocramz: My angle is: People are gonna people and people *are* gonna try to take over stufff and you can't just handwave this stuff without having a solid and well-defined process for how to handle edge cases
2021-06-21 11:54:29 +0200 <merijn> ocramz: Your suggestion currently is just "we should let people take over packages"
2021-06-21 11:54:42 +0200 <ocramz> kuribas : come chat on the datahaskell gitter if you want to do something for Hs data stuff http://gitter.im/dataHaskell/Lobby
2021-06-21 11:54:59 +0200 <merijn> ocramz: My counter-argument is: there is absolutely no sensible/feasible process for doing that and I don't think one can exist
2021-06-21 11:55:12 +0200 <ocramz> I think one should exist instead
2021-06-21 11:55:13 +0200 <merijn> ocramz: You are free to convince me by proposing a process that seems fair and feasible
2021-06-21 11:55:22 +0200 <Taneb> For what it's worth, there _is_ a process for taking over a package on Hackage: https://wiki.haskell.org/Taking_over_a_package
2021-06-21 11:55:54 +0200 <ocramz> aka "howling into the void"
2021-06-21 11:55:57 +0200 <merijn> Taneb: Right, but ocramz wants a process that lets you take over packages even if maintainers are not absent, just no merging what people want
2021-06-21 11:56:09 +0200 <merijn> That's a massive can of worms
2021-06-21 11:56:31 +0200 <merijn> And you better have a solid and fair process. And I don't think one (can) exist
2021-06-21 11:57:05 +0200 <merijn> So the only way to convince me that "taking over packages" is a good idea is by proposing a process that might work.
2021-06-21 11:57:29 +0200 <merijn> Until such a process is defined I am opposed to the whole idea
2021-06-21 11:57:47 +0200brandonh(~brandonh@151.68.85.160)
2021-06-21 11:58:37 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 11:58:57 +0200 <ocramz> I think instead it's about taking this very tenuous notion of OSS "ownership", in the specific incarnation on the Hackage namespace, to its logical conclusion
2021-06-21 12:00:08 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 12:00:23 +0200 <merijn> ocramz: Ownership and personal pride are the only thing keeping non-commercial OSS alive
2021-06-21 12:02:11 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-21 12:02:17 +0200 <ocramz> what about building on the shoulders of giants? using, hopefully, working dependencies? not reinventing the wheel every 6 months? those are also things we all take for granted
2021-06-21 12:02:41 +0200 <ocramz> yet, take work besides pride and ownership in your little pretty garden
2021-06-21 12:03:07 +0200 <merijn> ocramz: Building on the shoulder of giants is great. If those giants are starving and burned out
2021-06-21 12:03:14 +0200ukari(~ukari@user/ukari)
2021-06-21 12:04:22 +0200chele(~chele@user/chele) (Ping timeout: 258 seconds)
2021-06-21 12:05:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 12:08:31 +0200cheater(~Username@user/cheater)
2021-06-21 12:09:36 +0200chele(~chele@user/chele)
2021-06-21 12:10:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Ping timeout: 250 seconds)
2021-06-21 12:12:09 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-21 12:12:45 +0200ukari(~ukari@user/ukari)
2021-06-21 12:13:42 +0200 <kuribas> merijn: for me OSS is more about solving something that hasn't been solved yet (satisfactory), and making it public so it can help other people.
2021-06-21 12:14:15 +0200 <__monty__> That's the fun part of FOSS, not the sustainable part though.
2021-06-21 12:14:28 +0200 <merijn> kuribas: And you don't take any pride in your solutions?
2021-06-21 12:14:31 +0200 <__monty__> All your newfangled gadgets need to be maintained to remain useful.
2021-06-21 12:14:39 +0200 <kuribas> merijn: I do :)
2021-06-21 12:14:51 +0200 <merijn> kuribas: Right, so that's part of the reason people like sharing their stuff
2021-06-21 12:14:56 +0200 <kuribas> __monty__: indeed. Maintaining is boring
2021-06-21 12:15:05 +0200 <merijn> kuribas: And if you take that away from them, why even share your stuff?
2021-06-21 12:15:37 +0200 <kuribas> merijn: how is taking over a project taking away the pride?
2021-06-21 12:15:49 +0200 <Taneb> kuribas: ...how isn't it?
2021-06-21 12:16:02 +0200 <merijn> kuribas: If you're still working on it and someone takes it over, that wouldn't affect you?
2021-06-21 12:16:15 +0200 <merijn> (against your will)
2021-06-21 12:16:20 +0200 <Taneb> I'd certainly be upset if someone said that I was doing something I'd created wrong and they were going to take over and do it their way
2021-06-21 12:16:30 +0200 <merijn> We already have a policy for taking over abandonned packages
2021-06-21 12:16:32 +0200 <kuribas> merijn: If I am working on it, yes. If I don't have time for it, no.
2021-06-21 12:17:08 +0200 <merijn> kuribas: And how long before it qualifies as "I don't have time"?
2021-06-21 12:17:23 +0200 <merijn> kuribas: Like, you don't have time for 6 months before you plan to continue on a project
2021-06-21 12:17:26 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-21 12:17:31 +0200 <merijn> Should someone be able to take it away?
2021-06-21 12:18:19 +0200 <kuribas> merijn: in that case, they could fork the project, work on it, and after 6 months I'll incorporate changes I like.
2021-06-21 12:18:22 +0200ocramz(~user@c80-216-51-213.bredband.tele2.se) (Ping timeout: 250 seconds)
2021-06-21 12:18:38 +0200 <kuribas> But if the project is used by many people, maybe even better if someone else just takes it over.
2021-06-21 12:18:47 +0200 <kuribas> for those months
2021-06-21 12:18:54 +0200 <merijn> kuribas: And who decides that?
2021-06-21 12:20:13 +0200 <merijn> If many people/companies rely on a project, well, that sounds like there's a lot of people who could be paying to prioritise that project!
2021-06-21 12:21:32 +0200 <merijn> "Oh, but it's open source, we shouldn't have to pay! We just want to casually burn out maintainers and get the most of our tragedy of the commons!"
2021-06-21 12:21:48 +0200 <kuribas> In my projects where I gave other people ownership or co-maintainership, I have not yet been disappointed.
2021-06-21 12:22:02 +0200 <Taneb> But you chose to give other people ownership or co-maintainership
2021-06-21 12:22:06 +0200 <Taneb> And you chose who
2021-06-21 12:22:14 +0200 <merijn> kuribas: That's fine, but then it's *you* in control and deciding if/who gets maintainership
2021-06-21 12:22:24 +0200 <merijn> kuribas: That's is fundamentally different from having it imposed on you
2021-06-21 12:22:49 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-06-21 12:22:50 +0200 <kuribas> merijn: yeah, having it imposed isn't nice.
2021-06-21 12:23:21 +0200 <merijn> The older I get, the more my opinion on 100% of open source maintainership converges on "fuck you, pay me"
2021-06-21 12:24:01 +0200 <merijn> Or, I guess "free software" but "free as in puppies"
2021-06-21 12:24:06 +0200 <kuribas> merijn: that's fair. If I am in a company using haskell, they would have a budget for this stuff.
2021-06-21 12:24:14 +0200 <merijn> i.e. "You'll have to pay to get it fixed"
2021-06-21 12:24:33 +0200 <merijn> I don't know who I got that quote from, but I love it more and more :)
2021-06-21 12:24:50 +0200tauli[m](~tauliacme@2001:470:69fc:105::755)
2021-06-21 12:25:09 +0200 <kuribas> merijn: if I get passed the "haskell is an academic language which is not for practical use, as it doesn't even have libraries for common usecases."
2021-06-21 12:26:22 +0200 <kuribas> merijn: the only thing a company cares about is that the net benefit is positive.
2021-06-21 12:27:02 +0200 <merijn> Sure
2021-06-21 12:27:15 +0200 <merijn> But also, I don't care what companies think about stuff I do
2021-06-21 12:27:31 +0200ocramz(~user@c80-216-51-213.bredband.tele2.se)
2021-06-21 12:27:49 +0200 <merijn> And neither should anyone else who isn't actively being paid to care
2021-06-21 12:27:54 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net)
2021-06-21 12:28:40 +0200 <merijn> anyway, lunch
2021-06-21 12:29:49 +0200ham(~ham4@user/ham) (Read error: Connection reset by peer)
2021-06-21 12:32:58 +0200sa(sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 244 seconds)
2021-06-21 12:33:06 +0200ham(~ham4@user/ham)
2021-06-21 12:33:07 +0200hughjfchen(~hughjfche@vmi556545.contaboserver.net) (Client Quit)
2021-06-21 12:34:06 +0200sa(sid1055@id-1055.tinside.irccloud.com)
2021-06-21 12:34:15 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-06-21 12:34:20 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-21 12:34:24 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 12:37:25 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 265 seconds)
2021-06-21 12:39:26 +0200Hafydd(~Hafydd@user/hafydd) (Quit: WeeChat 3.0)
2021-06-21 12:39:27 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 12:40:31 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 12:40:34 +0200 <ocramz> kuribas: completely agree with your pov. besides, having a mechanism for adding active maintainers (who are either interested in evolving a library or have the means to ask others do so) is precisely a way for everybody to _avoid_ burnout
2021-06-21 12:41:03 +0200jakesyl(sid56879@id-56879.stonehaven.irccloud.com) (Ping timeout: 272 seconds)
2021-06-21 12:41:18 +0200 <kuribas> to be clear, I am not advocating forcing projects away from the creators :)
2021-06-21 12:41:38 +0200 <ocramz> I said adding, in fact
2021-06-21 12:41:59 +0200 <ocramz> or letting new patches be incorporated, or whatever. Moving the project forward
2021-06-21 12:42:50 +0200 <ocramz> the "package takeover" process, involving multiple rounds of email, copy-pasted conversations in the mailing lists, months wasted, is one of the most comically inefficient ways of doing this
2021-06-21 12:43:30 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 250 seconds)
2021-06-21 12:43:50 +0200jakesyl(sid56879@id-56879.stonehaven.irccloud.com)
2021-06-21 12:44:23 +0200 <kuribas> ocramz: I would only do this for projects with widespread use.
2021-06-21 12:44:33 +0200 <ocramz> sure
2021-06-21 12:44:58 +0200 <ocramz> a voting process! like, if more than N people ask for this, click
2021-06-21 12:45:22 +0200 <ocramz> surely we don't need sMaRt CoNtRaCtS to pull this shit off
2021-06-21 12:45:57 +0200ubert(~Thunderbi@p200300ecdf259dd4ad9b8920565e1743.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-06-21 12:49:19 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 12:52:05 +0200zeenk(~zeenk@82.76.113.130) (Quit: Konversation terminated!)
2021-06-21 12:53:20 +0200 <Taneb> What's the justification for the "is strictly more specific than" bit of resolving overlapping instances?
2021-06-21 12:54:38 +0200 <__monty__> Because that gives a unique match? Whereas the = in >= wouldn't?
2021-06-21 12:55:10 +0200 <hpc> ^
2021-06-21 12:55:18 +0200teaSlurper(~chris@81.96.113.213)
2021-06-21 12:55:23 +0200 <hpc> when you aren't able to resolve the match in some unambiguous way, you get incoherent instances
2021-06-21 12:55:41 +0200 <hpc> although not quite "unique", but "unambiguous"
2021-06-21 12:56:12 +0200 <hpc> the specificity requirement gives ghc a way to consistently pick the same instance in similar situationns
2021-06-21 12:59:33 +0200 <Taneb> Why is it relevant when all-but-one of the candidate instances is marked as overlappable?
2021-06-21 13:00:43 +0200mpt(~tom@2a02:908:1862:49e0::3)
2021-06-21 13:04:43 +0200ocramz(~user@c80-216-51-213.bredband.tele2.se) (ERC (IRC client for Emacs 27.2))
2021-06-21 13:05:57 +0200jneira(~jneira@212.8.115.226)
2021-06-21 13:06:03 +0200brandonh_(~brandonh@151.68.85.160)
2021-06-21 13:06:58 +0200brandonh(~brandonh@151.68.85.160) (Ping timeout: 252 seconds)
2021-06-21 13:07:11 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 13:07:21 +0200zot(sid449795@id-449795.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-21 13:07:33 +0200brandonh_(~brandonh@151.68.85.160) (Client Quit)
2021-06-21 13:07:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-21 13:08:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 13:09:56 +0200azeem(~azeem@176.200.214.195) (Ping timeout: 250 seconds)
2021-06-21 13:11:42 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Ping timeout: 264 seconds)
2021-06-21 13:13:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 13:13:45 +0200azeem(~azeem@176.201.29.233)
2021-06-21 13:14:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 13:14:34 +0200mpt(~tom@2a02:908:1862:49e0::3) (Ping timeout: 268 seconds)
2021-06-21 13:15:39 +0200polux4(~polux@51.15.169.172)
2021-06-21 13:16:31 +0200polux(~polux@51.15.169.172) (Ping timeout: 272 seconds)
2021-06-21 13:16:31 +0200polux4polux
2021-06-21 13:16:43 +0200samebchase(~samebchas@51.15.68.182) (Ping timeout: 272 seconds)
2021-06-21 13:16:49 +0200samebchase(~samebchas@51.15.68.182)
2021-06-21 13:16:50 +0200deshalb(~deshalb@user/deshalb)
2021-06-21 13:16:56 +0200MasseR(~MasseR@51.15.143.128) (Ping timeout: 268 seconds)
2021-06-21 13:17:02 +0200alp(~alp@user/alp) (Ping timeout: 268 seconds)
2021-06-21 13:17:09 +0200haveo(~haveo@sl35.iuwt.fr) (Ping timeout: 272 seconds)
2021-06-21 13:17:16 +0200haveo(~haveo@sl35.iuwt.fr)
2021-06-21 13:17:36 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds)
2021-06-21 13:17:55 +0200MasseR(~MasseR@51.15.143.128)
2021-06-21 13:18:10 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:315a:5813:efa5:bde0) (Ping timeout: 250 seconds)
2021-06-21 13:18:51 +0200stevenxl(~stevenlei@174.128.182.199)
2021-06-21 13:19:45 +0200Hafydd(~Hafydd@user/hafydd)
2021-06-21 13:20:11 +0200 <merijn> It's funny that people think "package take-over process is comically inefficient" is a bug as opposed to "intended by design"
2021-06-21 13:20:40 +0200 <merijn> It's almost as if it's something we want to discourage...
2021-06-21 13:21:23 +0200 <Las[m]> I have a Haskell program that segfaults somewhere, and I'm trying to get a stack trace for that. I'm compiling with -g and -O1, but inspecting the dump with gdb and running `bt` just gives me garbage. How can I debug this?
2021-06-21 13:21:55 +0200 <Las[m]> The Haskell program uses raw pointers all over the place unfortunately
2021-06-21 13:22:20 +0200 <merijn> RIP
2021-06-21 13:22:31 +0200srk(~sorki@user/srk) (Remote host closed the connection)
2021-06-21 13:22:49 +0200srk(~sorki@user/srk)
2021-06-21 13:22:52 +0200 <merijn> -g just gives you c symbols for the RTS
2021-06-21 13:22:57 +0200 <merijn> not the compiled Haskell
2021-06-21 13:23:16 +0200 <merijn> GHC has (experimentalish) support for DWARF, but I don't think -g enables that atm?
2021-06-21 13:23:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-06-21 13:25:39 +0200 <Las[m]> FWIW I get some mangled symbol name, can I somehow use that?
2021-06-21 13:25:57 +0200 <Las[m]> I used the -ddump thing to get some dumps but I can't find the symbol name there
2021-06-21 13:26:27 +0200 <merijn> Las[m]: https://www.haskell.org/ghc/blog/20200403-dwarf-1.html
2021-06-21 13:26:30 +0200 <Las[m]> > Emit debug information in object code. Currently only DWARF debug information is supported on x86-64 and i386. Currently debug levels 0 through 3 are accepted, with 0 disabling debug information production and higher numbers producing richer output. If ⟨n⟩ is omitted, level 2 is assumed.
2021-06-21 13:26:32 +0200 <lambdabot> <hint>:1:24: error: parse error on input ‘in’
2021-06-21 13:26:41 +0200 <Las[m]> it's not supported on my platform...
2021-06-21 13:26:45 +0200 <merijn> ah
2021-06-21 13:26:47 +0200 <Las[m]> (aarch64-linux)
2021-06-21 13:27:05 +0200 <merijn> Then you might be, as we experts say, "fucked" >.>
2021-06-21 13:27:12 +0200 <Las[m]> can I use the mangled symbol name then somehow to at least find out where it happened?
2021-06-21 13:27:38 +0200 <merijn> No clue, tbh
2021-06-21 13:28:03 +0200 <merijn> tbh, at this point binary searching your code by throwing Debug.Trace prints everywhere might be the fastest/most accurate to figure out what fails and where
2021-06-21 13:28:10 +0200 <tomsmeding> what _is_ the mangled symbol name?
2021-06-21 13:28:24 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-21 13:28:52 +0200 <Las[m]> I need to generate the coredump again for that since it was purged after a reboot
2021-06-21 13:29:34 +0200 <tomsmeding> just curious, no need to expend effort :)
2021-06-21 13:30:37 +0200is7s(~is7s@2a01:4b00:895f:3d00:ddd:ae00:86d4:d79c) (Quit: Client closed)
2021-06-21 13:30:41 +0200maroloccio(~marolocci@189.15.9.54) (Quit: Client closed)
2021-06-21 13:30:46 +0200alp(~alp@163.172.83.213)
2021-06-21 13:31:01 +0200 <Las[m]> it says `c2Xrz_info$def`
2021-06-21 13:31:32 +0200 <tomsmeding> right, I have no idea :p
2021-06-21 13:31:37 +0200 <merijn> Sounds like an info pointer
2021-06-21 13:31:59 +0200 <Las[m]> what does that mean?
2021-06-21 13:32:16 +0200 <merijn> Las[m]: info pointers are internal meta information for GHC about datatypes
2021-06-21 13:32:25 +0200 <Las[m]> ah
2021-06-21 13:32:27 +0200 <merijn> and closures
2021-06-21 13:32:49 +0200 <merijn> Like "is this thunk already evaluated?" "how big is the result?" etc.
2021-06-21 13:33:02 +0200 <merijn> "where is the code for this?"
2021-06-21 13:33:38 +0200 <Las[m]> I think I'll have to go the Debug.Trace route like you said...
2021-06-21 13:33:44 +0200mpt(~tom@2a02:908:1862:49e0::3)
2021-06-21 13:36:30 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-21 13:38:47 +0200haveo(~haveo@sl35.iuwt.fr) (Quit: leaving)
2021-06-21 13:42:13 +0200haveo(~haveo@sl35.iuwt.fr)
2021-06-21 13:46:49 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-21 13:47:30 +0200azeem(~azeem@176.201.29.233) (Ping timeout: 265 seconds)
2021-06-21 13:53:33 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-21 13:53:46 +0200azeem(~azeem@176.201.29.233)
2021-06-21 13:56:26 +0200brandonh(~brandonh@151.68.5.207)
2021-06-21 14:01:44 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-21 14:01:56 +0200mpt(~tom@2a02:908:1862:49e0::3) (Ping timeout: 250 seconds)
2021-06-21 14:03:56 +0200 <maerwald[m]> Is there a tool to vendor 3rd party deps (not on hackage) into the library component so I can upload it on hackage?
2021-06-21 14:04:27 +0200 <merijn> maerwald[m]: Eh "copy and paste the source into your repo"? :p
2021-06-21 14:04:34 +0200 <merijn> maerwald[m]: iow, no
2021-06-21 14:04:51 +0200 <maerwald[m]> Yeah, that, adjust modules in cabsl file
2021-06-21 14:04:56 +0200 <maerwald[m]> And all the jazz
2021-06-21 14:05:16 +0200 <maerwald[m]> Seems this can be automated
2021-06-21 14:05:34 +0200 <merijn> Sure, just a Small Matter of Programming (TM) :)
2021-06-21 14:06:25 +0200 <maerwald[m]> OCD lock-in... 3 months later... "done... so back to what I was working on... what was I working on?"
2021-06-21 14:06:34 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-21 14:07:03 +0200 <merijn> maerwald[m]: That never happens to me >.>
2021-06-21 14:08:10 +0200 <merijn> maerwald[m]: Can't convince the 3rd party to make a Hackage release?
2021-06-21 14:08:22 +0200 <maerwald[m]> No
2021-06-21 14:09:14 +0200 <maerwald[m]> My tar patches haven't been merged since 1.5 years and the other library smells like NMU needed too
2021-06-21 14:09:22 +0200 <maerwald[m]> No time for that nonsense
2021-06-21 14:09:38 +0200 <merijn> Doesn't vanessa actively maintain a tar library?
2021-06-21 14:10:01 +0200 <merijn> At least, she's the only person I see shitposting about tar being terrible more than you :p
2021-06-21 14:10:12 +0200 <maerwald[m]> Yes, I'm using that
2021-06-21 14:10:21 +0200 <maerwald[m]> But it doesn't build everywhere
2021-06-21 14:10:27 +0200 <maerwald[m]> Thanks to c2hs
2021-06-21 14:10:46 +0200 <merijn> She's not including your patches?
2021-06-21 14:11:10 +0200 <maerwald[m]> No no
2021-06-21 14:11:16 +0200 <maerwald[m]> She's maintaining libarchive
2021-06-21 14:11:34 +0200 <maerwald[m]> That works well for platforms where c2hs is not broken
2021-06-21 14:12:18 +0200 <merijn> I'd argue that c2hs is broken everywhere xD
2021-06-21 14:12:32 +0200 <merijn> It just happens to work sometimes :p
2021-06-21 14:13:21 +0200 <maerwald[m]> For the others I need tar, which I had initially forked to bytestring based filepaths, but when supporting windows, this would require implementing AFPP first or some light wrapper. So I'm back to using a patched branch of upstream haskell tar, which is more or less unmaintained.
2021-06-21 14:14:50 +0200 <maerwald[m]> So I don't care to fix any on that, just want to be able to make a hackage release.
2021-06-21 14:16:05 +0200 <maerwald[m]> So need a tool that vendors all deps into the codebas and call it a day, haha
2021-06-21 14:16:11 +0200 <maerwald[m]> Don't care
2021-06-21 14:16:47 +0200 <maerwald[m]> Not much different from using PVP bounds
2021-06-21 14:18:03 +0200Morrow(~Morrow@37.142.145.18)
2021-06-21 14:18:57 +0200Ariakenom(~Ariakenom@2001:9b1:efb:fc00:8de:a8d1:83fb:c4a6)
2021-06-21 14:19:01 +0200 <merijn> maerwald[m]: So, how about just copying the source tree into a separate subdir, copying the library entry from the original cabal file and making it an internal library in your package?
2021-06-21 14:19:13 +0200 <merijn> Still *some* manual work, but not a lot
2021-06-21 14:19:23 +0200lbseale(~lbseale@user/ep1ctetus)
2021-06-21 14:19:33 +0200 <maerwald[m]> For tar yes... the other is a transitive dep
2021-06-21 14:19:42 +0200 <adamse> how about uploading your fork to hackage under a new name?
2021-06-21 14:20:00 +0200 <maerwald[m]> That's gonna be fun
2021-06-21 14:20:14 +0200 <merijn> I'm sure Hecate has tons of recommendations on yak herding and shaving implements :p
2021-06-21 14:20:39 +0200derelict_derelict
2021-06-21 14:20:39 +0200 <maerwald[m]> Hackage should have had fork support
2021-06-21 14:21:13 +0200 <merijn> maerwald[m]: Fortunately, hackage is open source! So now you have yet another yak! :D
2021-06-21 14:21:16 +0200 <maerwald[m]> You can have 'username/pkg' and still have an unqualified 'pkg'
2021-06-21 14:21:24 +0200pbrisbin(~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
2021-06-21 14:21:53 +0200dajoer(~david@softbank126065252160.bbtec.net)
2021-06-21 14:21:56 +0200 <maerwald[m]> Unqualified pkg's would go through trustees, potentially or so
2021-06-21 14:22:18 +0200Morrow(~Morrow@37.142.145.18) (Ping timeout: 250 seconds)
2021-06-21 14:22:27 +0200dajoer(~david@softbank126065252160.bbtec.net) (Changing host)
2021-06-21 14:22:27 +0200dajoer(~david@user/gvx)
2021-06-21 14:22:38 +0200 <merijn> maerwald[m]: There was an idea to make a "PVP opt-in" layer on top of "raw hackage", but not sure if that's going anywhere now that hvr is busy
2021-06-21 14:22:52 +0200 <maerwald[m]> Right, let me write a proposal first... but no, I value my mental health more
2021-06-21 14:23:05 +0200Morrow(~Morrow@31.154.96.164)
2021-06-21 14:24:21 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 14:28:48 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-06-21 14:29:07 +0200fendor_(~fendor@77.119.129.45.wireless.dyn.drei.com)
2021-06-21 14:32:13 +0200 <Hecate> maerwald[m] I will forcefully kidnap you and put you in a train for a thermal station if you take on another project :<
2021-06-21 14:32:30 +0200 <maerwald[m]> xD
2021-06-21 14:33:07 +0200 <maerwald[m]> I have 8 healthy fingers left
2021-06-21 14:33:29 +0200 <maerwald[m]> Should get me through at least 2 more projects
2021-06-21 14:34:02 +0200 <int-e> but fingers are not a renewable resource?
2021-06-21 14:34:05 +0200int-eis scared
2021-06-21 14:34:46 +0200 <maerwald[m]> Oh, I thought they regrow after a couple of years
2021-06-21 14:35:04 +0200 <int-e> they. don't.
2021-06-21 14:35:14 +0200 <maerwald[m]> Shouldn't have cut them off I guess... hrmm
2021-06-21 14:36:30 +0200 <hrnz> o.o
2021-06-21 14:36:33 +0200psydroidpsydroid[m]
2021-06-21 14:37:46 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Read error: Connection reset by peer)
2021-06-21 14:38:01 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 14:38:05 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-21 14:39:00 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-06-21 14:39:22 +0200cheater(~Username@user/cheater)
2021-06-21 14:41:14 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-21 14:42:27 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-21 14:43:26 +0200ukari(~ukari@user/ukari)
2021-06-21 14:44:41 +0200 <maerwald[m]> https://github.com/biegunka/terminal-size/pulls
2021-06-21 14:44:43 +0200 <maerwald[m]> Looks abandoned
2021-06-21 14:45:13 +0200 <merijn> lemme check what I'm using
2021-06-21 14:45:27 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-21 14:46:08 +0200 <maerwald[m]> This is a transitive dep though
2021-06-21 14:46:19 +0200 <merijn> Ah, I use terminal-size
2021-06-21 14:46:41 +0200 <maerwald[m]> It has a pretty humongous bug on darwin
2021-06-21 14:47:01 +0200 <merijn> It does?
2021-06-21 14:47:06 +0200 <merijn> I haven't noticed anything so far?
2021-06-21 14:47:24 +0200 <maerwald[m]> `ccall` is impossible to get right on darwin
2021-06-21 14:47:35 +0200 <maerwald[m]> https://github.com/biegunka/terminal-size/pull/16
2021-06-21 14:47:48 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-06-21 14:48:49 +0200 <maerwald[m]> It causes segfaults, occuring in random places, randomly changing
2021-06-21 14:49:16 +0200 <maerwald[m]> Who knows how many more of those hidden bugs darwin users face
2021-06-21 14:49:33 +0200 <merijn> Which macs is it segfaulting on?
2021-06-21 14:50:00 +0200 <merijn> I've been using it since 2016 and I haven't had any segfaults (that weren't my own fault) so far
2021-06-21 14:50:15 +0200 <maerwald[m]> The verdict was you have to compare the generated code to be sure, but even then it's a moving target. An OSX update might break your FFI code
2021-06-21 14:50:28 +0200 <maerwald[m]> Aarch64 darwin
2021-06-21 14:51:30 +0200cheater(~Username@user/cheater) (Ping timeout: 258 seconds)
2021-06-21 14:51:55 +0200cheater(~Username@user/cheater)
2021-06-21 14:52:28 +0200 <stevenxl> Does anyone here do any Haskell tutoring - paid, not free. Essentially, I have a Haskell program that is giving me a type error, and I want to walk through how we got to that type error. I'm thinking this won't take more than 1 hr, but maybe 2. Again, happy to pay for someone's time to understand what is going on at a deeper level.
2021-06-21 14:54:46 +0200 <merijn> stevenxl: The Haskell reddit and haskell-cafe mailing list will probably give you comments for free ;)
2021-06-21 14:55:59 +0200 <maerwald[m]> Also, should indicate whether this is type level errors or normal haskell
2021-06-21 14:56:06 +0200Morrow(~Morrow@31.154.96.164) (Ping timeout: 250 seconds)
2021-06-21 14:56:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds)
2021-06-21 14:56:58 +0200 <maerwald[m]> 1-2 hours sounds like this might be a 1500 lines type error after diving too deep into type families
2021-06-21 14:57:32 +0200brandonh(~brandonh@151.68.5.207) (Quit: brandonh)
2021-06-21 14:58:25 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-06-21 14:58:58 +0200jolly(~jolly@208.180.97.158)
2021-06-21 14:59:13 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-06-21 15:00:59 +0200alx741(~alx741@181.196.68.152)
2021-06-21 15:01:06 +0200maroloccio(~marolocci@189.15.9.54)
2021-06-21 15:01:22 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-21 15:02:10 +0200psydroid[m]psydroid
2021-06-21 15:02:25 +0200fendor_(~fendor@77.119.129.45.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-06-21 15:02:36 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 15:02:43 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-21 15:02:52 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 15:05:21 +0200warnz(~warnz@2600:1700:77c0:5610:799f:ce24:eb20:cceb)
2021-06-21 15:06:02 +0200finsternis(~X@23.226.237.192)
2021-06-21 15:08:03 +0200lbseale_(~lbseale@user/ep1ctetus)
2021-06-21 15:08:49 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 15:09:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 15:09:23 +0200nschoe(~quassel@178.251.84.79)
2021-06-21 15:11:14 +0200 <stevenxl> maerwald[m]: It is very plain-vanilla Haskell. The top-level value is of type `Spec` from HSpec, and there are like 2 or 3 non-library functions, mostly dealing with a Reader for DB actions.
2021-06-21 15:11:47 +0200 <stevenxl> merijn: Thanks. I'll give that a shot, but still interested in a more hands-on approach.
2021-06-21 15:11:49 +0200lbseale(~lbseale@user/ep1ctetus) (Ping timeout: 258 seconds)
2021-06-21 15:11:52 +0200 <merijn> oh
2021-06-21 15:12:07 +0200 <merijn> HSpec has super cryptic type errors due to its over-reliance on typeclasses
2021-06-21 15:12:08 +0200 <dminuoso> stevenxl: If you're willing to send me a box of candy, we can do it tonight!
2021-06-21 15:12:11 +0200 <stevenxl> I guess there is a type-family involved in terms of `HSpec`. I think `Arg` is an associated type family.
2021-06-21 15:12:14 +0200 <dminuoso> That's all I ask. :p
2021-06-21 15:12:16 +0200 <merijn> Which is one of the reasons I dislike hspec
2021-06-21 15:13:06 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-21 15:13:15 +0200 <stevenxl> dminuoso: I'm down! M
2021-06-21 15:13:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Ping timeout: 250 seconds)
2021-06-21 15:13:39 +0200 <dminuoso> Perfect, I'll be around 10pm CEST
2021-06-21 15:13:57 +0200 <stevenxl> :+1
2021-06-21 15:15:03 +0200wei2912(~wei2912@112.199.250.21)
2021-06-21 15:15:05 +0200 <merijn> dminuoso: I'm gonna make you debug my shite and sent you salmiak licorice as "reward" :p
2021-06-21 15:15:59 +0200 <Boomerang> Salmiak licorice is great! Not sure why the quotes are necessary ^^
2021-06-21 15:16:06 +0200 <dminuoso> Yes, indeed!
2021-06-21 15:16:59 +0200 <maerwald[m]> Promotion of drugs :p
2021-06-21 15:17:34 +0200 <merijn> Boomerang: I agree, most of the world does not
2021-06-21 15:18:04 +0200 <merijn> There's this invisible border running through the middle of Europe above which licorice is considered amazing and below which it's considered human torture ;)
2021-06-21 15:18:08 +0200 <dminuoso> stevenxl: Oh I just realized, Ill probably be around 8pm already for an hour. If that works with you, we can start a bit earlier.
2021-06-21 15:18:45 +0200 <dminuoso> merijn: Personally I think mixing licorice with salmiak is an offense.
2021-06-21 15:19:02 +0200 <stevenxl> dminuoso: :-). I'll set my alarm for 8PM CEST.
2021-06-21 15:19:05 +0200 <merijn> Starting somewhere around belgium running through the middle of Germany and then heading more north while approaching the baltics
2021-06-21 15:19:40 +0200 <merijn> I'm not sure if licorice is big in the Baltics
2021-06-21 15:19:58 +0200 <Boomerang> It is! :D
2021-06-21 15:20:33 +0200 <merijn> Insert "Esti can into Nordics" joke :p
2021-06-21 15:21:06 +0200 <Boomerang> Well the baltic states I don't know. But nordic countries/scandinavia definitely
2021-06-21 15:21:34 +0200 <merijn> Yeah, that I know
2021-06-21 15:23:24 +0200cheater(~Username@user/cheater) (Ping timeout: 250 seconds)
2021-06-21 15:23:57 +0200cheater(~Username@user/cheater)
2021-06-21 15:25:31 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz) (Quit: WeeChat info:version)
2021-06-21 15:26:55 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-06-21 15:31:12 +0200azeem(~azeem@176.201.29.233) (Ping timeout: 250 seconds)
2021-06-21 15:31:29 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-21 15:32:18 +0200curiousgay(~quassel@178.217.208.8) (Read error: Connection reset by peer)
2021-06-21 15:33:00 +0200chomwitt(~Pitsikoko@athedsl-351576.home.otenet.gr)
2021-06-21 15:33:09 +0200curiousgay(~quassel@178.217.208.8)
2021-06-21 15:34:21 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 15:35:06 +0200cheater(~Username@user/cheater) (Ping timeout: 250 seconds)
2021-06-21 15:35:28 +0200cheater(~Username@user/cheater)
2021-06-21 15:35:53 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 15:37:23 +0200azeem(~azeem@176.201.29.233)
2021-06-21 15:37:45 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-21 15:38:40 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 15:38:43 +0200brandonh(~brandonh@151.34.95.83)
2021-06-21 15:40:13 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 15:40:44 +0200curiousgay(~quassel@178.217.208.8) (Read error: Connection reset by peer)
2021-06-21 15:43:04 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 15:47:51 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-06-21 15:51:34 +0200cheater(~Username@user/cheater) (Ping timeout: 250 seconds)
2021-06-21 15:52:05 +0200cheater(~Username@user/cheater)
2021-06-21 15:55:33 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-06-21 15:56:04 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-06-21 15:56:46 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-21 15:56:46 +0200azeem(~azeem@176.201.29.233) (Ping timeout: 250 seconds)
2021-06-21 15:57:11 +0200shimin(~liushimin@2001:250:5806:3dad:c501:9418:6d95:abfa)
2021-06-21 15:57:19 +0200azeem(~azeem@176.201.29.233)
2021-06-21 15:57:49 +0200xkuru(~xkuru@user/xkuru)
2021-06-21 15:58:09 +0200shimin(~liushimin@2001:250:5806:3dad:c501:9418:6d95:abfa) ()
2021-06-21 15:59:40 +0200shimin(~liushimin@2001:250:5806:3dad:c501:9418:6d95:abfa)
2021-06-21 16:00:08 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-21 16:00:55 +0200fendor_(~fendor@77.119.129.45.wireless.dyn.drei.com)
2021-06-21 16:00:58 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2021-06-21 16:02:42 +0200is7s(~is7s@2a01:4b00:895f:3d00:3d61:e4ff:2003:3c7)
2021-06-21 16:03:32 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-21 16:05:39 +0200justBull(~justache@user/justache) (Remote host closed the connection)
2021-06-21 16:06:36 +0200justBull(~justache@user/justache)
2021-06-21 16:08:12 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-06-21 16:08:47 +0200 <kuribas> Why does MaybeT has: (Functor m, Monad m) => Applicative (MaybeT m)
2021-06-21 16:08:55 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:08:57 +0200 <kuribas> instaed of Applicative m => Applicative (MaybeT m) ?
2021-06-21 16:09:45 +0200 <kuribas> seems perfectly doable with applicative.
2021-06-21 16:09:58 +0200 <kuribas> unless you want short-circuiting?
2021-06-21 16:10:02 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:10:33 +0200 <kuribas> (guess I answered my own question)
2021-06-21 16:10:41 +0200 <Taneb> kuribas: I think the short circuting is a pretty big part of why you'd use it
2021-06-21 16:10:42 +0200 <nshepperd> it has to short circuit to match the monad instance
2021-06-21 16:10:55 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:11:07 +0200 <nshepperd> and also because that's what it's for i guess lol
2021-06-21 16:11:08 +0200 <kuribas> Taneb: yeah
2021-06-21 16:11:50 +0200fendor__(~fendor@91.141.3.62.wireless.dyn.drei.com)
2021-06-21 16:12:02 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:12:24 +0200 <_73> what do you guys mean by short-circuiting?
2021-06-21 16:12:30 +0200shimin(~liushimin@2001:250:5806:3dad:c501:9418:6d95:abfa) ()
2021-06-21 16:12:50 +0200 <_73> Just the behavior of the Maybe monad?
2021-06-21 16:12:56 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:13:37 +0200 <kuribas> _73: "Foo <$> eff1 <*> eff2" => eff2 is not executed if eff1 returns Nothing.
2021-06-21 16:14:04 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:14:06 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-06-21 16:14:26 +0200fendor(~fendor@178.115.131.43.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-06-21 16:14:54 +0200 <_73> ok I understand
2021-06-21 16:14:56 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:15:22 +0200fluffyballoon(~fluffybal@199.204.58.62)
2021-06-21 16:15:33 +0200 <lortabac> I have an IO action and a mutable variable update that must be executed atomically. What is the best way to do it?
2021-06-21 16:15:49 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Ping timeout: 244 seconds)
2021-06-21 16:16:00 +0200 <lortabac> I saw that some people use an IORef and unsafeInterleaveIO in this case
2021-06-21 16:16:04 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:16:23 +0200 <lortabac> or maybe I should use an MVar
2021-06-21 16:16:57 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:17:20 +0200anon1(~anon@94.140.141.53)
2021-06-21 16:17:33 +0200 <kuribas> lortabac: you mean update the variable if the IO action didn't throw?
2021-06-21 16:18:01 +0200 <lortabac> no, I mean that the variable should not be modified during the IO action
2021-06-21 16:18:04 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:18:19 +0200 <kuribas> lortabac: atomicModifyIORef then?
2021-06-21 16:18:35 +0200 <Hecate> lortabac: did you check the "Applicability" section here: https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Concurrent-MVar.html ?
2021-06-21 16:18:55 +0200jackhill_jackhill
2021-06-21 16:18:57 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:19:04 +0200 <lortabac> atomicModifyIORef only works with a pure function, doesn't it? it requires unsafeInterleaveIO AFAIK
2021-06-21 16:20:05 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:20:25 +0200 <kuribas> lortabac: I am not sure unsafeInterleaveIO will do what you want.
2021-06-21 16:20:53 +0200 <kuribas> better use an MVar then
2021-06-21 16:20:58 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-06-21 16:21:49 +0200 <kuribas> because it doesn't say atomicModifyIORef locks the variable while evaluating the function.
2021-06-21 16:21:49 +0200 <lortabac> kuribas: unsafeInterleaveIO defers the IO action until the result is used in the function passed to atomicModifyIORef
2021-06-21 16:22:05 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-06-21 16:22:33 +0200 <lortabac> anyway, the idea is not mine, I just saw this trick a couple of times
2021-06-21 16:22:42 +0200 <kuribas> lortabac: sounds like a very bad idea.
2021-06-21 16:22:45 +0200 <kuribas> just use an MVar
2021-06-21 16:23:22 +0200 <lortabac> you are right, I'll use an MVar
2021-06-21 16:24:05 +0200 <lortabac> even if it turns out that the trick works reliably, it's still hard to understand for other people who read the code
2021-06-21 16:24:36 +0200 <kuribas> lortabac: even if it works reliably now, the docs don't say it would work in the future.
2021-06-21 16:25:05 +0200 <lortabac> yes I agree
2021-06-21 16:25:50 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 16:26:17 +0200 <lortabac> Hecate: thanks I've just read that section, it seems that MVar are good for my use case
2021-06-21 16:30:08 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Quit: Leaving)
2021-06-21 16:31:31 +0200 <anon1> hey, how do i extend https://wiki.haskell.org/Roll_your_own_IRC_bot so it can connect over TLS?
2021-06-21 16:35:09 +0200 <exarkun> anon1: it's not exactly based on that wiki page but https://git.sr.ht/~jcalderone/DevBot/tree/main/item/src/Net.hs#L339
2021-06-21 16:36:11 +0200fendor_(~fendor@77.119.129.45.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-06-21 16:36:34 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-21 16:36:40 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 265 seconds)
2021-06-21 16:37:44 +0200Morrow(~MorrowM_@147.161.9.198)
2021-06-21 16:39:05 +0200shimin(~liushimin@2001:250:5806:3dad:c501:9418:6d95:abfa)
2021-06-21 16:39:29 +0200 <anon1> exarkun: thanks a lot
2021-06-21 16:40:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-21 16:43:04 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-21 16:43:49 +0200Sgeo(~Sgeo@user/sgeo)
2021-06-21 16:44:29 +0200 <teaSlurper> is polymorphism in haskell heavily about pattern matching?
2021-06-21 16:44:37 +0200moet(~moet@172.58.75.87)
2021-06-21 16:45:11 +0200 <c_wraith> they're not especially related
2021-06-21 16:45:37 +0200 <dminuoso> Mmm. Ad-hoc polymorphism is type-level pattern matching.
2021-06-21 16:46:09 +0200 <dminuoso> Perhaps we can think of typeclasses as setting up a type level `case-of`, and instances providing match clauses?
2021-06-21 16:47:14 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-21 16:47:28 +0200 <teaSlurper> ok, i'll keep reading. am start to get to that now in the "school of music" haskell book
2021-06-21 16:47:30 +0200jamestmartin(james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2021-06-21 16:47:40 +0200 <teaSlurper> polymorphism concepts
2021-06-21 16:48:01 +0200ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2021-06-21 16:48:56 +0200 <dminuoso> teaSlurper: At the core, a polymorphic value is one whose type mentions a type variable. The user/caller/consumer must choose a type for every such type variable (satisfying the constraints, if any)
2021-06-21 16:49:00 +0200 <dminuoso> % :t id
2021-06-21 16:49:00 +0200 <yahb> dminuoso: a -> a
2021-06-21 16:49:20 +0200ystael(~ystael@user/ystael)
2021-06-21 16:49:26 +0200 <dminuoso> The user of `id` has somehow decide/choose the types. This choice is usually done implicitly by the argument you provide it (or by a type signature)
2021-06-21 16:49:37 +0200 <c_wraith> I suppose there's some amount of type-level pattern-matching even in parametric polymorphism. Unification in general is a form of pattern matching. But it's not matching against data constructors, which is usually what is meant by pattern-matching in Haskell
2021-06-21 16:49:48 +0200 <dminuoso> c_wraith: better, its matching against type constructors!
2021-06-21 16:49:50 +0200 <dminuoso> :-)
2021-06-21 16:51:59 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-06-21 16:52:06 +0200moet(~moet@172.58.75.87) (Ping timeout: 252 seconds)
2021-06-21 16:53:15 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-21 16:53:48 +0200fluffyballoon(~fluffybal@199.204.58.62) (Quit: Client closed)
2021-06-21 16:54:03 +0200fendor_(~fendor@77.119.129.45.wireless.dyn.drei.com)
2021-06-21 16:55:11 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 16:57:33 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-21 16:58:54 +0200 <teaSlurper> thx
2021-06-21 16:58:55 +0200 <anon1> quit
2021-06-21 16:58:56 +0200 <teaSlurper> both
2021-06-21 16:58:56 +0200anon1(~anon@94.140.141.53) (Quit: WeeChat 3.2)
2021-06-21 16:59:15 +0200turlando(~turlando@user/turlando)
2021-06-21 16:59:19 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-21 16:59:26 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Ping timeout: 252 seconds)
2021-06-21 17:00:28 +0200motherfsck(~motherfsc@user/motherfsck)
2021-06-21 17:04:47 +0200mpt(~tom@2a02:908:1862:49e0::3)
2021-06-21 17:08:25 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-06-21 17:09:50 +0200curiousgay(~curiousgg@178.217.208.8)
2021-06-21 17:10:03 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-21 17:12:03 +0200fendor_(~fendor@77.119.129.45.wireless.dyn.drei.com) (Remote host closed the connection)
2021-06-21 17:14:42 +0200shimin(~liushimin@2001:250:5806:3dad:c501:9418:6d95:abfa) ()
2021-06-21 17:16:29 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-06-21 17:17:52 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-06-21 17:21:34 +0200kayprish(~kayprish@46.240.143.86) (Quit: leaving)
2021-06-21 17:21:42 +0200chomwitt(~Pitsikoko@athedsl-351576.home.otenet.gr) (Ping timeout: 250 seconds)
2021-06-21 17:21:50 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 17:23:00 +0200favonia(~favonia@user/favonia)
2021-06-21 17:23:09 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-06-21 17:28:12 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-06-21 17:28:43 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9)
2021-06-21 17:29:26 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:9f46:523f:c74b:90e0) (Quit: WeeChat 2.8)
2021-06-21 17:29:28 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 17:30:06 +0200kayprish(~kayprish@46.240.143.86) (Quit: leaving)
2021-06-21 17:30:15 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 17:30:59 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 17:34:02 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Remote host closed the connection)
2021-06-21 17:34:54 +0200mpt(~tom@2a02:908:1862:49e0::3) (Ping timeout: 244 seconds)
2021-06-21 17:35:35 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 17:36:21 +0200fef(~thedawn@user/thedawn)
2021-06-21 17:36:52 +0200moet(~moet@172.58.75.87)
2021-06-21 17:37:11 +0200jamestmartin(james@jtmar.me)
2021-06-21 17:37:20 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Remote host closed the connection)
2021-06-21 17:37:54 +0200Deide(~Deide@wire.desu.ga)
2021-06-21 17:37:54 +0200Deide(~Deide@wire.desu.ga) (Changing host)
2021-06-21 17:37:54 +0200Deide(~Deide@user/deide)
2021-06-21 17:38:24 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 17:39:21 +0200kayprish(~kayprish@46.240.143.86) (Quit: leaving)
2021-06-21 17:39:31 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 17:39:57 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 17:40:43 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 17:41:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 17:42:51 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 17:43:17 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 17:44:24 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 17:44:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 17:45:16 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-21 17:46:03 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net)
2021-06-21 17:48:40 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
2021-06-21 17:48:54 +0200nate1(~nate@216.176.47.241)
2021-06-21 17:49:19 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-21 17:50:06 +0200kayprish(~kayprish@46.240.143.86) (Remote host closed the connection)
2021-06-21 17:53:42 +0200Morrow(~MorrowM_@147.161.9.198) (Read error: Connection reset by peer)
2021-06-21 17:53:55 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 17:54:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 17:55:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 17:56:39 +0200Morrow(~MorrowM_@147.161.9.198)
2021-06-21 17:56:41 +0200dunj3(~dunj3@2001:16b8:309f:ea00:9791:603:5183:d379)
2021-06-21 17:57:17 +0200kayprish(~kayprish@46.240.143.86) (Client Quit)
2021-06-21 17:57:32 +0200MorrowM(~MorrowM_@147.161.13.169)
2021-06-21 17:57:34 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 17:58:45 +0200ubert(~Thunderbi@p200300ecdf259dd400f35283690bc8bb.dip0.t-ipconnect.de)
2021-06-21 17:59:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 18:01:15 +0200Morrow(~MorrowM_@147.161.9.198) (Ping timeout: 265 seconds)
2021-06-21 18:01:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 18:01:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:03:37 +0200bontaq`(~user@ool-18e47f8d.dyn.optonline.net)
2021-06-21 18:04:29 +0200nschoe(~quassel@178.251.84.79) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-06-21 18:06:32 +0200MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 252 seconds)
2021-06-21 18:06:47 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-06-21 18:06:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 18:07:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:07:43 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-21 18:08:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 18:08:55 +0200kayprish(~kayprish@46.240.143.86) (Quit: Lost terminal)
2021-06-21 18:10:54 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-06-21 18:11:21 +0200hendursaga(~weechat@user/hendursaga)
2021-06-21 18:11:42 +0200favonia(~favonia@user/favonia) (Ping timeout: 264 seconds)
2021-06-21 18:12:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 18:12:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 18:13:15 +0200favonia(~favonia@user/favonia)
2021-06-21 18:13:20 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 265 seconds)
2021-06-21 18:13:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:14:28 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-21 18:15:21 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-21 18:16:25 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 18:17:21 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-21 18:19:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 18:19:11 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-21 18:19:22 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net) (Quit: Client closed)
2021-06-21 18:19:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:20:06 +0200nate1(~nate@216.176.47.241) (Ping timeout: 265 seconds)
2021-06-21 18:20:18 +0200favonia(~favonia@user/favonia) (Ping timeout: 240 seconds)
2021-06-21 18:21:53 +0200tput(~tim@s0106a84e3fe54613.ed.shawcable.net)
2021-06-21 18:22:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-21 18:23:03 +0200favonia(~favonia@user/favonia)
2021-06-21 18:28:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 18:30:10 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-21 18:30:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-21 18:30:13 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-21 18:34:06 +0200azeem(~azeem@176.201.29.233) (Read error: Connection reset by peer)
2021-06-21 18:35:03 +0200mrusmemrus
2021-06-21 18:35:10 +0200azeem(~azeem@dynamic-adsl-94-34-49-60.clienti.tiscali.it)
2021-06-21 18:37:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:38:34 +0200ubert(~Thunderbi@p200300ecdf259dd400f35283690bc8bb.dip0.t-ipconnect.de) (Quit: ubert)
2021-06-21 18:39:27 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds)
2021-06-21 18:40:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 18:43:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 18:43:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:43:53 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 18:44:57 +0200qbt(~edun@user/edun) (Ping timeout: 258 seconds)
2021-06-21 18:44:59 +0200gnoo(~gnoo@user/gnoo) (Remote host closed the connection)
2021-06-21 18:45:25 +0200gnoo(~gnoo@user/gnoo)
2021-06-21 18:45:28 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 18:45:55 +0200fendor__fendor
2021-06-21 18:46:49 +0200shapr(~user@144.163.30.223)
2021-06-21 18:48:05 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 18:48:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 18:49:25 +0200xff0x_(~xff0x@2001:1a81:53cb:7800:33aa:1278:7cdb:992c) (Ping timeout: 268 seconds)
2021-06-21 18:49:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:49:39 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 18:49:40 +0200econo(uid147250@user/econo)
2021-06-21 18:49:56 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-21 18:50:04 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Ping timeout: 265 seconds)
2021-06-21 18:50:14 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 18:52:22 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 18:52:24 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-21 18:53:57 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 18:54:17 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-06-21 18:54:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 18:55:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 18:55:52 +0200MorrowM(~MorrowM_@147.161.13.169) (Ping timeout: 265 seconds)
2021-06-21 18:56:52 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 18:57:40 +0200kuribas(~user@ptr-25vy0i7yslxo8ej7h6j.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-06-21 18:58:24 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 18:58:28 +0200xff0x(~xff0x@2001:1a81:53cb:7800:fb34:5f25:12c9:2a25)
2021-06-21 18:59:07 +0200gnoo(~gnoo@user/gnoo) (Bye!)
2021-06-21 18:59:43 +0200MoC(~moc@user/moc)
2021-06-21 19:00:24 +0200brandonh(~brandonh@151.34.95.83) (Read error: Connection reset by peer)
2021-06-21 19:00:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 19:01:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 19:01:24 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:02:39 +0200Morrow(~MorrowM_@147.161.13.169)
2021-06-21 19:02:57 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:02:58 +0200azeem(~azeem@dynamic-adsl-94-34-49-60.clienti.tiscali.it) (Ping timeout: 258 seconds)
2021-06-21 19:03:15 +0200azeem(~azeem@176.201.29.233)
2021-06-21 19:06:02 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:06:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-21 19:07:15 +0200brandonh(~brandonh@151.34.22.105)
2021-06-21 19:07:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 19:07:34 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:07:45 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.1)
2021-06-21 19:07:57 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Ping timeout: 258 seconds)
2021-06-21 19:09:46 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:ff00:c813:70d9:31b2:b1b9) (Ping timeout: 268 seconds)
2021-06-21 19:10:40 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:12:13 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:12:18 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds)
2021-06-21 19:12:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-21 19:12:35 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 19:12:54 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 264 seconds)
2021-06-21 19:13:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 19:14:33 +0200xkuru(~xkuru@user/xkuru) (Quit: Unvirtualizing)
2021-06-21 19:14:50 +0200xkuru(~xkuru@user/xkuru)
2021-06-21 19:15:12 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:16:43 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:17:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 19:17:33 +0200lbseale__(~lbseale@user/ep1ctetus)
2021-06-21 19:17:39 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net)
2021-06-21 19:18:22 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-06-21 19:18:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 19:18:55 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-06-21 19:19:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 19:19:17 +0200xkuru(~xkuru@user/xkuru) (Client Quit)
2021-06-21 19:19:35 +0200xkuru(~xkuru@user/xkuru)
2021-06-21 19:19:46 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:20:52 +0200lbseale_(~lbseale@user/ep1ctetus) (Ping timeout: 250 seconds)
2021-06-21 19:21:19 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:22:27 +0200jonatan_(~nate@h77-53-70-163.cust.a3fiber.se) (Ping timeout: 265 seconds)
2021-06-21 19:22:34 +0200lbseale__lbseale
2021-06-21 19:24:11 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:25:43 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:26:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-21 19:28:30 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:29:35 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-21 19:30:05 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:32:20 +0200ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
2021-06-21 19:32:53 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:33:00 +0200 <dminuoso> c_wraith: What kind of pattern matching are you thinking of in parametric polymorphism?
2021-06-21 19:33:18 +0200 <dminuoso> Or did you mean unification? The sentence structure is not clear.
2021-06-21 19:33:26 +0200Morrow(~MorrowM_@147.161.13.169) (Ping timeout: 252 seconds)
2021-06-21 19:33:44 +0200 <c_wraith> in that sentence I meant that unification is a kind of pattern matching, in a very broad sense.
2021-06-21 19:34:00 +0200 <c_wraith> but that's very different from runtime pattern matching of values.
2021-06-21 19:34:01 +0200 <ski> _73 : "maybe if I had to account for the possibility of error it would be easier to do this then instead start using the EitherT State transformer?" -- maybe. ("Is this a sensical reason?" -- yes) "Cps is reminding me a lot of monads…" -- there are clear similarities
2021-06-21 19:34:26 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:36:02 +0200 <ski> _73 : it sounds like maybe you'd want to experiment with `ContT o' or `Codensity', or maybe a handwritten CPS monad, over `EitherT Error (State ProgramState) Value'
2021-06-21 19:36:05 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-21 19:37:23 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:38:57 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:41:12 +0200chomwitt(~Pitsikoko@athedsl-351576.home.otenet.gr)
2021-06-21 19:41:40 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:43:13 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:46:18 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:47:08 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2021-06-21 19:47:51 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:48:28 +0200 <ski> _73 : one of the main reasons for using CPS / `Cont o'/`ContT o'/`Codensity', apart from wanting to do more exotic control behaviour, is for efficiency reasons. you'll sometimes hear "removal of interpretative overhead / avoiding step-by-step percolating errors upward / avoiding left-association", in connection with `(>>=)'. perhaps the `Either' (or maybe the `(,)') could cause some overhead, that could be
2021-06-21 19:48:34 +0200 <ski> avoided in this way. but i'd say before doing anything like this, you should have some suspicion that this might be a problem; and then, you should really attempt to measure some
2021-06-21 19:49:44 +0200maroloccio(~marolocci@189.15.9.54) (Quit: Client closed)
2021-06-21 19:50:39 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:51:45 +0200fef(~thedawn@user/thedawn)
2021-06-21 19:51:50 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-06-21 19:52:12 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:52:19 +0200xff0x(~xff0x@2001:1a81:53cb:7800:fb34:5f25:12c9:2a25) (Ping timeout: 268 seconds)
2021-06-21 19:52:36 +0200unyu(~pyon@user/pyon)
2021-06-21 19:53:40 +0200xff0x(~xff0x@2001:1a81:53f8:8c00:17bc:3aea:ca8:b929)
2021-06-21 19:53:55 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-58.prtc.net) (Ping timeout: 246 seconds)
2021-06-21 19:54:53 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt)
2021-06-21 19:55:02 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 19:55:11 +0200 <_73> ski: what is meant by the `o` in `Cont o`?
2021-06-21 19:56:36 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 19:59:35 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:01:07 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:04:14 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Remote host closed the connection)
2021-06-21 20:05:39 +0200azeem(~azeem@176.201.29.233) (Read error: Connection reset by peer)
2021-06-21 20:05:48 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:05:59 +0200mikail(~mikail@90.152.14.81)
2021-06-21 20:06:48 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Quit: ERC (IRC client for Emacs 28.0.50))
2021-06-21 20:06:55 +0200azeem(~azeem@dynamic-adsl-84-220-246-6.clienti.tiscali.it)
2021-06-21 20:08:04 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-06-21 20:08:05 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-06-21 20:08:55 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:09:05 +0200jonatan(~nate@h77-53-70-163.cust.a3fiber.se)
2021-06-21 20:10:28 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:11:16 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca)
2021-06-21 20:11:30 +0200 <Izem> do haskellers ever have the need for macros?
2021-06-21 20:12:14 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-06-21 20:13:08 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:14:40 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:15:11 +0200 <monochrom> Yes. This is why Template Haskell exists.
2021-06-21 20:15:12 +0200mc47(~mc47@xmonad/TheMC47) (Quit: Leaving)
2021-06-21 20:16:37 +0200 <davean> though Template Haskell is more than macros in a way, and its not wanted for much in Haskell
2021-06-21 20:17:30 +0200 <Izem> ok, cool
2021-06-21 20:17:45 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:19:21 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:22:15 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:23:34 +0200x_kuru(~xkuru@user/xkuru)
2021-06-21 20:23:48 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:24:03 +0200juhp_(~juhp@128.106.188.66)
2021-06-21 20:24:59 +0200 <ski> _73 : the "final answer type"
2021-06-21 20:26:14 +0200xkuru(~xkuru@user/xkuru) (Ping timeout: 252 seconds)
2021-06-21 20:26:46 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:27:13 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 265 seconds)
2021-06-21 20:27:13 +0200juhp_juhp
2021-06-21 20:28:21 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:29:03 +0200_73`(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-06-21 20:29:49 +0200ddellacosta(~ddellacos@ool-44c73afc.dyn.optonline.net)
2021-06-21 20:30:45 +0200_73(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Ping timeout: 258 seconds)
2021-06-21 20:31:02 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:32:35 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:35:21 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:35:58 +0200MoC(~moc@user/moc)
2021-06-21 20:36:30 +0200ddellacosta(~ddellacos@ool-44c73afc.dyn.optonline.net) (Ping timeout: 258 seconds)
2021-06-21 20:36:53 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:37:21 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-21 20:38:22 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-21 20:39:06 +0200 <_73`> ski: ok I see. I did initially try this but I wasn't able to get my `Either Error Value` functions lifted in. Do I need to rethink the Either functions as well? Before with the `ExceptT Error (State PS.ProgramState) ()` I was able to just use liftEither to get them lifted in, but now I cant come up with a way to get these functions to work with the Cont Monad. Is this ever going to work?: http://dpaste.com/C2ZEWRKHN
2021-06-21 20:39:27 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-21 20:39:40 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:39:47 +0200 <_73`> This problem lead me to do: `ContT PS.ProgramState (ExceptT Error (State PS.ProgramState)) Value`, but I think this may defeat the purpose.
2021-06-21 20:40:11 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-21 20:40:40 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 20:41:14 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:41:36 +0200ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 20:41:43 +0200Topsi(~Tobias@dyndsl-091-249-082-141.ewe-ip-backbone.de)
2021-06-21 20:42:07 +0200BSTMatAoUYek(~BSTMatAoU@37.73.15.135)
2021-06-21 20:42:07 +0200 <BSTMatAoUYek> 9o baCk to fReen0De OR N0rtH kOr3A nuke5 Y0u
2021-06-21 20:42:07 +0200BSTMatAoUYek(~BSTMatAoU@37.73.15.135) (Client Quit)
2021-06-21 20:42:48 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Read error: Connection reset by peer)
2021-06-21 20:42:56 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) (Quit: Izem)
2021-06-21 20:43:05 +0200 <sshine> I thought it was south korea.
2021-06-21 20:43:10 +0200ystael(~ystael@user/ystael) (Ping timeout: 265 seconds)
2021-06-21 20:43:10 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 20:43:13 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca)
2021-06-21 20:43:47 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 258 seconds)
2021-06-21 20:44:04 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 20:45:22 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Read error: Connection reset by peer)
2021-06-21 20:45:30 +0200lTcLPewPJLOs(~lTcLPewPJ@37.73.15.135)
2021-06-21 20:45:30 +0200 <lTcLPewPJLOs> jo1n fr3Enode sIDE, we hAv3 CookieS&fRe3 bnc
2021-06-21 20:45:31 +0200lTcLPewPJLOs(~lTcLPewPJ@37.73.15.135) (Client Quit)
2021-06-21 20:45:37 +0200betelgeuse7(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 20:46:17 +0200ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net) (Read error: Connection reset by peer)
2021-06-21 20:47:00 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-06-21 20:48:44 +0200Guest9(~Guest9@43.250.158.43)
2021-06-21 20:54:53 +0200betelgeuse7betelgeuse
2021-06-21 20:55:31 +0200brandonh(~brandonh@151.34.22.105) (Quit: brandonh)
2021-06-21 20:58:29 +0200amirouche`amirouche
2021-06-21 20:58:42 +0200 <tomsmeding> well at least they're mindful enough to approach the issue from both sides: scare us away from here and lure us to the other side
2021-06-21 20:59:17 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-06-21 20:59:59 +0200 <monochrom> Except when you go to the other side you also see them suggesting you to come back here.
2021-06-21 21:00:15 +0200 <tomsmeding> probably not the same "them" though
2021-06-21 21:00:27 +0200 <tomsmeding> this at least was even the very same IP address :p
2021-06-21 21:00:50 +0200 <tomsmeding> also the nicks were equally long and the messages were also (!) equally long
2021-06-21 21:00:52 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Quit: Must not waste too much time here...)
2021-06-21 21:01:49 +0200 <monochrom> Same "them" is already the best scenerio. The worse scenerio is different "them" therefore akin to two government departments telling you "go to the other department, this is their problem".
2021-06-21 21:02:55 +0200 <monochrom> But good eyes catching the lengths :)
2021-06-21 21:04:23 +0200tzar_bomba(~tzar_bomb@78-56-41-78.static.zebra.lt)
2021-06-21 21:05:13 +0200ystael(~ystael@user/ystael)
2021-06-21 21:05:50 +0200 <tomsmeding> my client hiding joins/leaves of idle nicks does make it easier to spot :)
2021-06-21 21:06:01 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Quit: ERC (IRC client for Emacs 28.0.50))
2021-06-21 21:07:17 +0200 <_73`> ski: I now understand why my example was not going to work.
2021-06-21 21:07:52 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-21 21:08:12 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 21:08:35 +0200skiwould think it's more likely to be the same "them" (or similarly motivated people), at least for the "/!\ ..."-style spam, that's been visible on multiple networks, lately
2021-06-21 21:08:42 +0200favonia(~favonia@user/favonia) (Ping timeout: 264 seconds)
2021-06-21 21:08:55 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-21 21:09:06 +0200 <ski> (i've seen that on five networks, and i haven't really bothered to look around more for it)
2021-06-21 21:09:19 +0200rawles(~o@sputnik.rawles.net)
2021-06-21 21:09:29 +0200favonia(~favonia@user/favonia)
2021-06-21 21:09:55 +0200rawles(~o@sputnik.rawles.net) (Changing host)
2021-06-21 21:09:55 +0200rawles(~o@user/rawles)
2021-06-21 21:11:07 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 21:11:12 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-21 21:11:36 +0200zeenk(~zeenk@2a02:2f04:a00e:6e00:d401:4c92:fecc:16f9)
2021-06-21 21:12:26 +0200cyclosa(~cyclosa@2603-6011-4a41-8ada-0000-0000-0000-0eaa.res6.spectrum.com)
2021-06-21 21:12:32 +0200 <ski> @unmtl ContT o (ExceptT e (StateT s m)) a
2021-06-21 21:12:32 +0200 <lambdabot> (a -> s -> m (Either e o, s)) -> s -> m (Either e o, s)
2021-06-21 21:12:36 +0200 <ski> @unmtl ExceptT e (ContT o (StateT s m)) a
2021-06-21 21:12:36 +0200 <lambdabot> (Either e a -> s -> m (o, s)) -> s -> m (o, s)
2021-06-21 21:12:38 +0200 <ski> @unmtl ExceptT e (StateT s (ContT o m)) a
2021-06-21 21:12:39 +0200 <lambdabot> s -> (Either e a -> s -> m o) -> m o
2021-06-21 21:14:27 +0200 <ski> _73` : the last one looks more promising, i'd think. although, perhaps (or perhaps not) it would be worth it to manually replace `(Either e a -> s -> m o) ->' by `(e -> s -> m o) -> (a -> s -> m o) ->' (having separate "normal exit" and "exceptional exit" paths) ..
2021-06-21 21:15:11 +0200MoC(~moc@user/moc)
2021-06-21 21:15:38 +0200amirouchecome to (free) deno side
2021-06-21 21:15:40 +0200 <amirouche> quit
2021-06-21 21:15:42 +0200 <amirouche> oops!
2021-06-21 21:17:38 +0200 <_73`> I am going to have to consider this for some time. First I will see how far I can get with the last example. Thanks.
2021-06-21 21:19:52 +0200Guest9(~Guest9@43.250.158.43) (Quit: Ping timeout (120 seconds))
2021-06-21 21:20:02 +0200Morrow(~MorrowM_@147.161.9.243)
2021-06-21 21:20:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-06-21 21:20:08 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-21 21:20:22 +0200Guest9(~Guest9@43.250.158.43)
2021-06-21 21:20:28 +0200dhil(~dhil@195.213.192.47) (Ping timeout: 250 seconds)
2021-06-21 21:20:35 +0200derelict(~derelict@user/derelict) (Ping timeout: 258 seconds)
2021-06-21 21:21:14 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt) (Ping timeout: 252 seconds)
2021-06-21 21:27:46 +0200janiczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-06-21 21:32:36 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2021-06-21 21:32:58 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 252 seconds)
2021-06-21 21:33:19 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-21 21:33:38 +0200dhil(~dhil@80.208.56.181)
2021-06-21 21:35:12 +0200shapr(~user@144.163.30.223) (Ping timeout: 268 seconds)
2021-06-21 21:37:18 +0200jackhill(~jackhill@kalessin.dragonsnail.net) (Read error: Connection reset by peer)
2021-06-21 21:38:34 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2021-06-21 21:38:57 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-06-21 21:41:00 +0200jackhill(~jackhill@kalessin.dragonsnail.net)
2021-06-21 21:42:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 21:43:02 +0200favonia(~favonia@user/favonia) (Ping timeout: 252 seconds)
2021-06-21 21:43:26 +0200favonia(~favonia@user/favonia)
2021-06-21 21:44:11 +0200shapr(~user@144.163.30.223)
2021-06-21 21:44:47 +0200pavonia(~user@user/siracusa)
2021-06-21 21:46:21 +0200learner-monad(~ehanneken@user/learner-monad)
2021-06-21 21:46:59 +0200favonia(~favonia@user/favonia) (Client Quit)
2021-06-21 21:47:28 +0200moet_(~moet@172.58.19.20)
2021-06-21 21:47:41 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-21 21:48:17 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 21:48:36 +0200dmang(~dmang@user/dmang) (Remote host closed the connection)
2021-06-21 21:49:51 +0200dmang(~dmang@047-032-148-170.res.spectrum.com)
2021-06-21 21:50:50 +0200moet(~moet@172.58.75.87) (Ping timeout: 265 seconds)
2021-06-21 21:52:31 +0200dtman34(~dtman34@c-73-62-246-247.hsd1.mn.comcast.net)
2021-06-21 21:52:48 +0200Codaraxis__(~Codaraxis@193.32.126.158)
2021-06-21 21:52:52 +0200Codaraxis__(~Codaraxis@193.32.126.158) (Remote host closed the connection)
2021-06-21 21:53:25 +0200Codaraxis(~Codaraxis@193.32.126.158)
2021-06-21 21:54:42 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-21 21:57:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-21 21:58:22 +0200sheepduck(~sheepduck@user/sheepduck)
2021-06-21 21:58:29 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-21 21:59:22 +0200Guest8(~Guest8@71.sub-174-248-28.myvzw.com)
2021-06-21 22:00:10 +0200Guest8(~Guest8@71.sub-174-248-28.myvzw.com) (Client Quit)
2021-06-21 22:04:35 +0200killsushi(~killsushi@user/killsushi)
2021-06-21 22:05:14 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 252 seconds)
2021-06-21 22:05:30 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-21 22:06:44 +0200juhp(~juhp@128.106.188.66)
2021-06-21 22:08:48 +0200IvanDru[m](~dendrumat@2001:470:69fc:105::2f9b)
2021-06-21 22:08:52 +0200delYsid(~user@user/delYsid)
2021-06-21 22:09:41 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-06-21 22:11:02 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 22:11:58 +0200ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 22:12:00 +0200kayprish(~kayprish@46.240.143.86) (Quit: leaving)
2021-06-21 22:12:14 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:12:30 +0200jumper149(~jumper149@80.240.31.34)
2021-06-21 22:12:31 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-21 22:13:09 +0200 <jumper149> Hi, is it possible to give a constraint, that a specific type of a non-injective type family exists?
2021-06-21 22:14:08 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-06-21 22:14:08 +0200azeem(~azeem@dynamic-adsl-84-220-246-6.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-21 22:14:31 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-06-21 22:14:53 +0200azeem(~azeem@dynamic-adsl-84-220-246-6.clienti.tiscali.it)
2021-06-21 22:15:54 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-06-21 22:16:15 +0200sheepduck(~sheepduck@user/sheepduck) (Quit: Leaving)
2021-06-21 22:16:42 +0200sheepduck(~sheepduck@user/sheepduck)
2021-06-21 22:17:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a) (Remote host closed the connection)
2021-06-21 22:18:14 +0200kayprish(~kayprish@46.240.143.86) (Quit: leaving)
2021-06-21 22:18:23 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:19:35 +0200kayprish(~kayprish@46.240.143.86) (Client Quit)
2021-06-21 22:19:45 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:19:46 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 22:22:24 +0200kayprish(~kayprish@46.240.143.86) (Client Quit)
2021-06-21 22:22:35 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:22:41 +0200dhil(~dhil@80.208.56.181) (Ping timeout: 268 seconds)
2021-06-21 22:23:12 +0200ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-06-21 22:24:15 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Read error: Connection reset by peer)
2021-06-21 22:24:21 +0200ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 22:24:41 +0200shapr(~user@144.163.30.223) (Read error: Connection reset by peer)
2021-06-21 22:25:33 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:26:34 +0200kayprish(~kayprish@46.240.143.86) (Client Quit)
2021-06-21 22:26:45 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:27:05 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:27:10 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) (Quit: Izem)
2021-06-21 22:27:12 +0200shapr(~user@144.163.30.223)
2021-06-21 22:29:52 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:29:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:945c:cf17:8af9:9d4a)
2021-06-21 22:31:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-21 22:31:27 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:31:44 +0200esclear[i](~esclear@phobos.esclear.de) (Quit: WeeChat 2.1)
2021-06-21 22:32:05 +0200 <delYsid> heh, I am getting a shady investment AD on youtube tweag channel.
2021-06-21 22:34:07 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:34:13 +0200derelict(~derelict@user/derelict)
2021-06-21 22:34:55 +0200Morrow(~MorrowM_@147.161.9.243) (Read error: Connection reset by peer)
2021-06-21 22:35:40 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:36:03 +0200dhil(~dhil@195.213.192.47)
2021-06-21 22:36:21 +0200Morrow(~MorrowM_@147.161.9.243)
2021-06-21 22:36:56 +0200kayprish(~kayprish@46.240.143.86) (Read error: Connection reset by peer)
2021-06-21 22:38:31 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:38:36 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-06-21 22:38:48 +0200korayal(~Koray_Al@213.14.171.115)
2021-06-21 22:39:10 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 265 seconds)
2021-06-21 22:39:17 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-06-21 22:40:04 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:43:06 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:44:39 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:44:39 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:45:34 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-06-21 22:47:22 +0200deshalb(~deshalb@user/deshalb) (Quit: leaving)
2021-06-21 22:47:25 +0200Erutuon(~Erutuon@user/erutuon)
2021-06-21 22:47:26 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:48:59 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:49:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-21 22:49:47 +0200kayprish(~kayprish@46.240.143.86) (Quit: leaving)
2021-06-21 22:49:59 +0200kayprish(~kayprish@46.240.143.86)
2021-06-21 22:51:44 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:52:58 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 22:53:17 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 22:54:02 +0200 <Topsi> Is there a decision on the Monad of no return proposal? Is return going to be removed from the Monad class in the future?
2021-06-21 22:56:07 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 22:56:34 +0200ddellaco_(~ddellacos@ool-44c73aff.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-06-21 22:57:41 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:00:17 +0200ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2021-06-21 23:00:40 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:00:41 +0200bilegeek(~bilegeek@2600:1008:b017:63a6:c26d:d119:faaa:a6d7)
2021-06-21 23:02:13 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:04:51 +0200chomwitt(~Pitsikoko@athedsl-351576.home.otenet.gr) (Ping timeout: 258 seconds)
2021-06-21 23:05:00 +0200mikail(~mikail@90.152.14.81) (Ping timeout: 252 seconds)
2021-06-21 23:05:04 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:05:11 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Quit: Leaving.)
2021-06-21 23:06:38 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:06:47 +0200zgrep(~zgrep@user/zgrep) (Quit: It's a quitter's world.)
2021-06-21 23:07:56 +0200shapr(~user@144.163.30.223) (Ping timeout: 252 seconds)
2021-06-21 23:08:18 +0200zgrep(~zgrep@user/zgrep)
2021-06-21 23:09:32 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:11:07 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:11:09 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf)
2021-06-21 23:12:12 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-06-21 23:14:05 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:15:21 +0200korayal(~Koray_Al@213.14.171.115) (Quit: WeeChat 3.3-dev)
2021-06-21 23:15:34 +0200korayal(~Koray_Al@213.14.171.115)
2021-06-21 23:15:39 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:16:11 +0200mikail_(~mikail@90.212.77.3)
2021-06-21 23:16:25 +0200mikail(~mikail@2a02:c7f:bc9c:3100:ae93:93fc:603f:ceaf) (Ping timeout: 244 seconds)
2021-06-21 23:16:40 +0200lavaman(~lavaman@98.38.249.169)
2021-06-21 23:17:19 +0200hammock(~Hammock@2600:1700:19a1:3330::625)
2021-06-21 23:17:42 +0200 <dminuoso> jumper149: What do you mean by "specific type of a non-injective type family exists"?
2021-06-21 23:18:36 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:19:09 +0200haltux(~haltux@a89-154-181-47.cpe.netcabo.pt)
2021-06-21 23:19:50 +0200ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 252 seconds)
2021-06-21 23:20:11 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:21:13 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-06-21 23:21:41 +0200ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
2021-06-21 23:22:59 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:23:15 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-21 23:24:32 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:25:11 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-21 23:25:11 +0200hololeap(hololeap@user/hololeap)
2021-06-21 23:26:19 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-06-21 23:26:27 +0200michalz(~michalz@185.246.204.40) (Remote host closed the connection)
2021-06-21 23:28:15 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-21 23:29:51 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-06-21 23:30:58 +0200ystael(~ystael@user/ystael)
2021-06-21 23:32:27 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2021-06-21 23:35:49 +0200_73`(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (ERC (IRC client for Emacs 27.2))
2021-06-21 23:36:05 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-21 23:36:16 +0200beka(~beka@104.193.170-244.public.monkeybrains.net)
2021-06-21 23:38:08 +0200MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 265 seconds)
2021-06-21 23:39:44 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-21 23:41:11 +0200 <jumper149> dminuoso: `StM m a` from MonadBaseControl is supposedly a non-injective type-family. At least GHC tells me that.
2021-06-21 23:42:05 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-21 23:42:23 +0200 <jumper149> I am pretty sure what I want is a function like `StM m () -> b (StM m ())`.
2021-06-21 23:43:37 +0200 <jumper149> I guess GHC cannot know what type `StM m ()` actually is unless it was clear it's an injective type family.
2021-06-21 23:44:08 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Remote host closed the connection)
2021-06-21 23:44:24 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 23:44:40 +0200 <dminuoso> Is m quantified here? Or does m stand for some specific unknown type?
2021-06-21 23:45:14 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-21 23:46:05 +0200 <jumper149> forall m. MonadBaseControl b m => StM m () -> b (StM m ())
2021-06-21 23:46:38 +0200 <jumper149> wait
2021-06-21 23:49:39 +0200 <jumper149> yeah thats basically it
2021-06-21 23:49:47 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-21 23:50:55 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-21 23:52:21 +0200 <jumper149> I should say that the actual value never gets inspected.
2021-06-21 23:52:38 +0200MorrowM(~MorrowM_@147.161.8.246)
2021-06-21 23:52:41 +0200 <jumper149> I got it to the point of: `StM m Any -> b (StM m Any)`
2021-06-21 23:54:42 +0200 <jumper149> and with `unsafeCoerce <$> runInBase $ pure undefined` I got it working.
2021-06-21 23:55:04 +0200Morrow(~MorrowM_@147.161.9.243) (Ping timeout: 258 seconds)
2021-06-21 23:55:08 +0200 <jumper149> I guess it's impossible to understand what I'm trying to say though x)
2021-06-21 23:55:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-21 23:55:54 +0200xff0x(~xff0x@2001:1a81:53f8:8c00:17bc:3aea:ca8:b929) (Ping timeout: 240 seconds)
2021-06-21 23:56:02 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
2021-06-21 23:56:51 +0200xff0x(~xff0x@2001:1a81:53f8:8c00:146b:f6fc:d9b4:bcad)
2021-06-21 23:57:03 +0200beka(~beka@104.193.170-244.public.monkeybrains.net) (Remote host closed the connection)
2021-06-21 23:57:19 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net)
2021-06-21 23:57:36 +0200betelgeuse(~john2gb@94-225-47-8.access.telenet.be)
2021-06-21 23:58:02 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net) (Remote host closed the connection)
2021-06-21 23:58:31 +0200ddellacosta(~ddellacos@ool-44c73aff.dyn.optonline.net)
2021-06-21 23:59:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)