2021/05/06

2021-05-06 00:00:00 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-05-06 00:00:28 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-06 00:01:07 +0200mounty(~mounty@236.216.214.218.sta.wbroadband.net.au)
2021-05-06 00:03:11 +0200 <dibblego> just use lens
2021-05-06 00:03:23 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Remote host closed the connection)
2021-05-06 00:06:45 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 00:07:33 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-05-06 00:08:25 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-06 00:11:40 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 00:12:33 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-c0c5-1b9a-790c-68b7.res6.spectrum.com)
2021-05-06 00:14:15 +0200 <infinisil> Or optics
2021-05-06 00:19:05 +0200Alleria(~textual@2603-7000-3040-0000-0051-96de-f907-9900.res6.spectrum.com)
2021-05-06 00:19:29 +0200AlleriaGuest77764
2021-05-06 00:22:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-05-06 00:22:58 +0200dhil(~dhil@195.213.192.4) (Ping timeout: 252 seconds)
2021-05-06 00:23:02 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-srezfizievqmpclo) (Quit: Connection closed for inactivity)
2021-05-06 00:23:31 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-05-06 00:24:00 +0200gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2021-05-06 00:24:49 +0200gentauro(~gentauro@unaffiliated/gentauro)
2021-05-06 00:36:05 +0200jakalx(~jakalx@base.jakalx.net) ("Disconnected: Replaced by new connection")
2021-05-06 00:38:31 +0200LKoen(~LKoen@140.170.9.109.rev.sfr.net) (Read error: Connection reset by peer)
2021-05-06 00:39:03 +0200LKoen(~LKoen@140.170.9.109.rev.sfr.net)
2021-05-06 00:43:46 +0200Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-05-06 00:44:59 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 00:45:25 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-05-06 00:45:27 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 258 seconds)
2021-05-06 00:46:59 +0200heebo(~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net)
2021-05-06 00:47:01 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-05-06 00:47:43 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:3b8a:fc99:e582:487) (Ping timeout: 260 seconds)
2021-05-06 00:49:26 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 00:52:21 +0200ADG1089(~aditya@122.163.193.183)
2021-05-06 00:57:07 +0200 <heebo> hello is anyone coding coins?
2021-05-06 00:58:32 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-05-06 00:58:37 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-05-06 00:59:07 +0200 <Axman6> so many coins
2021-05-06 01:03:07 +0200dmytrish(~mitra@2a02:8084:a82:d900:4cc7:f0a8:8d74:1dfc) (Ping timeout: 260 seconds)
2021-05-06 01:03:34 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:f1ef:f61e:f18b:4601) (Ping timeout: 276 seconds)
2021-05-06 01:04:39 +0200mterwoord(~mterwoord@185.163.110.100) (Remote host closed the connection)
2021-05-06 01:05:21 +0200 <heebo> coding plutus
2021-05-06 01:05:52 +0200 <monochrom> Huh are you in the wrong channel?
2021-05-06 01:07:17 +0200 <heebo> nope
2021-05-06 01:07:23 +0200stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
2021-05-06 01:09:42 +0200Guest43271(~zmv@unaffiliated/zmv) (Ping timeout: 268 seconds)
2021-05-06 01:11:40 +0200 <Axman6> I guess plutus is implemented in Haskell? I don't know of anyone in here working with Cardano or IOHK's other stuff
2021-05-06 01:13:24 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 01:13:32 +0200DavidEichmann(~david@156.59.147.147.dyn.plus.net) (Ping timeout: 252 seconds)
2021-05-06 01:13:44 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 01:14:07 +0200 <Axman6> (There's a walk at LambdaJam today by John Hughes about testing crypto contracts using quickcheck, which might be relevant. you might still be able to buy tickets to get access to the live stream
2021-05-06 01:14:18 +0200 <Axman6> talk* )*
2021-05-06 01:15:57 +0200usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2021-05-06 01:15:58 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 01:17:49 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-06 01:18:21 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 01:18:55 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
2021-05-06 01:18:59 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
2021-05-06 01:19:39 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 01:20:20 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:5226:d695:8fe3:b090)
2021-05-06 01:21:00 +0200Eramdam1(~Eramdam@185.204.1.185)
2021-05-06 01:21:46 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-05-06 01:22:56 +0200jgt_(~jgt@87.227.221.129) (Ping timeout: 260 seconds)
2021-05-06 01:23:30 +0200 <Axman6> heebo: did you have an actual question, preferably related to Haskell?
2021-05-06 01:23:52 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-05-06 01:23:52 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 240 seconds)
2021-05-06 01:24:01 +0200Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 252 seconds)
2021-05-06 01:25:44 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-05-06 01:28:46 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2021-05-06 01:30:10 +0200kderme(2e675c7c@46-92-124.adsl.cyta.gr)
2021-05-06 01:32:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-05-06 01:33:57 +0200 <sm[m]> welcome heebo. Not too much cardano chat or plutus experience here
2021-05-06 01:34:31 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 01:37:34 +0200 <sm[m]> there's a #cardano.. no #plutus yet
2021-05-06 01:37:35 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-05-06 01:37:45 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-05-06 01:38:00 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-05-06 01:38:44 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 01:38:45 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2021-05-06 01:39:18 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 268 seconds)
2021-05-06 01:40:47 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-05-06 01:41:52 +0200 <VarikValefor[m]> electricityZZZZ: Nice username.
2021-05-06 01:42:08 +0200thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-05-06 01:43:16 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-05-06 01:47:17 +0200apoc(~apoc@49.12.13.193) (Ping timeout: 252 seconds)
2021-05-06 01:48:18 +0200jgt_(~jgt@87.227.221.129)
2021-05-06 01:48:49 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 01:49:10 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 01:52:16 +0200heebo(~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net) (Ping timeout: 265 seconds)
2021-05-06 01:52:45 +0200notzmv(~zmv@unaffiliated/zmv)
2021-05-06 01:59:34 +0200apoc(~apoc@49.12.13.193)
2021-05-06 02:00:32 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
2021-05-06 02:00:52 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-06 02:01:58 +0200stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-05-06 02:02:48 +0200ADG1089(~aditya@122.163.193.183) (Quit: Konversation terminated!)
2021-05-06 02:03:14 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 02:04:35 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2021-05-06 02:08:23 +0200jamm_(~jamm@unaffiliated/jamm)
2021-05-06 02:09:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-05-06 02:12:32 +0200EvilMagix(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-05-06 02:13:07 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 276 seconds)
2021-05-06 02:13:21 +0200proofofkeags(~proofofke@205.209.28.54) (Ping timeout: 246 seconds)
2021-05-06 02:13:26 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 240 seconds)
2021-05-06 02:14:40 +0200LKoen(~LKoen@140.170.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-05-06 02:14:59 +0200stree(~stree@68.36.8.116)
2021-05-06 02:15:04 +0200zmijunkie1(~Adium@87.123.53.7)
2021-05-06 02:16:03 +0200 <jacks2> davean, I'm curious why you dislike RecordDotSyntax? it is far more readable and usable than record syntax we have now. https://www.reddit.com/r/haskell/comments/fu9iq3/recorddotsyntax_ghc_language_extension_proposal/f…
2021-05-06 02:16:20 +0200 <jacks2> and example above doesn't have the ugliest part of current record syntax.. nested updates
2021-05-06 02:16:34 +0200 <Axman6> We use record dot syntax everywhere in DAML, it's great when you have lots of large records
2021-05-06 02:16:36 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-05-06 02:17:08 +0200 <Axman6> (We tend not to do updates of nested parts often though)
2021-05-06 02:17:27 +0200 <jacks2> I realize that there's some subtle incompatibility with function composition, but it seems proposal was very careful to avoid clashes in vast majority of the cases
2021-05-06 02:17:39 +0200solidus-river(~mike@174.127.249.180)
2021-05-06 02:17:53 +0200zmijunkie(~Adium@87.122.212.2) (Ping timeout: 246 seconds)
2021-05-06 02:17:59 +0200 <Axman6> isn't the solution to that basically to make (.) really (. )?
2021-05-06 02:19:39 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 02:20:45 +0200 <jacks2> "Our conclusion" part of in the following link does a good job summarizing when dot is function composition, and when it is record syntax. https://github.com/ghc-proposals/ghc-proposals/pull/282#issuecomment-608329102
2021-05-06 02:22:09 +0200acidjnk_new2(~acidjnk@p200300d0c72b9513e05ff4b2b19e02c9.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-05-06 02:23:11 +0200 <jacks2> I'm not sure about (.) vs (. ), is that a thing. I have no access to ghc 9 to test
2021-05-06 02:23:35 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-sihdpoehqtfnfmbu) (Quit: Connection closed for inactivity)
2021-05-06 02:24:41 +0200bennofs__(~quassel@dynamic-089-012-167-128.89.12.pool.telefonica.de)
2021-05-06 02:26:11 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-05-06 02:26:34 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 02:27:11 +0200 <geekosaur> seems likely, and most people do that anyway
2021-05-06 02:27:18 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Client Quit)
2021-05-06 02:27:40 +0200 <geekosaur> because . not surrounded by spaces already has so many other meanings
2021-05-06 02:28:00 +0200 <Axman6> yeah
2021-05-06 02:28:23 +0200bennofs_(~quassel@dynamic-089-014-149-119.89.14.pool.telefonica.de) (Ping timeout: 246 seconds)
2021-05-06 02:28:45 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 02:30:03 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 02:31:12 +0200nineonin_(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2021-05-06 02:31:57 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Client Quit)
2021-05-06 02:32:50 +0200 <monochrom> https://github.com/treblacy/ep
2021-05-06 02:32:54 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 02:33:32 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2021-05-06 02:37:10 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-05-06 02:37:26 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 02:38:35 +0200 <monochrom> If you started afresh, you could use ∘ for function composition, and then you could have . unambiguously reserved for record field selection.
2021-05-06 02:39:16 +0200 <monochrom> SML uses o for function composition. But it still doesn't use . for field selection, it uses #, and it's "#x p" not "p.x".
2021-05-06 02:40:53 +0200 <monochrom> "readable" is acquired not born.
2021-05-06 02:41:08 +0200 <wrunt> monochrom: it would be good to see the output of the example ep commands in the README. I lazily skimmed the document and couldn't tell what they were supposed to do until I read the description closely.
2021-05-06 02:41:26 +0200 <monochrom> Oh! OK.
2021-05-06 02:41:51 +0200 <wrunt> It looks handy btw :)
2021-05-06 02:42:32 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 02:43:27 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2021-05-06 02:43:44 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-05-06 02:44:11 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-05-06 02:44:44 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 02:45:43 +0200s_ka[m](skamatrixo@gateway/shell/matrix.org/x-aqszwesagrgqpvwy)
2021-05-06 02:46:50 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 02:48:32 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
2021-05-06 02:48:54 +0200 <monochrom> Pushed!
2021-05-06 02:48:59 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-06 02:49:16 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-05-06 02:49:19 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-05-06 02:51:02 +0200 <wrunt> The effect of 'eval $(ep prepend /usr/local/ghcup/bin)' still isn't obvious at first glance. Maybe 'ep print' before and after, or just 'echo $PATH'?
2021-05-06 02:52:30 +0200 <wrunt> I'm being very fussy -- the docs are fine as-is.
2021-05-06 02:52:33 +0200hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 252 seconds)
2021-05-06 02:52:53 +0200 <monochrom> haha maybe next time
2021-05-06 02:53:08 +0200hyiltiz(~quassel@31.220.5.250)
2021-05-06 02:53:09 +0200hyiltiz(~quassel@31.220.5.250) (Changing host)
2021-05-06 02:53:09 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-05-06 02:54:14 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-05-06 02:56:28 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-06 02:56:50 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-06 02:57:26 +0200elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-05-06 02:57:30 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-05-06 02:57:41 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-06 02:59:09 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-05-06 02:59:09 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-05-06 03:01:45 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 03:02:02 +0200s_ka[m](skamatrixo@gateway/shell/matrix.org/x-aqszwesagrgqpvwy) ("User left")
2021-05-06 03:02:07 +0200ADG1089(~aditya@122.163.193.183)
2021-05-06 03:12:41 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-05-06 03:13:48 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-05-06 03:14:19 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 03:14:40 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 03:15:19 +0200vchlup_(~vchlup@nat.brnet.cz)
2021-05-06 03:15:20 +0200DTZUZU_(~DTZUZO@205.ip-149-56-132.net)
2021-05-06 03:15:31 +0200davve(davve@bsd.douchedata.com)
2021-05-06 03:15:48 +0200ahri(~ahri@178.209.40.84) (Quit: Ping timeout (120 seconds))
2021-05-06 03:15:50 +0200vchlup(~vchlup@nat.brnet.cz) (Remote host closed the connection)
2021-05-06 03:15:50 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net) (Read error: No route to host)
2021-05-06 03:15:50 +0200davve_(davve@bsd.douchedata.com) (Read error: Connection reset by peer)
2021-05-06 03:16:10 +0200ahri(~ahri@178.209.40.84)
2021-05-06 03:16:21 +0200motersen(~motersen@gateway/tor-sasl/motersen) (Ping timeout: 240 seconds)
2021-05-06 03:16:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 03:16:29 +0200pavonia_(~user@unaffiliated/siracusa)
2021-05-06 03:16:46 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-05-06 03:16:48 +0200dminuoso(~dminuoso@unaffiliated/dminuoso) (Quit: ZNC 1.7.5 - https://znc.in)
2021-05-06 03:16:49 +0200blissful(~blissful@unaffiliated/azuline) (Quit: owo)
2021-05-06 03:17:09 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2021-05-06 03:17:11 +0200blissful(~blissful@unaffiliated/azuline)
2021-05-06 03:17:13 +0200pavonia(~user@unaffiliated/siracusa) (Read error: Connection reset by peer)
2021-05-06 03:17:17 +0200pavonia_pavonia
2021-05-06 03:17:26 +0200tv(~tv@unaffiliated/tv) (Ping timeout: 240 seconds)
2021-05-06 03:17:37 +0200ADG1089_(~aditya@122.163.193.183)
2021-05-06 03:17:38 +0200ADG1089(~aditya@122.163.193.183) (Remote host closed the connection)
2021-05-06 03:17:52 +0200Lowl3v3l(~Lowl3v3l@dslb-002-203-255-063.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-05-06 03:18:09 +0200motersen(~motersen@gateway/tor-sasl/motersen)
2021-05-06 03:18:23 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-05-06 03:18:34 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-05-06 03:18:41 +0200drbean_(~drbean@TC210-63-209-94.static.apol.com.tw)
2021-05-06 03:18:55 +0200EvilMagix(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 260 seconds)
2021-05-06 03:18:58 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
2021-05-06 03:19:04 +0200Lowl3v3l(~Lowl3v3l@dslb-002-203-255-063.002.203.pools.vodafone-ip.de)
2021-05-06 03:19:20 +0200tv(~tv@unaffiliated/tv)
2021-05-06 03:19:53 +0200EvilMagix(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-05-06 03:20:02 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 03:20:04 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de)
2021-05-06 03:21:01 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 03:21:15 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 03:21:46 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-05-06 03:22:37 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 03:23:20 +0200dsrt^(nctrf@ip98-184-89-2.mc.at.cox.net) ()
2021-05-06 03:26:07 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds)
2021-05-06 03:27:29 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-05-06 03:30:42 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds)
2021-05-06 03:30:52 +0200elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net)
2021-05-06 03:30:55 +0200heebo(~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net)
2021-05-06 03:32:54 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-05-06 03:33:51 +0200xff0x(~xff0x@2001:1a81:524c:8600:3977:cccd:52e7:e6c0) (Ping timeout: 260 seconds)
2021-05-06 03:34:02 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-05-06 03:34:35 +0200ADG1089_(~aditya@122.163.193.183) (Quit: Konversation terminated!)
2021-05-06 03:35:49 +0200xff0x(~xff0x@2001:1a81:5284:1d00:fc89:b54a:8d08:1b37)
2021-05-06 03:42:24 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-06 03:44:45 +0200motersen(~motersen@gateway/tor-sasl/motersen) (Ping timeout: 240 seconds)
2021-05-06 03:45:50 +0200motersen(~motersen@gateway/tor-sasl/motersen)
2021-05-06 03:47:42 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-05-06 03:48:26 +0200nek0(~nek0@mail.nek0.eu) (Remote host closed the connection)
2021-05-06 03:48:31 +0200SIben(~SIben@ns3106586.ip-5-135-191.eu)
2021-05-06 03:48:44 +0200m1dnight1(~m1dnight@188.ip-51-91-158.eu)
2021-05-06 03:50:13 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 03:52:20 +0200pounce_(~pounce@ns379743.ip-5-196-70.eu)
2021-05-06 03:52:48 +0200gentauro(~gentauro@unaffiliated/gentauro) (*.net *.split)
2021-05-06 03:52:48 +0200jao(~jao@pdpc/supporter/professional/jao) (*.net *.split)
2021-05-06 03:52:49 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (*.net *.split)
2021-05-06 03:52:49 +0200fendor_(~fendor@91.141.1.157.wireless.dyn.drei.com) (*.net *.split)
2021-05-06 03:52:50 +0200raym(~ray@45.64.220.116) (*.net *.split)
2021-05-06 03:52:50 +0200Natch(~Natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (*.net *.split)
2021-05-06 03:52:50 +0200lurkless(~ll@unaffiliated/lurkless) (*.net *.split)
2021-05-06 03:52:50 +0200ystael(~ystael@209.6.50.55) (*.net *.split)
2021-05-06 03:52:51 +0200dave_uy(~david@108.61.193.26) (*.net *.split)
2021-05-06 03:52:51 +0200hackage(mniip@haskell/bot/hackage) (*.net *.split)
2021-05-06 03:52:51 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (*.net *.split)
2021-05-06 03:52:51 +0200vent(~vent@185.62.190.213) (*.net *.split)
2021-05-06 03:52:51 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com) (*.net *.split)
2021-05-06 03:52:51 +0200Arahael(~arahael@123-243-38-74.tpgi.com.au) (*.net *.split)
2021-05-06 03:52:52 +0200m1dnight_(~m1dnight@188.ip-51-91-158.eu) (*.net *.split)
2021-05-06 03:52:52 +0200mantovani(~mantovani@104.131.207.121) (*.net *.split)
2021-05-06 03:52:52 +0200polux2001(~polux@51.15.169.172) (*.net *.split)
2021-05-06 03:52:52 +0200Madars(~null@unaffiliated/madars) (*.net *.split)
2021-05-06 03:52:52 +0200russruss(~russruss@my.russellmcc.com) (*.net *.split)
2021-05-06 03:52:52 +0200cgfbee(~bot@oc1.itim-cj.ro) (*.net *.split)
2021-05-06 03:52:52 +0200jrm(~jrm@freebsd/developer/jrm) (*.net *.split)
2021-05-06 03:52:53 +0200jameekim2(~jameekim@mx.nodaplife.me) (*.net *.split)
2021-05-06 03:52:53 +0200towel(~towel@unaffiliated/towel) (*.net *.split)
2021-05-06 03:52:53 +0200Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (*.net *.split)
2021-05-06 03:52:53 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (*.net *.split)
2021-05-06 03:52:54 +0200SIben_(~SIben@ns3106586.ip-5-135-191.eu) (*.net *.split)
2021-05-06 03:52:55 +0200davean(~davean@davean.sciesnet.net) (*.net *.split)
2021-05-06 03:52:55 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net) (*.net *.split)
2021-05-06 03:52:55 +0200st13g(~quassel@47.90.246.232) (*.net *.split)
2021-05-06 03:52:55 +0200liyang(~liyang@90.255.129.199) (*.net *.split)
2021-05-06 03:52:55 +0200marble_visions(~user@68.183.79.8) (*.net *.split)
2021-05-06 03:52:55 +0200_ashbreeze_(~mark@64.85.214.234.reverse.socket.net) (*.net *.split)
2021-05-06 03:52:56 +0200conkker(~conkker@unaffiliated/conkker) (*.net *.split)
2021-05-06 03:52:56 +0200tristanC(~tristanC@unaffiliated/tristanc) (*.net *.split)
2021-05-06 03:52:56 +0200pieguy128_(~pieguy128@bas1-quebec14-67-70-101-46.dsl.bell.ca) (*.net *.split)
2021-05-06 03:52:56 +0200vancz(~vancz@unaffiliated/vancz) (*.net *.split)
2021-05-06 03:52:56 +0200esph(~weechat@unaffiliated/esph) (*.net *.split)
2021-05-06 03:52:56 +0200mrd(~mrd@debian/developer/mrd) (*.net *.split)
2021-05-06 03:52:57 +0200jvanbure_(~jvanbure@159.65.233.183) (*.net *.split)
2021-05-06 03:52:57 +0200tstat(~tstat@104.131.113.212) (*.net *.split)
2021-05-06 03:52:57 +0200lockshaw_(~lockshaw@165.22.163.71) (*.net *.split)
2021-05-06 03:52:57 +0200nshepperd2(~nshepperd@li364-218.members.linode.com) (*.net *.split)
2021-05-06 03:52:57 +0200kqr(~kqr@vps.xkqr.org) (*.net *.split)
2021-05-06 03:52:57 +0200zymurgy(~zymurgy@li607-220.members.linode.com) (*.net *.split)
2021-05-06 03:52:57 +0200acro(~acro@unaffiliated/acro) (*.net *.split)
2021-05-06 03:52:57 +0200loc(~loc@unaffiliated/loc) (*.net *.split)
2021-05-06 03:52:57 +0200Aleksejs(~Aleksejs@haskell.lv) (*.net *.split)
2021-05-06 03:52:57 +0200pounce(~pounce@ns379743.ip-5-196-70.eu) (*.net *.split)
2021-05-06 03:52:58 +0200djanatyn_(~djanatyn@ec2-18-209-155-56.compute-1.amazonaws.com) (*.net *.split)
2021-05-06 03:52:58 +0200pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com) (*.net *.split)
2021-05-06 03:52:58 +0200fr33domlover(~fr33domlo@angeley.es) (*.net *.split)
2021-05-06 03:52:58 +0200shreyasminocha(~shreyasmi@unaffiliated/shreyasminocha) (*.net *.split)
2021-05-06 03:52:58 +0200remexre(~nathan@207-153-38-50.fttp.usinternet.com) (*.net *.split)
2021-05-06 03:52:58 +0200stvc(~stvc@192.241.166.39) (*.net *.split)
2021-05-06 03:52:58 +0200tasuki(~tasuki@198.211.120.27) (*.net *.split)
2021-05-06 03:52:59 +0200eagleflo(~aku@eagleflow.fi) (*.net *.split)
2021-05-06 03:52:59 +0200gargawel(~gael@212.83.144.58) (*.net *.split)
2021-05-06 03:52:59 +0200heath(~heath@unaffiliated/ybit) (*.net *.split)
2021-05-06 03:52:59 +0200Kneiva_(kneiva@raah.fi) (*.net *.split)
2021-05-06 03:52:59 +0200relrod(~relrod@redhat/ansible.staff.relrod) (*.net *.split)
2021-05-06 03:52:59 +0200deni(~deni@unaffiliated/deni) (*.net *.split)
2021-05-06 03:52:59 +0200wayne(~wayne@unaffiliated/wayne) (*.net *.split)
2021-05-06 03:52:59 +0200dredozubov(~dredozubo@37.139.21.214) (*.net *.split)
2021-05-06 03:53:39 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 03:54:06 +0200nek0(~nek0@mail.nek0.eu)
2021-05-06 03:54:06 +0200gentauro(~gentauro@unaffiliated/gentauro)
2021-05-06 03:54:06 +0200jao(~jao@pdpc/supporter/professional/jao)
2021-05-06 03:54:06 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-05-06 03:54:06 +0200fendor_(~fendor@91.141.1.157.wireless.dyn.drei.com)
2021-05-06 03:54:06 +0200raym(~ray@45.64.220.116)
2021-05-06 03:54:06 +0200Natch(~Natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-05-06 03:54:06 +0200lurkless(~ll@unaffiliated/lurkless)
2021-05-06 03:54:06 +0200ystael(~ystael@209.6.50.55)
2021-05-06 03:54:06 +0200dave_uy(~david@108.61.193.26)
2021-05-06 03:54:06 +0200hackage(mniip@haskell/bot/hackage)
2021-05-06 03:54:06 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-05-06 03:54:06 +0200vent(~vent@185.62.190.213)
2021-05-06 03:54:06 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
2021-05-06 03:54:06 +0200mantovani(~mantovani@104.131.207.121)
2021-05-06 03:54:06 +0200polux2001(~polux@51.15.169.172)
2021-05-06 03:54:06 +0200Madars(~null@unaffiliated/madars)
2021-05-06 03:54:06 +0200russruss(~russruss@my.russellmcc.com)
2021-05-06 03:54:06 +0200cgfbee(~bot@oc1.itim-cj.ro)
2021-05-06 03:54:06 +0200jrm(~jrm@freebsd/developer/jrm)
2021-05-06 03:54:06 +0200jameekim2(~jameekim@mx.nodaplife.me)
2021-05-06 03:54:06 +0200towel(~towel@unaffiliated/towel)
2021-05-06 03:54:06 +0200Foritus(~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
2021-05-06 03:54:06 +0200quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-05-06 03:54:06 +0200davean(~davean@davean.sciesnet.net)
2021-05-06 03:54:06 +0200SupaYoshi(~supayoshi@213-10-140-13.fixed.kpn.net)
2021-05-06 03:54:06 +0200st13g(~quassel@47.90.246.232)
2021-05-06 03:54:06 +0200liyang(~liyang@90.255.129.199)
2021-05-06 03:54:06 +0200marble_visions(~user@68.183.79.8)
2021-05-06 03:54:06 +0200_ashbreeze_(~mark@64.85.214.234.reverse.socket.net)
2021-05-06 03:54:06 +0200conkker(~conkker@unaffiliated/conkker)
2021-05-06 03:54:06 +0200tristanC(~tristanC@unaffiliated/tristanc)
2021-05-06 03:54:06 +0200pieguy128_(~pieguy128@bas1-quebec14-67-70-101-46.dsl.bell.ca)
2021-05-06 03:54:06 +0200vancz(~vancz@unaffiliated/vancz)
2021-05-06 03:54:06 +0200esph(~weechat@unaffiliated/esph)
2021-05-06 03:54:06 +0200mrd(~mrd@debian/developer/mrd)
2021-05-06 03:54:06 +0200jvanbure_(~jvanbure@159.65.233.183)
2021-05-06 03:54:06 +0200tstat(~tstat@104.131.113.212)
2021-05-06 03:54:06 +0200lockshaw_(~lockshaw@165.22.163.71)
2021-05-06 03:54:06 +0200nshepperd2(~nshepperd@li364-218.members.linode.com)
2021-05-06 03:54:06 +0200kqr(~kqr@vps.xkqr.org)
2021-05-06 03:54:06 +0200zymurgy(~zymurgy@li607-220.members.linode.com)
2021-05-06 03:54:06 +0200acro(~acro@unaffiliated/acro)
2021-05-06 03:54:06 +0200loc(~loc@unaffiliated/loc)
2021-05-06 03:54:06 +0200Aleksejs(~Aleksejs@haskell.lv)
2021-05-06 03:54:06 +0200djanatyn_(~djanatyn@ec2-18-209-155-56.compute-1.amazonaws.com)
2021-05-06 03:54:06 +0200pdxleif(~pdxleif@ec2-54-68-166-10.us-west-2.compute.amazonaws.com)
2021-05-06 03:54:06 +0200fr33domlover(~fr33domlo@angeley.es)
2021-05-06 03:54:06 +0200shreyasminocha(~shreyasmi@unaffiliated/shreyasminocha)
2021-05-06 03:54:06 +0200eagleflo(~aku@eagleflow.fi)
2021-05-06 03:54:06 +0200remexre(~nathan@207-153-38-50.fttp.usinternet.com)
2021-05-06 03:54:06 +0200tasuki(~tasuki@198.211.120.27)
2021-05-06 03:54:06 +0200stvc(~stvc@192.241.166.39)
2021-05-06 03:54:06 +0200deni(~deni@unaffiliated/deni)
2021-05-06 03:54:06 +0200relrod(~relrod@redhat/ansible.staff.relrod)
2021-05-06 03:54:06 +0200heath(~heath@unaffiliated/ybit)
2021-05-06 03:54:06 +0200dredozubov(~dredozubo@37.139.21.214)
2021-05-06 03:54:06 +0200wayne(~wayne@unaffiliated/wayne)
2021-05-06 03:54:06 +0200Kneiva_(kneiva@raah.fi)
2021-05-06 03:54:06 +0200gargawel(~gael@212.83.144.58)
2021-05-06 03:54:09 +0200cgfbee(~bot@oc1.itim-cj.ro) (Max SendQ exceeded)
2021-05-06 03:54:10 +0200lurkless(~ll@unaffiliated/lurkless) (Max SendQ exceeded)
2021-05-06 03:54:10 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com) (Max SendQ exceeded)
2021-05-06 03:54:32 +0200Arahael(~arahael@123-243-38-74.tpgi.com.au)
2021-05-06 03:55:07 +0200lurkless(~ll@unaffiliated/lurkless)
2021-05-06 03:55:31 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2021-05-06 03:55:42 +0200parseval(sid239098@gateway/web/irccloud.com/x-kgsjdvzwchusspuk) (Ping timeout: 240 seconds)
2021-05-06 03:55:54 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-05-06 03:56:02 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 03:56:22 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 03:56:32 +0200parseval(sid239098@gateway/web/irccloud.com/x-qxdhevwqugvcrybv)
2021-05-06 03:57:19 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 03:57:26 +0200heebo(~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net) (Ping timeout: 268 seconds)
2021-05-06 03:58:01 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-05-06 03:58:03 +0200cgfbee(~bot@oc1.itim-cj.ro)
2021-05-06 04:00:04 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-05-06 04:01:57 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2021-05-06 04:02:26 +0200CrazyPython(~crazypyth@98.122.164.118) (Read error: Connection reset by peer)
2021-05-06 04:02:58 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-05-06 04:03:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-05-06 04:04:15 +0200ram19890(~ram@49.205.84.15)
2021-05-06 04:08:17 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 04:09:03 +0200 <cdsmith> Ugh, I'm too tired to think, and I want a concat-like thing, but (Traversable t, Applicative f) => t (f (t a)) -> f (t a).  This seems like it should be obvious...
2021-05-06 04:09:37 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-06 04:09:55 +0200 <cdsmith> % :t fmap concat . sequenceA
2021-05-06 04:09:55 +0200 <yahb> cdsmith: (Traversable t, Applicative f) => t (f [a]) -> f [a]
2021-05-06 04:10:04 +0200Natch(~Natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Read error: Connection reset by peer)
2021-05-06 04:10:07 +0200 <cdsmith> Okay, that's it, yeah
2021-05-06 04:11:11 +0200 <edwardk> :t fmap join . sequence
2021-05-06 04:11:13 +0200 <lambdabot> (Traversable m, Monad m, Monad f) => m (f (m a)) -> f (m a)
2021-05-06 04:11:38 +0200 <edwardk> :t fmap join . sequenceA
2021-05-06 04:11:39 +0200 <lambdabot> (Monad m, Traversable m, Applicative f) => m (f (m a)) -> f (m a)
2021-05-06 04:14:15 +0200vs^(~hph@ip98-184-89-2.mc.at.cox.net)
2021-05-06 04:14:27 +0200Natch(~Natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-05-06 04:15:08 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds)
2021-05-06 04:15:49 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-05-06 04:16:54 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 04:17:23 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-05-06 04:19:03 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f) (Remote host closed the connection)
2021-05-06 04:19:23 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2021-05-06 04:20:06 +0200nicholasbulka(~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net)
2021-05-06 04:20:25 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
2021-05-06 04:22:18 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-05-06 04:23:21 +0200stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-05-06 04:23:23 +0200chisui(59f77c9f@i59F77C9F.versanet.de) (Ping timeout: 240 seconds)
2021-05-06 04:23:33 +0200theDon(~td@muedsl-82-207-238-245.citykom.de) (Ping timeout: 265 seconds)
2021-05-06 04:24:11 +0200nicholasbulka(~nicholasb@c-73-21-82-200.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
2021-05-06 04:24:12 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-05-06 04:24:38 +0200 <cdsmith> TH question: reifyInstances will look up instances for a type.  However, for example, `reifyInstances ''Show [ ConT ''String ]` returns `Show a0 => Show [a0]`.  Is there any way to get TH to actually unify the types and recognize that a0 ~ Char, and that the context is already satisfied?  Or is that asking too much?
2021-05-06 04:25:06 +0200theDon(~td@muedsl-82-207-238-051.citykom.de)
2021-05-06 04:29:17 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-05-06 04:31:16 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-05-06 04:31:16 +0200finn_elijaGuest21806
2021-05-06 04:31:16 +0200FinnElijafinn_elija
2021-05-06 04:31:33 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-06 04:32:32 +0200dpl(~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 240 seconds)
2021-05-06 04:33:03 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds)
2021-05-06 04:33:18 +0200 <infinisil> @djinn (Traversable t, Applicative f) => t (f (t a)) -> f (t a)
2021-05-06 04:33:18 +0200 <lambdabot> Error: Class not found: Traversable
2021-05-06 04:33:26 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 04:33:36 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Remote host closed the connection)
2021-05-06 04:34:05 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-05-06 04:34:45 +0200Guest21806(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-05-06 04:35:41 +0200 <edwardk> infinisil: djinn sucks at handling classes
2021-05-06 04:35:49 +0200 <edwardk> cdsmith: too much to ask ;)
2021-05-06 04:36:02 +0200stree(~stree@68.36.8.116)
2021-05-06 04:36:19 +0200 <infinisil> Hmm..
2021-05-06 04:36:25 +0200 <cdsmith> @djinn Applicative f => [f [a]] -> f [a]
2021-05-06 04:36:25 +0200 <lambdabot> Error: Undefined type []
2021-05-06 04:36:38 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net) (Quit: Connection closed)
2021-05-06 04:36:50 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 04:37:07 +0200 <cdsmith> Huh
2021-05-06 04:41:16 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-kxfslznamczviegw) ()
2021-05-06 04:41:50 +0200 <cdsmith> edwardk: Okay, I kinda figured that, but... since GHC is there, I hoped it could maybe do the things GHC is good at. :(
2021-05-06 04:41:56 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 04:42:02 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Client Quit)
2021-05-06 04:44:00 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 04:45:03 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2021-05-06 04:45:12 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-05-06 04:48:00 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-05-06 04:48:14 +0200 <olligobber> % :t fmap fold . sequenceA
2021-05-06 04:48:14 +0200 <yahb> olligobber: (Monoid b, Traversable t, Applicative f) => t (f b) -> f b
2021-05-06 04:48:29 +0200hexfive(~hexfive@50.35.83.177)
2021-05-06 04:48:46 +0200hexfive(~hexfive@50.35.83.177) (Client Quit)
2021-05-06 04:48:48 +0200 <olligobber> % :t fmap join . sequenceA
2021-05-06 04:48:48 +0200 <yahb> olligobber: (Monad m, Traversable m, Applicative f) => m (f (m a)) -> f (m a)
2021-05-06 04:49:05 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-05-06 04:51:21 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 260 seconds)
2021-05-06 04:56:18 +0200reaverb(~reaverb@071-008-105-088.res.spectrum.com)
2021-05-06 04:56:49 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2021-05-06 04:57:39 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-05-06 04:58:10 +0200Stanley00(~stanley00@unaffiliated/stanley00) (Read error: Connection reset by peer)
2021-05-06 05:01:43 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 05:01:50 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Client Quit)
2021-05-06 05:03:37 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 05:03:38 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 05:04:00 +0200Stanley00(~stanley00@unaffiliated/stanley00)
2021-05-06 05:04:18 +0200solidus-river(~mike@174.127.249.180) (Remote host closed the connection)
2021-05-06 05:04:21 +0200xkapastel(uid17782@gateway/web/irccloud.com/x-xdfnhccwmydbykch) (Quit: Connection closed for inactivity)
2021-05-06 05:14:14 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 05:14:16 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 05:14:39 +0200rajivr(uid269651@gateway/web/irccloud.com/x-wpklepfaafxblxec)
2021-05-06 05:14:40 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 05:15:10 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 05:15:15 +0200Stanley00(~stanley00@unaffiliated/stanley00) ()
2021-05-06 05:15:34 +0200ram19890(~ram@49.205.84.15) (Ping timeout: 252 seconds)
2021-05-06 05:18:53 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
2021-05-06 05:19:11 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-05-06 05:19:30 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-05-06 05:21:30 +0200carlomagno(~cararell@148.87.23.12) (Quit: Leaving.)
2021-05-06 05:21:37 +0200nineonine(~nineonine@50.216.62.2)
2021-05-06 05:21:42 +0200nineonine(~nineonine@50.216.62.2) (Remote host closed the connection)
2021-05-06 05:22:15 +0200nineonine(~nineonine@50.216.62.2)
2021-05-06 05:28:58 +0200jamm_(~jamm@unaffiliated/jamm)
2021-05-06 05:31:09 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f)
2021-05-06 05:31:15 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 05:32:15 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 05:35:38 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 246 seconds)
2021-05-06 05:36:05 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 252 seconds)
2021-05-06 05:36:29 +0200notzmv(~zmv@unaffiliated/zmv)
2021-05-06 05:37:13 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f) (Ping timeout: 276 seconds)
2021-05-06 05:37:35 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-05-06 05:38:21 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2021-05-06 05:38:58 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 05:40:44 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-05-06 05:41:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-05-06 05:41:22 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 05:45:49 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 252 seconds)
2021-05-06 05:46:14 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 05:50:41 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-05-06 06:02:34 +0200EvilMagix(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 276 seconds)
2021-05-06 06:03:32 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-05-06 06:08:42 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 06:10:11 +0200electricityZZZZ(~electrici@157-131-250-97.fiber.dynamic.sonic.net) (Ping timeout: 252 seconds)
2021-05-06 06:12:03 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-06 06:12:52 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com) (Read error: Connection reset by peer)
2021-05-06 06:13:19 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 252 seconds)
2021-05-06 06:14:16 +0200evanjs(~evanjs@075-129-098-007.res.spectrum.com)
2021-05-06 06:17:56 +0200plutoniix(~q@ppp-58-8-148-20.revip2.asianet.co.th)
2021-05-06 06:23:08 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-06 06:24:32 +0200drbean_(~drbean@TC210-63-209-94.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2021-05-06 06:25:25 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com) ()
2021-05-06 06:36:05 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 06:43:39 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 06:43:52 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-05-06 06:43:55 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 06:45:56 +0200 <gnumonic> not strictly a haskell question but: anyone know of a good quick primer for SML? i keep running into old FP articles that use it and I'd like to be able to translate them to haskell without guessing at how SML works
2021-05-06 06:46:09 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 06:49:09 +0200 <dmj`> gnumonic: which FP articles?
2021-05-06 06:49:37 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds)
2021-05-06 06:50:43 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-05-06 06:51:19 +0200 <gnumonic> Most recently "Implementing Sets Efficiently in a Functional Language" on balanced binary trees, but also I'm kind of tired of trying to match up the Haskell code in the appendix with the SML code in the text in "Purely Functional Data Structures"
2021-05-06 06:51:40 +0200 <gnumonic> Figure it'd be easier if I just learned a bit of SML
2021-05-06 06:53:35 +0200 <dmj`> gnumonic: I have the PFDS books, there are Haskell versions in the appendices. Check page 185 https://doc.lagout.org/programmation/Functional%20Programming/Chris_Okasaki-Purely_Functional_Data…
2021-05-06 06:55:39 +0200vs^(~hph@ip98-184-89-2.mc.at.cox.net) ()
2021-05-06 06:56:39 +0200 <gnumonic> I know the Haskell code is there but I just really hate flipping back and forth. I guess I could get some scissors and a stapler... (have a paper copy)
2021-05-06 06:57:32 +0200stree(~stree@68.36.8.116)
2021-05-06 06:58:17 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
2021-05-06 06:58:37 +0200reaverb(~reaverb@071-008-105-088.res.spectrum.com) (Read error: Connection reset by peer)
2021-05-06 07:10:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-05-06 07:12:01 +0200dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net)
2021-05-06 07:12:35 +0200jao(~jao@pdpc/supporter/professional/jao) (Ping timeout: 246 seconds)
2021-05-06 07:12:49 +0200lovesegfault(~bemeurer@37.219.94.34.bc.googleusercontent.com) (Quit: WeeChat 3.0.1)
2021-05-06 07:12:56 +0200raym(~ray@45.64.220.116) (Quit: leaving)
2021-05-06 07:17:27 +0200Eramdam1(~Eramdam@185.204.1.185) (Remote host closed the connection)
2021-05-06 07:17:30 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-05-06 07:18:13 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-05-06 07:18:56 +0200othe1(~othe@139.28.218.148)
2021-05-06 07:21:58 +0200nineonin_(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 07:25:46 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 265 seconds)
2021-05-06 07:29:01 +0200rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-05-06 07:40:44 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-05-06 07:41:29 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 07:41:32 +0200mounty(~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 240 seconds)
2021-05-06 07:41:59 +0200rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
2021-05-06 07:44:37 +0200 <DigitalKiwi> gnumonic: i really liked this https://www.coursera.org/learn/programming-languages
2021-05-06 07:45:17 +0200 <DigitalKiwi> i did a bunch of the problems in haskell and sml
2021-05-06 07:45:26 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-05-06 07:45:50 +0200 <DigitalKiwi> dmj`: doc.lagout.org+++
2021-05-06 07:47:05 +0200 <DigitalKiwi> it has over 500gb of pdfs last i checked... a few that don't exist anywhere else too.. like that one ;p
2021-05-06 07:48:03 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-05-06 07:48:48 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:341c:1f82:ae5b:39ec)
2021-05-06 07:49:14 +0200zaquest(~notzaques@5.128.210.178)
2021-05-06 07:57:40 +0200Kortantic(43b122a6@c-67-177-34-166.hsd1.ut.comcast.net)
2021-05-06 07:58:11 +0200pieguy128_(~pieguy128@bas1-quebec14-67-70-101-46.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2021-05-06 07:58:30 +0200pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-47-67-70-101-46.dsl.bell.ca)
2021-05-06 07:58:40 +0200Kortantic(43b122a6@c-67-177-34-166.hsd1.ut.comcast.net) (Client Quit)
2021-05-06 08:02:25 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 08:03:08 +0200 <xerox_> can anyone think of a different way to write this that is somehow better? https://pastebin.com/raw/i0RG2Dkc I can't see how to avoid producing the Bool and just use the result of the guard comparison whilst returning the correct second element of the pair, conditional on the direction
2021-05-06 08:04:59 +0200 <xerox_> lil typo on the directions while massaging this down to a more manageable snippet of code :) https://pastebin.com/raw/8xtjrCMS
2021-05-06 08:06:50 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-05-06 08:06:54 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 08:08:52 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f)
2021-05-06 08:09:00 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-05-06 08:09:36 +0200thc202(~thc202@unaffiliated/thc202)
2021-05-06 08:11:35 +0200Codaraxis(~Codaraxis@92.223.89.162)
2021-05-06 08:12:46 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 240 seconds)
2021-05-06 08:14:27 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f) (Ping timeout: 250 seconds)
2021-05-06 08:15:18 +0200Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 260 seconds)
2021-05-06 08:16:53 +0200wonko7(~wonko7@62.115.229.50) (Quit: See You Space Cowboy..)
2021-05-06 08:16:59 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-05-06 08:23:19 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 08:24:23 +0200Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 252 seconds)
2021-05-06 08:24:32 +0200ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 240 seconds)
2021-05-06 08:25:47 +0200anandprabhu(~AnandPrab@94.202.236.255)
2021-05-06 08:25:59 +0200 <siers> what am I doning wrong here? http://sprunge.us/aLE3jD instance (Enum a) => (Cyclic a) where ... is complaining about Illegal isntance declaration
2021-05-06 08:27:03 +0200malumore(~malumore@151.62.126.202)
2021-05-06 08:29:52 +0200mceier(~mceier@89-68-132-187.dynamic.chello.pl) (Ping timeout: 240 seconds)
2021-05-06 08:30:00 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 08:30:20 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-05-06 08:30:21 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 08:31:01 +0200 <Axman6> What does the error say? I think it tells yuo how to fix the problem ;)
2021-05-06 08:35:28 +0200 <siers> ah, I guess a1 is needed in T a1 ... an, but I have just T
2021-05-06 08:35:51 +0200bahamas(~lucian@unaffiliated/bahamas)
2021-05-06 08:36:24 +0200mceier(~mceier@89-68-132-187.dynamic.chello.pl)
2021-05-06 08:37:58 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-05-06 08:39:59 +0200 <siers> ok, I still can't write it http://sprunge.us/lAcoqZ
2021-05-06 08:41:53 +0200 <siers> the idea is to get Cyclic instances free for all bounded enums
2021-05-06 08:44:42 +0200xprl-gjf(~gavin@98.154.147.147.dyn.plus.net)
2021-05-06 08:47:26 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-05-06 08:47:54 +0200Varis(~Tadas@unaffiliated/varis)
2021-05-06 08:48:19 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 08:48:28 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-05-06 08:52:06 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-05-06 08:52:41 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-05-06 08:58:20 +0200michalz(~user@185.246.204.43)
2021-05-06 09:03:12 +0200olle(~olle@i577BC827.versanet.de)
2021-05-06 09:04:42 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-05-06 09:05:03 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-05-06 09:05:39 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-05-06 09:05:46 +0200howdoi(uid224@gateway/web/irccloud.com/x-txrflotqmtwxkura) (Quit: Connection closed for inactivity)
2021-05-06 09:06:24 +0200 <olle> Question about code organization. Imagine you have a Point module, properties x and y, and three functions: save, draw, area
2021-05-06 09:06:43 +0200 <olle> You also have Rectangle
2021-05-06 09:06:56 +0200 <olle> And you want to organize modules in different shapes
2021-05-06 09:07:55 +0200 <olle> Rectangle has properties two points (bottomLeft, topRight)
2021-05-06 09:08:45 +0200 <olle> In an OOP perspective, it was an open question if save and draw belongs together with area or not, since save and draw are both effectful and depend on services from the outside, say dbConnection and surface.
2021-05-06 09:09:50 +0200 <olle> But I guess in FP you'd just do type shape = Point {x, y} | Rectangle {Point, Point}, and then area would pattern match on all shapes.
2021-05-06 09:09:54 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 09:10:07 +0200 <tdammers> that depends on the kind of extensibility you need
2021-05-06 09:10:15 +0200 <tdammers> and how far you want to take type safety
2021-05-06 09:10:15 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 09:10:18 +0200 <olle> tdammers: That's the thing, right?
2021-05-06 09:10:36 +0200 <olle> In OOP it's also a question of class vs modular cohesion.
2021-05-06 09:10:50 +0200Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
2021-05-06 09:11:03 +0200 <tdammers> you could just do `data Shape = Shape { shapeType :: Text, shapeData :: [Point] }`, and then validate data on the consumer side
2021-05-06 09:12:10 +0200 <tdammers> but you actually have several decisions to make here
2021-05-06 09:12:33 +0200 <tdammers> first one is what the data structures themselves look like, second one is how you design operations on them
2021-05-06 09:13:24 +0200 <tdammers> for the second one, I'd recommend a mindset of "pushing effects out to the edges" - that is, aim to keep as much of your logic as possible free of effects
2021-05-06 09:13:45 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-05-06 09:14:15 +0200 <tdammers> for example, your first design for `save` might be that each type of shape has its own distinct code for storing it in a database. that's fine in principle, but it means that you have effects close to your core data structures
2021-05-06 09:14:41 +0200 <tdammers> instead, you could try and push that effectfulness out, by defining an auxiliary type that sits between the pure logic and the database
2021-05-06 09:15:20 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 09:16:42 +0200 <tdammers> e.g., you could have data Point = Point Double Double; data Rectangle = Rectangle Point Point; and then *also* data DBShape { shapeType :: ShapeType, shapeData :: [Point] }. And then you'd say class IsDBShape a where { toDBShape :: a -> ToDBShape; fromDBShape :: DBShape -> Maybe a }, write instances for both shapes, and write a generic save function that stores DBShapes
2021-05-06 09:17:27 +0200 <olle> tdammers: OK, so here's a goal: When adding a new shape, say Circle, I shouldn't have to touch old code.
2021-05-06 09:18:27 +0200Varis(~Tadas@unaffiliated/varis)
2021-05-06 09:18:49 +0200stree(~stree@68.36.8.116)
2021-05-06 09:19:00 +0200 <tdammers> that's pretty much impossible. it's impossible in OOP too.
2021-05-06 09:19:11 +0200 <tdammers> you will have to touch *something*
2021-05-06 09:19:27 +0200 <olle> Actually, you can use reflection in OOP to load dynamically whatever.
2021-05-06 09:19:31 +0200 <olle> But yeah
2021-05-06 09:19:38 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-05-06 09:19:54 +0200 <dibblego> it's possible, but not with reflection
2021-05-06 09:19:57 +0200jacks2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/)
2021-05-06 09:19:59 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-06 09:20:03 +0200 <olle> tdammers: Would you put dbshape in a separate module?
2021-05-06 09:20:07 +0200jacks2(~bc8134e3@217.29.117.252)
2021-05-06 09:20:19 +0200 <dibblego> FWIW, a good chunk of my day job is deleting code that uses reflection, and actually solving the problem
2021-05-06 09:20:36 +0200 <olle> ^^
2021-05-06 09:20:51 +0200 <jacks2> olle, what other properties does each shape have, besides a list of Point, and a name?
2021-05-06 09:21:23 +0200 <olle> jacks2: that should be "open", I guess, e.g. 5 years later someone decides to make everything 3D instead. :)
2021-05-06 09:21:37 +0200 <olle> And then point has x, y, z, etc
2021-05-06 09:21:53 +0200 <tdammers> "make everything 3D" is a different concern than "adding more shape types", and requires different facilitation
2021-05-06 09:21:53 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-05-06 09:21:59 +0200 <olle> Absolutely.
2021-05-06 09:22:07 +0200 <olle> It's the expression problem.
2021-05-06 09:22:16 +0200 <tdammers> if you want to extend the Point type, you could go `data Shape p = Point p | Rectangle p p`
2021-05-06 09:22:39 +0200 <olle> But, about functional core/pushing effects out - there's no OOP concept for "pure" vs "effectful" classes, other than "entity/domain class" and "service/resource class", which is a shame.
2021-05-06 09:22:41 +0200alexander(~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d)
2021-05-06 09:22:41 +0200 <tdammers> and then you can use Shape Point2 or Shape Point3 as you see fit
2021-05-06 09:22:49 +0200 <dibblego> class PointLike p f a where _Point :: Optic' p f a Point
2021-05-06 09:23:06 +0200 <jacks2> olle, make everything 3d, as in draw a shape in 3d? and your current version, would draw it in 2d?
2021-05-06 09:23:10 +0200alexanderGuest99456
2021-05-06 09:23:46 +0200 <olle> jacks2: depends on where you put the dependencies of functions draw and save.
2021-05-06 09:25:03 +0200 <olle> tdammers: cool
2021-05-06 09:25:54 +0200 <tdammers> anyway, OOP languages don't explicitly distinguish effectful code from pure code, but if you take "modern best practices" and run with them, you usually end up with 3 types of classes: those that represent data structures (and have no behavior beyond getters / setters / constructor / destructor), those that are just collections of utility functions (and have no state of their own, except maybe caches /
2021-05-06 09:25:56 +0200 <tdammers> memoization), and those that implement effectful interactions with the outside world
2021-05-06 09:26:12 +0200nineonin_(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Remote host closed the connection)
2021-05-06 09:26:17 +0200 <tdammers> well, that's basically what you'd have in Haskell too. data structures, pure logic, and effects, neatly separated
2021-05-06 09:26:44 +0200 <olle> Yeah
2021-05-06 09:26:46 +0200 <jacks2> data Shape = Shape { shapeName :: Text, shapeData :: [Point], shapeDraw :: Shape -> IO () }. then mkCircle points = Shape "Circle" points drawCircle
2021-05-06 09:27:44 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-udyzskrqxqzkzbjc)
2021-05-06 09:27:48 +0200 <tdammers> jacks2: I'd ditch the shapeDraw member, just use the shapeName (or use an enum type)
2021-05-06 09:28:03 +0200 <tdammers> defunctionalize
2021-05-06 09:28:39 +0200 <jacks2> tdammers, and use what instead? with this you can have a list of shapes and then draw them all
2021-05-06 09:29:03 +0200 <jacks2> this is assuming they can't be drawn just using shapeData
2021-05-06 09:29:06 +0200 <tdammers> shapeDraw :: Shape -> IO (); shapeDraw s = case shapeName s of { ... }
2021-05-06 09:29:06 +0200 <jacks2> in a generic way
2021-05-06 09:29:27 +0200 <jacks2> tdammers, that doesn't meet his requirement.. you can't add different shapes, as a library user
2021-05-06 09:29:31 +0200 <tdammers> only reason why you'd inject the drawing function into the data structure is because you need the consumer to push their own drawing routines
2021-05-06 09:30:06 +0200 <tdammers> but if you do that, why not just `type Shape = IO ()`
2021-05-06 09:31:16 +0200 <jacks2> that's assuming that there's only one "method" each shape can have, drawShape, and that other fields, like name, aren't useful
2021-05-06 09:31:31 +0200 <olle> saveShape too
2021-05-06 09:31:46 +0200 <tdammers> sure. but you basically just invented half of OOP
2021-05-06 09:31:51 +0200 <olle> haha
2021-05-06 09:32:17 +0200Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2021-05-06 09:32:33 +0200 <jacks2> you can get pretty far with a records of functions. and it meets his requirement, your suggestion doesn't, you are hardcoding a limited number of shapes in your shapeDraw above
2021-05-06 09:32:56 +0200 <tdammers> I'm questioning the requirement
2021-05-06 09:33:22 +0200 <olle> Sure, sure :)
2021-05-06 09:33:28 +0200 <tdammers> IME, this kind of flexibility (allowing truly arbitrary implementations of the draw method) is hardly ever needed
2021-05-06 09:33:37 +0200 <tdammers> when it is, sure, break out the OOP
2021-05-06 09:34:36 +0200 <olle> It's also related to encapsulation - if the data for each shape should or should not be public to the outside.
2021-05-06 09:35:04 +0200 <tdammers> encapsulation is something you achieve by limiting module exports
2021-05-06 09:35:05 +0200coot(~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl)
2021-05-06 09:35:30 +0200 <olle> tdammers: so you get package private stuff?
2021-05-06 09:35:55 +0200 <tdammers> you can, if you don't expose private modules, but that's recommended against
2021-05-06 09:36:03 +0200 <tdammers> you do get module-private stuff though
2021-05-06 09:36:26 +0200 <olle> But one module = one file...? Or that's only OCaml?
2021-05-06 09:37:08 +0200 <tdammers> according to the language standard, you can have multiple modules in one Haskell source file, but in practice, GHC doesn't support that and requires one module per file
2021-05-06 09:37:15 +0200 <tdammers> it also requires the filename to match the module name
2021-05-06 09:37:27 +0200 <tdammers> (except for Main, that is)
2021-05-06 09:38:31 +0200 <olle> Imagine we have one file for Point, Rectangle, and another file for shapeSave. Then we want only shapeSave to have access to internal representation of the shapes, but nothing else. Possible?
2021-05-06 09:38:40 +0200 <olle> Might not matter so much when immutability is the default, tho.
2021-05-06 09:39:25 +0200 <tdammers> forget "internal representation"
2021-05-06 09:40:00 +0200 <tdammers> that's not important; what is "internal" is not a property of the data, the data just is, it's a property of the operations acting on the data
2021-05-06 09:40:14 +0200 <tdammers> "does this function need to know about the points in this shape?"
2021-05-06 09:40:28 +0200 <tdammers> if it doesn't, then *for the purpose of that function*, the points are "internal"
2021-05-06 09:40:45 +0200 <tdammers> but you don't need to hide them from the module that defines them, if other functions may need to look at them
2021-05-06 09:40:59 +0200 <tdammers> you can also "hide" things behind a typeclass, for example
2021-05-06 09:41:10 +0200 <olle> hmmm
2021-05-06 09:41:16 +0200 <tdammers> drawShape :: Drawable s => s -> IO ()
2021-05-06 09:41:31 +0200 <olle> Same with Savable?
2021-05-06 09:41:32 +0200 <tdammers> now all drawShape knows about the shape in question is whatever methods the Drawable typeclass exposes
2021-05-06 09:41:32 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2021-05-06 09:41:35 +0200 <tdammers> sure
2021-05-06 09:42:25 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-05-06 09:42:33 +0200 <tdammers> and now we get back to "defunctionalization": instead of making the drawing and saving code a member of the Shape type directly, you defunctionalize it. design a little EDSL that captures the primitives you need to express drawing an arbitrary shape, or saving an arbitrary shape
2021-05-06 09:43:01 +0200 <dibblego> https://en.wikipedia.org/wiki/Expression_problem
2021-05-06 09:43:02 +0200 <olle> EDSL? Domain-specific?
2021-05-06 09:43:09 +0200 <jacks2> that works.. but if you wanted to have a list of different shapes, then you also have to resort to use existential types. and you can't have more than one drawing method per shape. records of functions make the code simpler and more flexible
2021-05-06 09:43:17 +0200 <jacks2> to using existential types*
2021-05-06 09:44:10 +0200 <tdammers> e.g., data DrawPrim = MoveTo Point | LineTo Point | BezierTo Point Point Point | FillPath. Now you can say data Shape = Shape { ..., shapeDrawPrims :: [DrawPrim] }
2021-05-06 09:44:28 +0200 <tdammers> and separately: drawPrims :: [DrawPrim] -> IO ()
2021-05-06 09:45:17 +0200 <tdammers> jacks2: I like to think of those records-of-functions as the Haskell equivalent of an OOP interface
2021-05-06 09:45:30 +0200 <olle> jacks2: right, that's the next use-case: forall shapes as shape, do draw shape
2021-05-06 09:46:02 +0200 <tdammers> also, relevant: https://lukepalmer.wordpress.com/2010/01/24/haskell-antipattern-existential-typeclass/
2021-05-06 09:46:23 +0200pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-05-06 09:46:47 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
2021-05-06 09:47:48 +0200 <jacks2> tdammers, yes.. I see him replacing typeclass with records of functions :)
2021-05-06 09:48:25 +0200 <tdammers> the gist of it: record-of-functions works and gives you maximum flexibility, but you lose a fair degree of type-level expressivity. however, existentials don't buy you that back, because you're essentially still doing the same thing, only with more boilerplate.
2021-05-06 09:48:50 +0200 <tdammers> and because you lose that bit of type safety, record-of-functions is generally my last resort
2021-05-06 09:49:13 +0200 <tdammers> it is sometimes needed, but more often than not, it's actually more prudent to challenge the flexibility requirements
2021-05-06 09:49:18 +0200 <olle> Which type-safety do you lose with records of functions?
2021-05-06 09:49:30 +0200 <jacks2> you have just one type, Shape
2021-05-06 09:49:56 +0200 <olle> jacks2: But shape can have an ADT do say which type of shape it is?
2021-05-06 09:50:02 +0200 <olle> shapeType = Point | Rectangle
2021-05-06 09:50:27 +0200 <tdammers> if you do that, you lose the flexibility of adding arbitrary shapes after the fact
2021-05-06 09:50:29 +0200 <jacks2> you can stick drawRectangle into a circle shape
2021-05-06 09:50:48 +0200 <olle> Right
2021-05-06 09:51:06 +0200 <olle> Wonder how the Rust people would approach this...
2021-05-06 09:51:29 +0200 <tdammers> the problem is the same regardless of programming language, really
2021-05-06 09:51:45 +0200 <olle> Yes, but each language has its own "idiomatic" solution :)
2021-05-06 09:51:53 +0200 <tdammers> because the economics are different
2021-05-06 09:52:39 +0200 <davve> the best languages are the ones who force a specifc code style imo
2021-05-06 09:52:42 +0200davveflees
2021-05-06 09:53:58 +0200 <olle> davve: design patterns and architectural habits change more often than language features.
2021-05-06 09:54:01 +0200 <tdammers> Elm does that, and it's absolutely terrible for it
2021-05-06 09:55:06 +0200 <tdammers> PHP also does it, but not on purpose, and it's also terrible for it
2021-05-06 09:55:12 +0200 <davve> my point is that its good to leave as little room for discussing stuff like indentation
2021-05-06 09:55:15 +0200 <DigitalKiwi> ghc error if it doesn't pass hindent
2021-05-06 09:55:38 +0200 <DigitalKiwi> -Werror -Wall -Whindent
2021-05-06 09:55:56 +0200 <tdammers> if people want to shave yaks, they will. not the language's job to play police.
2021-05-06 09:55:57 +0200 <DigitalKiwi> -Werror -Wall -Whindent -Whlint
2021-05-06 09:56:44 +0200 <DigitalKiwi> https://github.com/cachix/pre-commit-hooks.nix
2021-05-06 09:57:00 +0200 <DigitalKiwi> domenkozar[m] the yak shaver
2021-05-06 09:57:16 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-05-06 09:57:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 09:58:49 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-05-06 10:00:35 +0200 <xsperry> olle, when it comes to extensibility, functional and OOP modeling work in the opposite direction. in functional languages it is easier to add new functions and harder to add new "types/classes/cases", and the opposite is true for OOP languages. google for "expression problem"
2021-05-06 10:01:32 +0200 <DigitalKiwi> or click the link dibblego sent lol
2021-05-06 10:01:50 +0200 <davve> imo functional makes the most sense unless you are modelling stuff from real life, then encapsulating data, mutations and stuff are more natural
2021-05-06 10:02:11 +0200 <jacks2> types ala carte supposedly address the expression problem? I never explored them
2021-05-06 10:02:26 +0200 <tdammers> we are always modelling stuff from real life. or never, depending how you look at it.
2021-05-06 10:02:31 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-05-06 10:02:52 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
2021-05-06 10:03:06 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-05-06 10:03:36 +0200 <tdammers> also, the naive OOP design approach ("identify domain objects; make them classes; identify domain operations; make them methods of the class that is the noun of the operation") isn't very good in practice
2021-05-06 10:05:25 +0200 <[exa]> it's almost a good practice if all classes really correspond to objects and all methods really correspond to verbs
2021-05-06 10:05:58 +0200 <[exa]> uNfOrTuNaTeLy reality often denies this representation
2021-05-06 10:06:42 +0200fendor_(~fendor@91.141.1.157.wireless.dyn.drei.com) (Remote host closed the connection)
2021-05-06 10:06:52 +0200bahamas_(~lucian@188.27.62.94)
2021-05-06 10:07:02 +0200fendor_(~fendor@91.141.1.157.wireless.dyn.drei.com)
2021-05-06 10:07:10 +0200gitgoood(~gitgood@80-44-12-75.dynamic.dsl.as9105.com) (Quit: Probably away to do something really awesome)
2021-05-06 10:09:20 +0200bahamas(~lucian@unaffiliated/bahamas) (Ping timeout: 246 seconds)
2021-05-06 10:09:57 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-05-06 10:10:30 +0200dpl(~dpl@77-121-78-163.chn.volia.net)
2021-05-06 10:12:13 +0200Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
2021-05-06 10:12:15 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga)
2021-05-06 10:13:26 +0200kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
2021-05-06 10:13:58 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-05-06 10:14:10 +0200 <tdammers> it's not the noun-object/verb-method thing I find questionable per se; it's which nouns and verbs you choose, and "verbs must be accompanied by nouns at all times" (Kingdom Of Nouns)
2021-05-06 10:14:35 +0200 <tdammers> I mean, we do "noun-data/verb-function" in haskell all the time
2021-05-06 10:15:30 +0200ph88(~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de)
2021-05-06 10:15:40 +0200 <ph88> hi all
2021-05-06 10:16:02 +0200 <ph88> is there some thing/hack that can be done to export more from a module for testing purposes only ?
2021-05-06 10:16:34 +0200 <merijn> ph88: No
2021-05-06 10:17:18 +0200 <merijn> ph88: You can work around this by having an internal library that exports everything and then have the public library and tests using that, with the public library only exporting a subset
2021-05-06 10:17:27 +0200 <tdammers> ph88: a somewhat uncontroversial thing to do is to put the library internals in modules named "Internal", but still expose them
2021-05-06 10:17:41 +0200 <ph88> thanks guys
2021-05-06 10:18:09 +0200 <tdammers> the "Internal" module name signals that the module isn't intended for consumers of the library, and its API may change without notice, and isn't considered covered by PVP
2021-05-06 10:18:40 +0200othe1(~othe@139.28.218.148) (Remote host closed the connection)
2021-05-06 10:23:45 +0200LKoen(~LKoen@140.170.9.109.rev.sfr.net)
2021-05-06 10:24:22 +0200 <olle> xsperry: I'm actually not convinced that's true. FP feels like you have to touch old code both when adding operations AND new data.
2021-05-06 10:25:37 +0200 <jacks2> how so? if you add a new operation (function), old code remains the same
2021-05-06 10:26:51 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-05-06 10:27:19 +0200todda7(~torstein@2a02:587:3724:1a75:aca:df22:9d82:969f) (Ping timeout: 260 seconds)
2021-05-06 10:27:23 +0200berberman(~berberman@unaffiliated/berberman)
2021-05-06 10:28:13 +0200 <tdammers> touching old code isn't bad per se
2021-05-06 10:28:37 +0200 <tdammers> it's only bad when you can't do it safely
2021-05-06 10:28:46 +0200 <DigitalKiwi> at least in haskell touching old code is not so painful
2021-05-06 10:28:48 +0200 <jacks2> olle, this page has good examples: http://wiki.c2.com/?ExpressionProblem
2021-05-06 10:29:08 +0200Pickchea(~private@unaffiliated/pickchea)
2021-05-06 10:29:38 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds)
2021-05-06 10:30:04 +0200 <DigitalKiwi> python i wrote a week ago i have no effing idea what it does anymore and takes hours to debug; haskell from years ago that i don't even remember how to write i can modify >.>
2021-05-06 10:30:25 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 10:30:39 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 10:30:47 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-05-06 10:30:48 +0200 <tdammers> that's the "change it safely" part I was hinting at
2021-05-06 10:31:27 +0200 <jacks2> olle, note that this isn't related to languages, but to modeling. record of functions follow OOP style of modeling, so adding a new functionality would require modifying original file (to add new function in the record)
2021-05-06 10:33:24 +0200 <DigitalKiwi> tdammers: yeah i hadn't even read all of your messages when i started typing lol
2021-05-06 10:34:00 +0200caubert(~caubert@136.244.111.235) (Quit: WeeChat 3.0)
2021-05-06 10:34:04 +0200torax(~torax@139.28.218.148)
2021-05-06 10:34:18 +0200caubert(~caubert@136.244.111.235)
2021-05-06 10:36:38 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 10:40:48 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.1)
2021-05-06 10:40:49 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Ping timeout: 245 seconds)
2021-05-06 10:43:00 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-05-06 10:43:31 +0200lieven(~mal@unaffiliated/lieven) (Ping timeout: 250 seconds)
2021-05-06 10:45:00 +0200perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Client Quit)
2021-05-06 10:45:40 +0200 <olle> I was thinking if splitting one OOP class into multiple files, each file implementing an interface, would "solve" the expression problem.
2021-05-06 10:46:03 +0200 <olle> extend class Foo with SaveableInterface { save(dbConnection); }
2021-05-06 10:46:09 +0200 <Aleksejs> Hello, I tried to implement a "cyclic" type (succ maxBound = minBound) and I managed to do that but it looks quite ugly http://vpaste.net/NmA9K. I wonder if there is a better way
2021-05-06 10:48:33 +0200remedan(~remedan@balak.me) (Quit: Bye!)
2021-05-06 10:48:42 +0200 <tdammers> olle: the explanation is a bit involved, but no, it doesn't. you're just moving the problem around.
2021-05-06 10:49:19 +0200M66bdd7f1f556[m](M66bdd7f1f@gateway/shell/matrix.org/x-oqbjqmoraaxfqpmo)
2021-05-06 10:50:14 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 10:51:22 +0200 <jacks2> olle, see this: http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf
2021-05-06 10:51:52 +0200 <olle> jacks2: thanks!
2021-05-06 10:54:56 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-05-06 10:55:02 +0200remedan(~remedan@balak.me)
2021-05-06 10:59:31 +0200dhil(~dhil@195.213.192.4)
2021-05-06 10:59:51 +0200nrdmn98(~nrdmn@aufmachen.jetzt) (Ping timeout: 252 seconds)
2021-05-06 11:00:11 +0200amerocu[m](amerocumat@gateway/shell/matrix.org/x-ettekisbiqeapgti) (Quit: Idle for 30+ days)
2021-05-06 11:00:11 +0200stevekrouse1[m](stevekrous@gateway/shell/matrix.org/x-yavjkxinulfgxwlk) (Quit: Idle for 30+ days)
2021-05-06 11:01:23 +0200xff0x(~xff0x@2001:1a81:5284:1d00:fc89:b54a:8d08:1b37) (Ping timeout: 260 seconds)
2021-05-06 11:02:09 +0200xff0x(~xff0x@2001:1a81:529c:3600:b6e:989c:229a:901a)
2021-05-06 11:05:10 +0200coot(~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-05-06 11:05:26 +0200coot(~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl)
2021-05-06 11:05:54 +0200acidjnk_new2(~acidjnk@p200300d0c72b9513e05ff4b2b19e02c9.dip0.t-ipconnect.de)
2021-05-06 11:07:41 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 11:07:58 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-zjwhyipdmwoktmxx)
2021-05-06 11:07:58 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 11:09:12 +0200CrazyPython(~crazypyth@98.122.164.118)
2021-05-06 11:12:10 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-06 11:12:35 +0200oish(~charlie@228.25.169.217.in-addr.arpa)
2021-05-06 11:13:07 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-05-06 11:20:20 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-05-06 11:20:41 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2021-05-06 11:20:59 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-06 11:25:43 +0200 <carbolymer> my application uses 8GB of RAM, in heap profile I can only see ~1GB of memory
2021-05-06 11:25:52 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-05-06 11:25:56 +0200 <carbolymer> where's the rest? stack?
2021-05-06 11:26:50 +0200 <[exa]> fragmentation?
2021-05-06 11:26:59 +0200stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-05-06 11:27:01 +0200 <carbolymer> you mean slop? or what?
2021-05-06 11:31:35 +0200 <merijn> carbolymer: How are you measuring that 8GB?
2021-05-06 11:31:58 +0200 <carbolymer> merijn: EKG, current residency
2021-05-06 11:32:22 +0200 <merijn> current residency of 8GB? oof...
2021-05-06 11:32:42 +0200 <merijn> carbolymer: Probably pinned memory if it's not heap?
2021-05-06 11:33:21 +0200 <merijn> carbolymer: But without any profilng output/source/whatever all anyone can do is blind guesswork
2021-05-06 11:33:45 +0200 <carbolymer> merijn: pinned shows up in heap output afair
2021-05-06 11:35:13 +0200 <merijn> carbolymer: I can't think of anything that would be that big and not in the profiling output, tbh
2021-05-06 11:35:36 +0200 <merijn> carbolymer: What does "+RTS -sstderr" report?
2021-05-06 11:36:26 +0200 <carbolymer> merijn: I'm doing millions of HTTP calls in 50 threads - I guess that might be be an explanation why there isn't anything meaningful in the output
2021-05-06 11:36:51 +0200boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220)
2021-05-06 11:36:57 +0200 <merijn> I mean, millions of HTTP calls is still no reason for that much
2021-05-06 11:37:48 +0200 <merijn> But before spending a large amount of time figuring out "why is this so much?" I'd first invest some time figuring out "why do ekg and profile not agree?"
2021-05-06 11:38:18 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-05-06 11:38:45 +0200 <carbolymer> merijn: also I'm doing +R -sgc.summary.log - which ends up empty (????)
2021-05-06 11:38:57 +0200 <carbolymer> s/R/RTS/
2021-05-06 11:39:35 +0200oish(~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving)
2021-05-06 11:39:39 +0200stree(~stree@68.36.8.116)
2021-05-06 11:40:45 +0200 <merijn> -s only gets written when the program exits, maybe that's it?
2021-05-06 11:42:04 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 11:42:38 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net) (Quit: Connection closed)
2021-05-06 11:43:45 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 11:44:01 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 11:44:03 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 11:44:37 +0200 <carbolymer> merijn: that's a long-running application, so I'm stopping it as gentle as I can with kill -s HUP - shouldnt' that be enough for RTS?
2021-05-06 11:46:00 +0200olle(~olle@i577BC827.versanet.de) ()
2021-05-06 11:46:46 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 265 seconds)
2021-05-06 11:47:17 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-05-06 11:48:43 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-05-06 11:49:24 +0200 <carbolymer> Not very interesting heap profile: https://files.catbox.moe/01mrov.jpg
2021-05-06 11:49:46 +0200 <carbolymer> where are my remaining 9GB?!
2021-05-06 11:52:09 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 11:56:46 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-05-06 11:58:56 +0200mav1(~mav@ip-95-223-69-160.hsi16.unitymediagroup.de)
2021-05-06 12:01:08 +0200Guest77764(~textual@2603-7000-3040-0000-0051-96de-f907-9900.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 12:01:50 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 12:08:34 +0200DavidEichmann(~david@156.59.147.147.dyn.plus.net)
2021-05-06 12:08:38 +0200Rudd0(~Rudd0@185.189.115.108)
2021-05-06 12:09:10 +0200mav1(~mav@ip-95-223-69-160.hsi16.unitymediagroup.de) (Ping timeout: 252 seconds)
2021-05-06 12:10:24 +0200mav1(~mav@ip-95-223-69-160.hsi16.unitymediagroup.de)
2021-05-06 12:12:08 +0200__monty__(~toonn@unaffiliated/toonn)
2021-05-06 12:12:13 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
2021-05-06 12:12:54 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 12:15:45 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f)
2021-05-06 12:15:49 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 12:16:07 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 12:16:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-05-06 12:17:06 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-05-06 12:17:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:18:18 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 12:18:38 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 12:22:04 +0200simplegauss(~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 245 seconds)
2021-05-06 12:22:45 +0200thonkpod(~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 250 seconds)
2021-05-06 12:23:02 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-05-06 12:23:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-05-06 12:23:21 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 12:23:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:23:41 +0200outer_passage(~outerpass@2600:1700:4640:c560:bda0:7dae:880f:7b35)
2021-05-06 12:24:31 +0200outer_passage(~outerpass@2600:1700:4640:c560:bda0:7dae:880f:7b35) ()
2021-05-06 12:24:47 +0200fendor_fendor
2021-05-06 12:25:20 +0200simplegauss(~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f)
2021-05-06 12:25:23 +0200thonkpod(~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d)
2021-05-06 12:27:57 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f) (Ping timeout: 250 seconds)
2021-05-06 12:28:26 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 12:28:37 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 12:28:52 +0200bahamas_(~lucian@188.27.62.94) (Ping timeout: 240 seconds)
2021-05-06 12:29:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-05-06 12:29:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:31:26 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (Ping timeout: 246 seconds)
2021-05-06 12:35:02 +0200viluon(uid453725@gateway/web/irccloud.com/x-bhsmxiudnaicoyri)
2021-05-06 12:35:05 +0200EvilMagix(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-05-06 12:39:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-05-06 12:39:08 +0200Alleria(~textual@mskresolve-a.mskcc.org)
2021-05-06 12:39:32 +0200AlleriaGuest59693
2021-05-06 12:40:34 +0200urodna(~urodna@unaffiliated/urodna)
2021-05-06 12:40:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:41:21 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-05-06 12:42:21 +0200ukari(~ukari@unaffiliated/ukari)
2021-05-06 12:42:32 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-05-06 12:42:43 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
2021-05-06 12:44:12 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-05-06 12:45:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-05-06 12:46:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:47:25 +0200 <tomsmeding> hah that's the best heap profile if you want to argue you're done optimising, and the worst if your memory residency is still too high
2021-05-06 12:47:47 +0200 <carbolymer> exactly
2021-05-06 12:49:15 +0200 <carbolymer> I guess I'm at the disable-this-part-of-the-code-and-see-what-happens level
2021-05-06 12:49:39 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 12:49:59 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 12:51:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-05-06 12:51:49 +0200notzmv(~zmv@unaffiliated/zmv)
2021-05-06 12:52:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:53:21 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
2021-05-06 12:53:39 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 12:57:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-05-06 12:58:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 12:59:41 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 12:59:55 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 13:00:07 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 13:00:26 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 13:01:28 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 13:03:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-05-06 13:03:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 13:05:16 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 252 seconds)
2021-05-06 13:05:39 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Ping timeout: 250 seconds)
2021-05-06 13:09:14 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-05-06 13:09:23 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-05-06 13:09:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-05-06 13:09:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 13:10:13 +0200proteusguy(~proteusgu@cm-58-10-209-239.revip7.asianet.co.th) (Ping timeout: 252 seconds)
2021-05-06 13:11:51 +0200mav1(~mav@ip-95-223-69-160.hsi16.unitymediagroup.de) (Ping timeout: 252 seconds)
2021-05-06 13:18:00 +0200 <Gurkenglas_> Is there a type of statements whose definedness relation is implication?
2021-05-06 13:18:05 +0200Gurkenglas_Gurkenglas
2021-05-06 13:21:12 +0200superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
2021-05-06 13:21:49 +0200 <superstar64> why does cabal's --help and man page not mention `cabal format` is a thing?
2021-05-06 13:21:57 +0200 <superstar64> it would have been nice to have known that earlier
2021-05-06 13:22:12 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-05-06 13:23:13 +0200 <maerwald> my impressin is that --help is barely maintained
2021-05-06 13:24:15 +0200 <merijn> superstar64: Because it's new and beta? :)
2021-05-06 13:24:19 +0200 <merijn> iirc
2021-05-06 13:31:11 +0200kderme(2e675c7c@46-92-124.adsl.cyta.gr) (Quit: Connection closed)
2021-05-06 13:31:54 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8)
2021-05-06 13:32:46 +0200 <jackdk> wait, since when is `cabal format` a thing? I've been using `cabal-fmt`
2021-05-06 13:36:07 +0200 <maerwald> cabal-fmt is olegs style and has some more features
2021-05-06 13:36:56 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-05-06 13:37:46 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 13:40:12 +0200kderme(2e675c7c@46-92-124.adsl.cyta.gr)
2021-05-06 13:44:40 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-05-06 13:45:05 +0200ukari(~ukari@unaffiliated/ukari)
2021-05-06 13:46:14 +0200todda7(~torstein@paroswaw.static.otenet.gr)
2021-05-06 13:46:31 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 13:46:47 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 13:47:26 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-05-06 13:48:53 +0200swater(bouhier200@perso.iiens.net) (Ping timeout: 252 seconds)
2021-05-06 13:49:53 +0200swater(bouhier200@perso.iiens.net)
2021-05-06 13:50:03 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 268 seconds)
2021-05-06 13:50:42 +0200plutoniix(~q@ppp-58-8-148-20.revip2.asianet.co.th) (Quit: Leaving)
2021-05-06 13:51:11 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 13:51:45 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 13:52:11 +0200todda7(~torstein@paroswaw.static.otenet.gr) (Ping timeout: 240 seconds)
2021-05-06 13:52:27 +0200torax(~torax@139.28.218.148) (Remote host closed the connection)
2021-05-06 13:53:26 +0200todda7(~torstein@2a02:587:3729:a000:617f:af59:a7e0:feaf)
2021-05-06 13:56:34 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-05-06 14:00:07 +0200todda7(~torstein@2a02:587:3729:a000:617f:af59:a7e0:feaf) (Ping timeout: 260 seconds)
2021-05-06 14:00:07 +0200stree(~stree@68.36.8.116)
2021-05-06 14:10:10 +0200poljar(~poljar@93-139-14-190.adsl.net.t-com.hr) (Remote host closed the connection)
2021-05-06 14:11:13 +0200carlomagno(~cararell@148.87.23.8)
2021-05-06 14:12:35 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
2021-05-06 14:13:27 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-05-06 14:14:15 +0200ukari(~ukari@unaffiliated/ukari)
2021-05-06 14:15:11 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-05-06 14:17:01 +0200dmytrish(~mitra@2a02:8084:a82:d900:4cc7:f0a8:8d74:1dfc)
2021-05-06 14:17:11 +0200orion`1(~orion`@195.140.213.38)
2021-05-06 14:18:45 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2021-05-06 14:21:51 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-05-06 14:26:29 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Remote host closed the connection)
2021-05-06 14:26:47 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 14:27:39 +0200dmytrish(~mitra@2a02:8084:a82:d900:4cc7:f0a8:8d74:1dfc) (Ping timeout: 260 seconds)
2021-05-06 14:28:23 +0200poljar(~poljar@93-139-14-190.adsl.net.t-com.hr)
2021-05-06 14:28:39 +0200poljar(~poljar@93-139-14-190.adsl.net.t-com.hr) (Client Quit)
2021-05-06 14:29:33 +0200poljar(~poljar@93-139-14-190.adsl.net.t-com.hr)
2021-05-06 14:31:36 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2021-05-06 14:36:57 +0200poljar(~poljar@93-139-14-190.adsl.net.t-com.hr) (Quit: WeeChat 3.1)
2021-05-06 14:37:30 +0200poljar(~poljar@93-139-14-190.adsl.net.t-com.hr)
2021-05-06 14:38:26 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 14:40:20 +0200bahamas(~lucian@188.27.62.94)
2021-05-06 14:40:21 +0200bahamas(~lucian@188.27.62.94) (Changing host)
2021-05-06 14:40:21 +0200bahamas(~lucian@unaffiliated/bahamas)
2021-05-06 14:40:26 +0200berberman_(~berberman@unaffiliated/berberman)
2021-05-06 14:40:33 +0200berberman(~berberman@unaffiliated/berberman) (Ping timeout: 250 seconds)
2021-05-06 14:42:29 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Ping timeout: 245 seconds)
2021-05-06 14:42:48 +0200notzmv(~zmv@unaffiliated/zmv)
2021-05-06 14:44:42 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-05-06 14:45:44 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f)
2021-05-06 14:47:07 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 14:50:22 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f) (Ping timeout: 276 seconds)
2021-05-06 14:51:53 +0200ram19890(~ram@49.205.84.15)
2021-05-06 14:54:50 +0200jakalx(~jakalx@base.jakalx.net)
2021-05-06 14:58:57 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 14:59:16 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 14:59:17 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2021-05-06 15:00:25 +0200andreabedini(~andreabed@8s8kj6ngrm58rlqkgtwc.ip6.superloop.com)
2021-05-06 15:02:37 +0200 <cheater> what's the difference in style
2021-05-06 15:02:55 +0200 <cheater> or let me ask differently, which one uses two column indent instead of banner style
2021-05-06 15:04:32 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-05-06 15:05:27 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:d09a:226b:917d:ae5f)
2021-05-06 15:05:40 +0200 <cheater> (or possibly 4 col indent)
2021-05-06 15:06:39 +0200andreabedini(~andreabed@8s8kj6ngrm58rlqkgtwc.ip6.superloop.com) (Quit: WeeChat 3.1)
2021-05-06 15:07:10 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-05-06 15:08:43 +0200Feuermagier(~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e)
2021-05-06 15:09:14 +0200outer_passage(~outerpass@2600:1700:4640:c560:bda0:7dae:880f:7b35)
2021-05-06 15:09:41 +0200cheater(~user@unaffiliated/cheater) (Ping timeout: 240 seconds)
2021-05-06 15:12:44 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 15:16:57 +0200anandprabhu_(~AnandPrab@94.202.236.255)
2021-05-06 15:17:09 +0200undvrainbowvita8(~egp_@128-71-13-3.broadband.corbina.ru) (Remote host closed the connection)
2021-05-06 15:17:23 +0200Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-05-06 15:17:52 +0200outer_passage(~outerpass@2600:1700:4640:c560:bda0:7dae:880f:7b35) (Quit: WeeChat 2.7.1)
2021-05-06 15:18:29 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 15:18:49 +0200ram19890(~ram@49.205.84.15) (Quit: Konversation terminated!)
2021-05-06 15:19:06 +0200anandprabhu(~AnandPrab@94.202.236.255) (Ping timeout: 240 seconds)
2021-05-06 15:19:11 +0200wonko7(~wonko7@62.115.229.50)
2021-05-06 15:21:01 +0200anandprabhu__(~AnandPrab@94.202.236.255)
2021-05-06 15:21:11 +0200cheater(~user@unaffiliated/cheater)
2021-05-06 15:21:50 +0200root____1(~root@185.234.208.208.r.toneticgroup.pl)
2021-05-06 15:22:11 +0200root____1(~root@185.234.208.208.r.toneticgroup.pl) (Client Quit)
2021-05-06 15:23:29 +0200anandprabhu_(~AnandPrab@94.202.236.255) (Ping timeout: 252 seconds)
2021-05-06 15:25:22 +0200undvrainbowvita8(~egp_@128-71-13-3.broadband.corbina.ru)
2021-05-06 15:28:14 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 15:29:57 +0200anandprabhu_(~AnandPrab@94.202.236.255)
2021-05-06 15:32:19 +0200anandprabhu__(~AnandPrab@94.202.236.255) (Ping timeout: 240 seconds)
2021-05-06 15:32:39 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer)
2021-05-06 15:33:09 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-05-06 15:34:40 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-05-06 15:34:59 +0200anandprabhu__(~AnandPrab@94.202.236.255)
2021-05-06 15:34:59 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-qwfpakkgqlgnbdyf)
2021-05-06 15:35:20 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Disconnected by services)
2021-05-06 15:35:21 +0200hyperisco_(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-05-06 15:37:02 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-05-06 15:37:25 +0200anandprabhu_(~AnandPrab@94.202.236.255) (Ping timeout: 252 seconds)
2021-05-06 15:37:44 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2021-05-06 15:37:50 +0200 <boxscape> hm so in ghc 9.2 you can now make a true Void type that doesn't have any values with `data Void :: TYPE (BoxedRep Unlifted)`, that's kind of nice
2021-05-06 15:37:58 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 15:38:05 +0200ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2021-05-06 15:40:05 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 246 seconds)
2021-05-06 15:40:26 +0200Athas(athas@2a01:7c8:aaac:1cf:3a96:a4d3:a3c8:7a4c) (Quit: ZNC - http://znc.sourceforge.net)
2021-05-06 15:40:36 +0200Athas(athas@sigkill.dk)
2021-05-06 15:42:16 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-05-06 15:42:40 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 15:42:42 +0200 <boxscape> Seems like it takes care of one of the things that Bob Harper liked to complain about regarding Haskell, IIRC
2021-05-06 15:43:50 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 15:43:59 +0200Guest39486(~zmv@unaffiliated/zmv)
2021-05-06 15:45:20 +0200 <__monty__> So undefined :: TrueVoid wouldn't be allowed?
2021-05-06 15:45:37 +0200fendor_(~fendor@178.165.131.207.wireless.dyn.drei.com)
2021-05-06 15:45:54 +0200 <boxscape> __monty__ no, undefined is levity polymorphic so it works, but as soon as you call a function with that as argument, it blows up, regardless of whether the function examines that argument
2021-05-06 15:45:58 +0200Guest39486(~zmv@unaffiliated/zmv) (Remote host closed the connection)
2021-05-06 15:46:19 +0200 <boxscape> similar to how `undefined :: Int#` works already
2021-05-06 15:46:23 +0200 <boxscape> (or, the same)
2021-05-06 15:46:52 +0200howdoi(uid224@gateway/web/irccloud.com/x-tnnifmuuyqdjaowu)
2021-05-06 15:46:52 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-05-06 15:47:01 +0200notzmv-(~zmv@unaffiliated/zmv)
2021-05-06 15:47:07 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 15:47:13 +0200notzmv-notzmv
2021-05-06 15:47:19 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 15:48:03 +0200fendor(~fendor@91.141.1.157.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-05-06 15:48:13 +0200EvilMagix(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 276 seconds)
2021-05-06 15:49:50 +0200 <boxscape> e.g.
2021-05-06 15:49:51 +0200 <boxscape> % f :: Int# -> Int#; f _ = 3#
2021-05-06 15:49:51 +0200 <yahb> boxscape:
2021-05-06 15:50:00 +0200 <boxscape> % I# (f undefined) + 6
2021-05-06 15:50:00 +0200 <yahb> boxscape: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:51:7 in interactive:Ghci23
2021-05-06 15:50:45 +0200jakalx(~jakalx@base.jakalx.net)
2021-05-06 15:51:01 +0200Tene(~tene@mail.digitalkingdom.org)
2021-05-06 15:51:01 +0200Tene(~tene@mail.digitalkingdom.org) (Changing host)
2021-05-06 15:51:01 +0200Tene(~tene@poipu/supporter/slacker/tene)
2021-05-06 15:51:11 +0200ByronJohnson(~bairyn@unaffiliated/bob0)
2021-05-06 15:51:51 +0200jacks2(~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-05-06 15:52:10 +0200cheater(~user@unaffiliated/cheater) (Ping timeout: 260 seconds)
2021-05-06 15:53:00 +0200 <Ferdirand> % let x = undefined :: Int# in 0
2021-05-06 15:53:00 +0200 <yahb> Ferdirand: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:75:14 in base:GHC.Err; undefined, called at <interactive>:52:9 in interactive:Ghci23
2021-05-06 15:53:02 +0200cheater(~user@unaffiliated/cheater)
2021-05-06 15:53:26 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 15:53:38 +0200hyperisco_(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Read error: Connection reset by peer)
2021-05-06 15:53:44 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 15:54:02 +0200 <__monty__> boxscape: Thanks.
2021-05-06 15:55:12 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-05-06 15:55:32 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-06 15:56:52 +0200 <boxscape> let x :: Int# = undefined
2021-05-06 15:56:53 +0200 <boxscape> % let x :: Int# = undefined
2021-05-06 15:56:53 +0200 <yahb> boxscape: ; <interactive>:53:5: error: Illegal type signature: `Int#' Type signatures are only allowed in patterns with ScopedTypeVariables
2021-05-06 15:57:02 +0200 <boxscape> eh
2021-05-06 15:57:07 +0200 <boxscape> wouldn't work anyway I've found out
2021-05-06 15:58:26 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-05-06 15:58:33 +0200acidjnk_new2(~acidjnk@p200300d0c72b9513e05ff4b2b19e02c9.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-05-06 16:02:36 +0200xkapastel(uid17782@gateway/web/irccloud.com/x-jvobihoengxrpmye)
2021-05-06 16:03:33 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 16:04:09 +0200cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 245 seconds)
2021-05-06 16:07:46 +0200anandprabhu__(~AnandPrab@94.202.236.255) (Ping timeout: 240 seconds)
2021-05-06 16:07:52 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-05-06 16:08:30 +0200lieven(~mal@2001:41d0:1:66c4::1)
2021-05-06 16:13:25 +0200jao(~jao@pdpc/supporter/professional/jao)
2021-05-06 16:13:36 +0200 <kuribas> how do you call a morphism from A to B and B to A, but only for a subset of A?
2021-05-06 16:13:42 +0200 <kuribas> it's not an isomorphism, right?
2021-05-06 16:13:51 +0200 <kuribas> because B represents a subset of A.
2021-05-06 16:14:03 +0200 <Uniaika> yep
2021-05-06 16:14:22 +0200 <Uniaika> kuribas: can you really say it's from A <-> B if it's only for a subset of A? :P
2021-05-06 16:14:31 +0200 <Uniaika> like, maybe you can say it's a partial relationship?
2021-05-06 16:14:48 +0200 <kuribas> like: f :: B -> A, f_inv :: A -> Maybe B
2021-05-06 16:14:55 +0200todda7(~torstein@2a02:587:3724:1a75:aca:df22:9d82:969f)
2021-05-06 16:15:24 +0200 <kuribas> and f_inv . f == Just
2021-05-06 16:15:59 +0200Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-05-06 16:16:01 +0200cheater(~user@unaffiliated/cheater) (Ping timeout: 260 seconds)
2021-05-06 16:16:21 +0200 <kuribas> Uniaika: I guess?
2021-05-06 16:16:30 +0200 <Uniaika> hmm
2021-05-06 16:16:37 +0200 <Uniaika> HMMM
2021-05-06 16:16:57 +0200wonko7(~wonko7@62.115.229.50) (Ping timeout: 265 seconds)
2021-05-06 16:17:07 +0200 <Uniaika> then it may not be from A to B but from A to (Maybe B)
2021-05-06 16:17:29 +0200 <Uniaika> hmm actually Nothing doesn't have a fixed mapping?
2021-05-06 16:17:44 +0200 <Uniaika> agh, I can't give you more pointers on that, gotta ask the set theory peeps
2021-05-06 16:17:47 +0200Feuermagier(~Feuermagi@2a02:2488:4211:3400:7285:c2ff:fe22:172e) (Ping timeout: 260 seconds)
2021-05-06 16:18:01 +0200 <nshepperd2> an embedding of B in A?
2021-05-06 16:18:35 +0200cheater(~user@unaffiliated/cheater)
2021-05-06 16:19:28 +0200jonathanx(~jonathan@h-176-109.A357.priv.bahnhof.se)
2021-05-06 16:21:40 +0200stree(~stree@68.36.8.116)
2021-05-06 16:23:08 +0200swater(bouhier200@perso.iiens.net) (Ping timeout: 246 seconds)
2021-05-06 16:24:34 +0200 <boxscape> kuribas is there a difference between this and an injective map f : B -> A?
2021-05-06 16:25:32 +0200 <kuribas> boxscape: no
2021-05-06 16:25:35 +0200 <tomsmeding> is this not called an inclusion (of B in A) sometimes
2021-05-06 16:26:28 +0200 <superstar64> i'm trying to conceptualize pointers in my language and i ran into this
2021-05-06 16:26:29 +0200 <superstar64> `modify :: Pointer p => ((a, s1) ⊸ (a, s2)) ⊸ (p a, s1) ⊸ (p a, s2)`
2021-05-06 16:26:38 +0200 <superstar64> is this a thing that exists yet?
2021-05-06 16:26:43 +0200 <superstar64> or is there a more general form of this?
2021-05-06 16:26:45 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-05-06 16:26:57 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-05-06 16:26:57 +0200 <kuribas> superstar64: are you new to haskell?
2021-05-06 16:27:23 +0200 <superstar64> no, i'm trying to make my own language and i'm asking if something like this exists yet
2021-05-06 16:27:46 +0200 <kuribas> superstar64: oh, I thought you meant linear types in haskell :)
2021-05-06 16:27:51 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-05-06 16:28:09 +0200 <tomsmeding> are the s1 and s2 essential?
2021-05-06 16:28:32 +0200 <tomsmeding> hm I guess if you want to preserve the information that the given function is linear in it
2021-05-06 16:28:32 +0200benjamingr__(uid23465@gateway/web/irccloud.com/x-vybrriwslamksbzv) (Quit: Connection closed for inactivity)
2021-05-06 16:28:48 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 16:29:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 16:29:42 +0200 <superstar64> i already know i want new and delete, where `new :: a ⊸ p a` and `delete : p a ⊸ a`, i just need to think of some other primitives
2021-05-06 16:29:59 +0200 <superstar64> tomsmeding, they are bounded to `modify` like most other type variables
2021-05-06 16:30:24 +0200 <boxscape> hmm it looks pretty similar to linear fmap
2021-05-06 16:30:46 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-05-06 16:30:55 +0200 <superstar64> it's not an fmap though, a pointer can't change it's type
2021-05-06 16:31:12 +0200 <superstar64> or wait actually it could, it just can't change it's representation
2021-05-06 16:31:39 +0200 <tomsmeding> superstar64: my point about s1/s2 was, is there an application of your modify that cannot be implemented using just modify' :: Pointer p => (a -o a) -o p a -o p a
2021-05-06 16:32:53 +0200 <boxscape> if you had `newtype Pointer' p a b = Pointer' (p a, b)` it seems like `instance Pointer p => Functor (Pointer' p a)` would give you that
2021-05-06 16:33:13 +0200 <boxscape> unless I messed up a type somewhere which is quite possible
2021-05-06 16:33:17 +0200 <tomsmeding> but of course the point is that want to be able to have multiple pointers that you just pass through the computation, preserving the information that you're linear in them
2021-05-06 16:33:34 +0200 <superstar64> tomsmeding, yes, `(a, world) = let !a = a; world' = print(a); (a, world')` or in general anything that modifies the world
2021-05-06 16:34:12 +0200 <superstar64> `s` is usually going the world type i imagine
2021-05-06 16:34:20 +0200 <boxscape> ah, I'm wrong
2021-05-06 16:34:33 +0200 <boxscape> that would be `( s1 ⊸ s2) ⊸ (p a, s1) ⊸ (p a, s2)`
2021-05-06 16:35:11 +0200cortexauth(~cortexaut@2409:4053:2d01:fc8a:2bda:f737:6878:919f)
2021-05-06 16:35:12 +0200swater(bouhier200@perso.iiens.net)
2021-05-06 16:35:38 +0200 <superstar64> boxscape, that's not too useful if `s1` has to be used linearily
2021-05-06 16:35:51 +0200 <boxscape> mhm
2021-05-06 16:36:10 +0200 <superstar64> or wait, nvm, that can't modify `a` at all
2021-05-06 16:36:14 +0200 <boxscape> rigt
2021-05-06 16:37:26 +0200 <tomsmeding> perhaps this is in general a useful operation to have on linear functors in the presence of linear types
2021-05-06 16:37:33 +0200Pickchea(~private@unaffiliated/pickchea)
2021-05-06 16:38:04 +0200 <tomsmeding> like, `fmap :: Functor f => (a -> b) -> f a -> f b` works fine, but `fmapL :: LinearFunctor f => (a -o b) -o f a -o f b` is kind of crippled
2021-05-06 16:38:09 +0200 <tomsmeding> (making up LinearFunctor here)
2021-05-06 16:38:22 +0200 <boxscape> tomsmeding you've made it up pretty well https://hackage.haskell.org/package/linear-base-0.1.0/docs/Control-Functor-Linear.html
2021-05-06 16:38:33 +0200 <tomsmeding> because what you sometimes need is `fmapL' :: LinearFunctor f => ((a, s) -o (b, s')) -o (f a, s) -o (f b, s')`
2021-05-06 16:38:44 +0200 <[exa]> why's the middle lollipop not a normal arrow?
2021-05-06 16:38:57 +0200 <boxscape> [exa] it's a linear arrow, the argument must be used exactly once
2021-05-06 16:39:06 +0200 <boxscape> or wait
2021-05-06 16:39:08 +0200 <boxscape> you mean
2021-05-06 16:39:10 +0200 <boxscape> why is it a linear aroow
2021-05-06 16:39:24 +0200 <tomsmeding> [exa]: I guess that depends on the particular functor?
2021-05-06 16:39:34 +0200 <tomsmeding> if the functor allows it being a -o, then a -o is strictly better
2021-05-06 16:39:52 +0200 <[exa]> yeah, I don't see much reason in having it linear, not sure if that restriction isn't a bit too brutal if you still want to have some nice properties preserved
2021-05-06 16:39:55 +0200proteusguy(~proteusgu@cm-58-10-209-239.revip7.asianet.co.th)
2021-05-06 16:39:58 +0200 <boxscape> https://hackage.haskell.org/package/linear-base-0.1.0/docs/Data-Functor-Linear.html
2021-05-06 16:40:00 +0200 <boxscape> this is the other kind
2021-05-06 16:40:12 +0200 <superstar64> i mean, i can define a functor over pointers with `modify :: Pointer p => ((a, s1) ⊸ (b, s2)) ⊸ (p a, s1) ⊸ (p b, s2)`, but i don't think you can define `modify` in terms of functor maps
2021-05-06 16:40:12 +0200 <boxscape> "All control functors are data functors, but not all data functors are control functors."
2021-05-06 16:40:13 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 16:40:41 +0200 <boxscape> [exa] I haven't read it yet but here you go https://www.tweag.io/blog/2020-01-16-data-vs-control/
2021-05-06 16:41:03 +0200 <tomsmeding> oooo nice
2021-05-06 16:41:12 +0200rekahsoft(~rekahsoft@38.29.28.2)
2021-05-06 16:41:13 +0200 <tomsmeding> that's indeed precisely [exa]'s distinction
2021-05-06 16:41:51 +0200 <tomsmeding> superstar64: no indeed you can't define your modify in terms of my fmapL
2021-05-06 16:42:43 +0200 <[exa]> they don't use the -o for functors there, unless there's the need for it (e.g. when it becomes applicative and nees to consume the original wrap)
2021-05-06 16:42:57 +0200 <[exa]> interesting, thanks for the pointer
2021-05-06 16:44:55 +0200eacameron(uid256985@gateway/web/irccloud.com/x-ddrdfsfxoylsjvjk)
2021-05-06 16:45:25 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Ping timeout: 276 seconds)
2021-05-06 16:45:33 +0200 <[exa]> superstar64: one note, I was actually trying to play with this stuff some time ago as well (and didn't have much time for it), `modify` composes brutally bad. If you don't need the whole program to be totally linear, it's much more useful to view the pointers in a lensish way, as isos
2021-05-06 16:46:39 +0200 <superstar64> i'm trying to define primitives for pointers in my language, what would these lensish ones look like?
2021-05-06 16:46:43 +0200 <tomsmeding> superstar64: heh there's your modify, kind of, in 'on2'
2021-05-06 16:46:48 +0200 <tomsmeding> in the linked blog post
2021-05-06 16:46:56 +0200 <tomsmeding> at least part of the way there
2021-05-06 16:47:00 +0200 <[exa]> at the bare minimum, it gives straightforward combinators to access various deeply nested pointy stuff without feeling like writing assembly all over again
2021-05-06 16:47:35 +0200 <[exa]> ah if that's for some base primitives then that's good I guess
2021-05-06 16:47:41 +0200 <superstar64> can these more complicated one be built on top of `modify` [exa]?
2021-05-06 16:47:48 +0200 <[exa]> I guess so
2021-05-06 16:48:01 +0200cortexauth(~cortexaut@2409:4053:2d01:fc8a:2bda:f737:6878:919f) (Ping timeout: 276 seconds)
2021-05-06 16:48:24 +0200cortexauth(~cortexaut@2409:4053:2291:557d:1149:3540:fa21:7f76)
2021-05-06 16:48:26 +0200wonko7(~wonko7@62.115.229.50)
2021-05-06 16:48:35 +0200 <superstar64> i think `modify` can be built in terms of `new` and `delete` but that's not very practical
2021-05-06 16:48:39 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer)
2021-05-06 16:48:57 +0200 <superstar64> i also need to come up with a version for shared pointers too, somehow
2021-05-06 16:49:06 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-05-06 16:49:09 +0200 <[exa]> we had a toy implementation over a mutable vector in ST but that was a single-seminar thing and I guess the code is lost
2021-05-06 16:49:47 +0200dorkside(~tdbgamer@208.190.197.222)
2021-05-06 16:49:53 +0200Deide(~Deide@217.155.19.23)
2021-05-06 16:51:12 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 16:51:31 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 16:51:39 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 245 seconds)
2021-05-06 16:51:59 +0200 <tomsmeding> there is a nice proof-of-concept of mutable arrays in the linear constraints paper, though that uses linear _constraints_, which is either in ghc 9.2 or not in any release at all yet
2021-05-06 16:52:10 +0200 <tomsmeding> https://arxiv.org/abs/2103.06127
2021-05-06 16:52:17 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 16:52:34 +0200 <tomsmeding> (section 3.1-3.2)
2021-05-06 16:53:28 +0200 <tomsmeding> but of course linear constraints are desugarable to normal linear types code, so it's not like it's impossible to do with normal linear haskell
2021-05-06 16:54:27 +0200 <boxscape> would the syntax be %1=> ? If so, it doesn't seem to be in HEAD.
2021-05-06 16:54:39 +0200 <superstar64> thanks, tomsmeding, i'll have to look though that paper later
2021-05-06 16:54:39 +0200 <tomsmeding> ¯\_(ツ)_/¯
2021-05-06 16:54:47 +0200 <boxscape> fair enough
2021-05-06 16:54:50 +0200 <tomsmeding> :p
2021-05-06 16:54:59 +0200 <tomsmeding> just read the paper for a reading group :p
2021-05-06 16:55:27 +0200 <tomsmeding> if they made the syntax something else than %1=> that would be really weird though
2021-05-06 16:55:49 +0200cortexauth(~cortexaut@2409:4053:2291:557d:1149:3540:fa21:7f76) (Ping timeout: 276 seconds)
2021-05-06 16:56:48 +0200cortexauth(~cortexaut@2409:4053:2291:557d:9c7c:7508:1d26:929d)
2021-05-06 16:56:53 +0200 <boxscape> yeah
2021-05-06 16:57:29 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 16:57:46 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 16:58:20 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
2021-05-06 16:59:02 +0200 <superstar64> why are linear types such a rabbit hole? the more i look into them the more complicated they get
2021-05-06 17:01:39 +0200Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 248 seconds)
2021-05-06 17:01:42 +0200Adluc(~Adluc@83.167.228.130) (Remote host closed the connection)
2021-05-06 17:01:55 +0200 <superstar64> there's qualified linear types (linear types though typeclasses), of course style linear types, and haskell's linear arrows
2021-05-06 17:01:56 +0200 <superstar64> not to mention the distinction between unique and linear types
2021-05-06 17:02:05 +0200 <superstar64> and there might be more system i'm not aware of
2021-05-06 17:02:52 +0200Adluc(~Adluc@2a01:430:17:1::ffff:328)
2021-05-06 17:03:52 +0200 <tomsmeding> more mathematically-inclined people have told me that linear types are a thing from logic that encompass lots of different things; resource-linear types like Haskell has are only one particular example, but there are completely different exotic things too that are also linear types
2021-05-06 17:04:02 +0200 <tomsmeding> maybe that's part of an explanation why there's so many varieties?
2021-05-06 17:04:36 +0200 <tomsmeding> apparently commutative monoid homomorphisms can also be seen as "linear functions" in the right type system (?)
2021-05-06 17:04:53 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-05-06 17:06:48 +0200 <superstar64> eventually i'm going to have to look though my system(a mix of qualified linear types and of course style linearity) and see if it's complete with haskell's interpretation (or vise versa)
2021-05-06 17:06:48 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 17:07:04 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-06 17:09:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-05-06 17:09:49 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 17:10:56 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Remote host closed the connection)
2021-05-06 17:11:29 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-05-06 17:11:57 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 17:14:10 +0200Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578)
2021-05-06 17:14:18 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-05-06 17:15:41 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 17:16:14 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Ping timeout: 245 seconds)
2021-05-06 17:16:21 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-05-06 17:16:23 +0200zebrag(~inkbottle@aaubervilliers-654-1-99-167.w86-212.abo.wanadoo.fr)
2021-05-06 17:16:47 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-05-06 17:21:05 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 17:22:27 +0200bahamas(~lucian@unaffiliated/bahamas) (Quit: leaving)
2021-05-06 17:23:11 +0200wonko7(~wonko7@62.115.229.50) (Ping timeout: 240 seconds)
2021-05-06 17:25:02 +0200Sgeo_(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-05-06 17:25:27 +0200Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
2021-05-06 17:27:36 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-05-06 17:29:37 +0200jgt_(~jgt@87.227.221.129) (Ping timeout: 252 seconds)
2021-05-06 17:30:11 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-05-06 17:30:16 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-05-06 17:31:01 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 17:31:20 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 17:32:24 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-05-06 17:32:55 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
2021-05-06 17:33:20 +0200zebrag(~inkbottle@aaubervilliers-654-1-99-167.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-05-06 17:33:44 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 17:35:37 +0200lieven(~mal@2001:41d0:1:66c4::1) (Read error: Connection reset by peer)
2021-05-06 17:36:11 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-05-06 17:37:53 +0200electricityZZZZ(~electrici@157-131-250-97.fiber.dynamic.sonic.net)
2021-05-06 17:40:03 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-05-06 17:40:15 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 17:40:29 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-05-06 17:42:02 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-05-06 17:42:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 17:43:16 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
2021-05-06 17:43:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-05-06 17:44:07 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 17:44:56 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Remote host closed the connection)
2021-05-06 17:45:13 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f)
2021-05-06 17:45:53 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-05-06 17:47:34 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Ping timeout: 252 seconds)
2021-05-06 17:47:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-05-06 17:49:13 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.2)")
2021-05-06 17:51:58 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-05-06 17:53:31 +0200LKoen(~LKoen@140.170.9.109.rev.sfr.net) (Remote host closed the connection)
2021-05-06 17:54:48 +0200Shuppiluliuma(~shuppilul@153.33.68.161)
2021-05-06 17:55:24 +0200cortexauth(~cortexaut@2409:4053:2291:557d:9c7c:7508:1d26:929d) (Read error: Connection reset by peer)
2021-05-06 17:56:30 +0200cortexauth(~cortexaut@2409:4053:2291:557d:9c7c:7508:1d26:929d)
2021-05-06 17:56:41 +0200cortexauth(~cortexaut@2409:4053:2291:557d:9c7c:7508:1d26:929d) (Client Quit)
2021-05-06 17:57:36 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-05-06 17:59:48 +0200ep1ctetus(~epictetus@82.102.31.164)
2021-05-06 18:00:43 +0200jgt_(~jgt@87.227.221.129)
2021-05-06 18:01:02 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-06 18:01:56 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 18:02:10 +0200lieven(~mal@2001:41d0:1:66c4::1)
2021-05-06 18:03:13 +0200HM(a5cc5411@165.204.84.17)
2021-05-06 18:04:22 +0200HMHGMG
2021-05-06 18:04:49 +0200justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 252 seconds)
2021-05-06 18:06:21 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 18:06:52 +0200jgt_(~jgt@87.227.221.129) (Ping timeout: 240 seconds)
2021-05-06 18:09:07 +0200proofofkeags(~proofofke@205.209.28.54)
2021-05-06 18:09:11 +0200Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 240 seconds)
2021-05-06 18:10:21 +0200ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 260 seconds)
2021-05-06 18:10:24 +0200HGMG(a5cc5411@165.204.84.17) (Quit: Connection closed)
2021-05-06 18:11:11 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-05-06 18:13:45 +0200wonko7(~wonko7@62.115.229.50)
2021-05-06 18:13:56 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 18:15:13 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
2021-05-06 18:15:16 +0200Kaiepi(~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
2021-05-06 18:17:12 +0200Kaiepi(~Kaiepi@47.54.252.148)
2021-05-06 18:17:59 +0200Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-05-06 18:18:23 +0200Kaiepi(~Kaiepi@47.54.252.148)
2021-05-06 18:18:25 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-05-06 18:24:33 +0200shiraeeshi(~shiraeesh@109.166.56.68)
2021-05-06 18:24:54 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-05-06 18:26:18 +0200Tene(~tene@mail.digitalkingdom.org)
2021-05-06 18:26:18 +0200Tene(~tene@mail.digitalkingdom.org) (Changing host)
2021-05-06 18:26:18 +0200Tene(~tene@poipu/supporter/slacker/tene)
2021-05-06 18:26:41 +0200ByronJohnson(~bairyn@unaffiliated/bob0)
2021-05-06 18:27:31 +0200martin02(silas@hund.fs.lmu.de) (Ping timeout: 260 seconds)
2021-05-06 18:29:46 +0200stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-05-06 18:30:52 +0200DTZUZU_(~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 252 seconds)
2021-05-06 18:31:17 +0200Guest_26(ba6aa9f7@186.106.169.247)
2021-05-06 18:31:21 +0200juuandyy(~juuandyy@90.106.228.121)
2021-05-06 18:31:54 +0200 <Guest_26> -_-
2021-05-06 18:32:18 +0200Guest_26(ba6aa9f7@186.106.169.247) (Client Quit)
2021-05-06 18:33:29 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-05-06 18:35:30 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-05-06 18:35:41 +0200boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220) (Ping timeout: 240 seconds)
2021-05-06 18:35:47 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2021-05-06 18:36:47 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 18:37:04 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 18:37:11 +0200ep1ctetus(~epictetus@82.102.31.164) (Ping timeout: 246 seconds)
2021-05-06 18:37:12 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-05-06 18:39:23 +0200jgt_(~jgt@87.227.221.129)
2021-05-06 18:39:27 +0200Kaiepi(~Kaiepi@47.54.252.148) (Remote host closed the connection)
2021-05-06 18:40:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 18:40:17 +0200LKoen(~LKoen@140.170.9.109.rev.sfr.net)
2021-05-06 18:42:32 +0200stree(~stree@68.36.8.116)
2021-05-06 18:43:48 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-05-06 18:43:51 +0200jgt_(~jgt@87.227.221.129) (Ping timeout: 246 seconds)
2021-05-06 18:45:46 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 18:48:16 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 260 seconds)
2021-05-06 18:49:33 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net) (Quit: Connection closed)
2021-05-06 18:50:26 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-05-06 18:51:11 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
2021-05-06 18:51:55 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-05-06 18:55:37 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 252 seconds)
2021-05-06 18:55:37 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-05-06 18:55:38 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 18:56:10 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ()
2021-05-06 19:01:45 +0200kderme(2e675c7c@46-92-124.adsl.cyta.gr) (Quit: Connection closed)
2021-05-06 19:05:08 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 19:07:28 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 19:08:38 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 19:08:41 +0200 <NemesisD> is it possible to convert something of kind Bool into a Constraint? i've got a type family that returns a kind Bool if a type is in a type-level list but i'd like to use it as a constraint and `TElem x xs ~ 'Bool` is clunky and gets seen as an unused constraint
2021-05-06 19:09:01 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 19:09:10 +0200 <NemesisD> whoops, i meant 'True not 'Bool
2021-05-06 19:11:05 +0200pavonia(~user@unaffiliated/siracusa)
2021-05-06 19:11:46 +0200dcoutts_(~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
2021-05-06 19:12:06 +0200dcoutts_(~duncan@94.186.125.91.dyn.plus.net)
2021-05-06 19:12:10 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 19:12:27 +0200DTZUZU(~DTZUZO@205.ip-149-56-132.net)
2021-05-06 19:13:35 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
2021-05-06 19:14:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-05-06 19:15:08 +0200jgt_(~jgt@87.227.221.129)
2021-05-06 19:18:37 +0200superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed)
2021-05-06 19:18:56 +0200ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 19:19:02 +0200lawid(~quassel@2a02:8109:b5c0:5334:265e:beff:fe2a:dde8) (Remote host closed the connection)
2021-05-06 19:19:17 +0200john2gb0(~john2gb@94-225-47-8.access.telenet.be)
2021-05-06 19:19:46 +0200boxscape(54a350dc@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.80.220)
2021-05-06 19:20:04 +0200 <boxscape> Is there a difference between `f (_, _) = ()` and `f !(_, _) = ()`?
2021-05-06 19:20:19 +0200lawid(~quassel@2a02:8109:b5c0:5334:265e:beff:fe2a:dde8)
2021-05-06 19:20:56 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-05-06 19:21:38 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 19:22:01 +0200 <boxscape> okay docs say "A bang only really has an effect if it precedes a variable or wild-card pattern"
2021-05-06 19:22:18 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 19:23:56 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ()
2021-05-06 19:24:28 +0200 <boxscape> isn't it tantalizing how they put that "really" in there, as if to say "there might possibly be edge cases where this isn't true, but we won't tell you about them"
2021-05-06 19:25:56 +0200 <cdsmith> boxscape: Not sure about weird corner cases, but in this case at least, the ! doesn't change anything because the match already forces the pair.  On the other hand: f ~(_, _) = () would be different
2021-05-06 19:26:09 +0200 <boxscape> right, that makes sense
2021-05-06 19:26:27 +0200 <opqdonut> yeah if you're mentioning a constructor ! won't do anything more
2021-05-06 19:26:34 +0200 <boxscape> okay
2021-05-06 19:26:52 +0200 <opqdonut> I mean a pattern like !(Cons x y z), which !(_,_) effectively is
2021-05-06 19:26:56 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 19:26:56 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Client Quit)
2021-05-06 19:27:55 +0200 <opqdonut> hmm I wonder about a newtype... for `newtype Foo x = Foo x`, is the `!(Foo _)` pattern equivalent to `_` or `!_`...
2021-05-06 19:28:39 +0200 <opqdonut> yes, it's equivalent to !_
2021-05-06 19:28:49 +0200 <boxscape> yeah
2021-05-06 19:29:09 +0200frdg(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 19:29:14 +0200 <boxscape> I guess the "really" is justified then
2021-05-06 19:29:25 +0200 <opqdonut> nice corner case
2021-05-06 19:29:41 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
2021-05-06 19:31:44 +0200 <boxscape> interesting, trying to use ~ with unlifted types results in an error
2021-05-06 19:31:53 +0200 <boxscape> I kind of expected ghc to just silently pretend the ~ wasn't there
2021-05-06 19:33:15 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net) (Quit: Connection closed)
2021-05-06 19:33:24 +0200 <frdg> how can I make a boolean conjunction point free. For example I want to make this function point free: `f x = x > 10 || x < 0` || x > 1000. My ideas have been writing it as a foldr on a list of the predicates [(>10),(<0),(>1000)], but that didn't work for me. I also though I could write it by fmapping (||) onto a composition of the predicates but that also did not work. I would like some help.
2021-05-06 19:33:49 +0200cub3s_(bifunc2@gateway/vpn/protonvpn/bifunc2)
2021-05-06 19:34:30 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 19:34:47 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 19:34:53 +0200incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
2021-05-06 19:35:04 +0200 <boxscape> % :t \x -> any ($ x) [(>10), (<0), (>1000)]
2021-05-06 19:35:04 +0200 <yahb> boxscape: (Ord a, Num a) => a -> Bool
2021-05-06 19:35:09 +0200 <boxscape> not exactly pointfree yet
2021-05-06 19:35:12 +0200 <boxscape> but a start maybe
2021-05-06 19:35:33 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 19:35:46 +0200incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2021-05-06 19:36:45 +0200 <boxscape> (that's a disjunction btw, not a conjunction)
2021-05-06 19:37:10 +0200vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-05-06 19:37:12 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-05-06 19:38:26 +0200ukari(~ukari@unaffiliated/ukari)
2021-05-06 19:39:45 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 19:40:55 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:341c:1f82:ae5b:39ec) (Ping timeout: 276 seconds)
2021-05-06 19:41:53 +0200 <boxscape> @frdg how about this
2021-05-06 19:41:54 +0200 <lambdabot> Extra stuff at end of line
2021-05-06 19:41:59 +0200 <boxscape> % or <$> sequence [(>10), (<0), (>1000)]
2021-05-06 19:41:59 +0200 <yahb> boxscape: ; <interactive>:55:1: error:; * No instance for (Show (Integer -> Bool)) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it
2021-05-06 19:42:06 +0200 <boxscape> % :t or <$> sequence [(>10), (<0), (>1000)]
2021-05-06 19:42:06 +0200 <yahb> boxscape: (Ord a, Num a) => a -> Bool
2021-05-06 19:43:13 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 19:43:55 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 19:44:34 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 252 seconds)
2021-05-06 19:45:40 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-06 19:45:53 +0200 <frdg> boxscape: I got so close with (flip any)
2021-05-06 19:46:22 +0200 <boxscape> yeah that would get you to pointfree-ness too, in the end
2021-05-06 19:47:39 +0200 <boxscape> oh, perhaps less confusingly,
2021-05-06 19:47:46 +0200 <boxscape> % or . sequence [(>10), (<0), (>1000)]
2021-05-06 19:47:46 +0200 <yahb> boxscape: ; <interactive>:57:1: error:; * No instance for (Show (Integer -> Bool)) arising from a use of `print'; (maybe you haven't applied a function to enough arguments?); * In a stmt of an interactive GHCi command: print it
2021-05-06 19:47:48 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 19:47:49 +0200 <boxscape> % :t or . sequence [(>10), (<0), (>1000)]
2021-05-06 19:47:49 +0200 <yahb> boxscape: (Ord a, Num a) => a -> Bool
2021-05-06 19:48:16 +0200 <tomsmeding> "... by fmapping (||) onto a composition of the predicates ..." -- that's basically this, isn't it? :p
2021-05-06 19:49:02 +0200 <boxscape> hm, seems similar yes
2021-05-06 19:49:07 +0200 <frdg> Im glad I had somewhat the right idea!
2021-05-06 19:50:01 +0200cub3s_(bifunc2@gateway/vpn/protonvpn/bifunc2) (Quit: Leaving)
2021-05-06 19:50:50 +0200 <cdsmith> Just sharing because I'm excited.  I've been working on a new mock framework for Haskell, and I've just managed the first successful unit test of the framework's own TH code, by using the framework itself to mock the methods of Quasi that don't work in IO. :)
2021-05-06 19:50:58 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 19:51:16 +0200 <boxscape> nice
2021-05-06 19:51:46 +0200notzmv(~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
2021-05-06 19:52:44 +0200 <cdsmith> I guess it's sort of circular, in that if I don't trust the TH generator, then I shouldn't trust the mock of Quasi that I built with the generated code... but I'm not that picky!
2021-05-06 19:53:09 +0200mathlover2(~mathlover@cpe-67-248-97-14.nycap.res.rr.com)
2021-05-06 19:53:35 +0200 <boxscape> I think Goedel once said that no testing framework can establish its own soundness
2021-05-06 19:55:00 +0200mathlover2(~mathlover@cpe-67-248-97-14.nycap.res.rr.com) (Client Quit)
2021-05-06 19:55:24 +0200mathlover2(~mathlover@cpe-67-248-97-14.nycap.res.rr.com)
2021-05-06 19:55:38 +0200frdg(~user@pool-96-252-123-136.bstnma.fios.verizon.net) ("ERC (IRC client for Emacs 27.2)")
2021-05-06 19:56:46 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:9c28:d6f1:420e:a485)
2021-05-06 20:00:24 +0200 <boxscape> hm, weird, if there was a function of type `foo :: f (t a) -> (f a -> b) -> t b` you could just write `foo [(<10), (<0), (>1000)] or`, but the type of foo is pretty much the reverse of traverse
2021-05-06 20:00:29 +0200 <boxscape> % :t traverse
2021-05-06 20:00:29 +0200 <yahb> boxscape: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
2021-05-06 20:03:41 +0200 <boxscape> Cotraversable looks promising
2021-05-06 20:03:49 +0200 <boxscape> cotraverse :: Functor g => (g a -> b) -> g (f a) -> f b
2021-05-06 20:04:48 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-05-06 20:05:02 +0200 <boxscape> (Or Distributive in the kmettiverse)
2021-05-06 20:05:16 +0200elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2021-05-06 20:05:42 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-05-06 20:09:58 +0200 <edwardk> i try to avoid saying cotraversable because its not really dual to traversable
2021-05-06 20:10:11 +0200 <boxscape> I see
2021-05-06 20:10:31 +0200 <edwardk> in the new distributive package its being renamed to Representable (and taking on all the powers of Representable from adjunctions)
2021-05-06 20:10:58 +0200 <boxscape> edwardk it looks like I'd need a List instance here - is there none in the Distributive library because it's impossible or for other reasons?
2021-05-06 20:10:58 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (Ping timeout: 252 seconds)
2021-05-06 20:11:00 +0200 <edwardk> mainly because by using the hkd-based encoding of distributive it becomes powerful enough to implement all the representable bits
2021-05-06 20:11:06 +0200 <edwardk> impossible
2021-05-06 20:11:12 +0200 <boxscape> I see
2021-05-06 20:11:16 +0200Guest97962(~zmv@unaffiliated/zmv)
2021-05-06 20:11:35 +0200 <edwardk> Representable f is saying that there exists some x (or Rep f). such that f a is isomorphic to Rep f -> a
2021-05-06 20:12:03 +0200 <edwardk> [a] isn't isomorphic to a function from Natural, it contains extra information about the length of the list
2021-05-06 20:12:34 +0200 <boxscape> hm, okay
2021-05-06 20:12:34 +0200 <edwardk> so its morally something like (exists n : Nat. Fin n -> a) -- but that existential takes it to 'not representable'
2021-05-06 20:13:09 +0200 <boxscape> I see...
2021-05-06 20:13:21 +0200 <edwardk> you have to be able to perfectly zip an unknown number of copies or zero copies of the thing, there can be no choice of shape whatsoever, just one shape with different data in it
2021-05-06 20:13:47 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 20:13:58 +0200 <boxscape> ok, makes sense
2021-05-06 20:14:07 +0200 <boxscape> thanks for the explanation
2021-05-06 20:15:26 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2021-05-06 20:17:41 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 20:18:52 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-05-06 20:19:46 +0200bitmagie(~Thunderbi@200116b8068ddd008475b3532e7961e6.dip.versatel-1u1.de)
2021-05-06 20:22:58 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-05-06 20:24:06 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 20:24:14 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-06 20:24:21 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 20:24:34 +0200eacameron(uid256985@gateway/web/irccloud.com/x-ddrdfsfxoylsjvjk) (Quit: Connection closed for inactivity)
2021-05-06 20:24:40 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 20:24:42 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-05-06 20:24:54 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-05-06 20:25:05 +0200thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-05-06 20:30:38 +0200nrdmn98(~nrdmn@95.129.53.118)
2021-05-06 20:32:10 +0200yangby(~secret@122.234.8.238)
2021-05-06 20:32:29 +0200bitmagie(~Thunderbi@200116b8068ddd008475b3532e7961e6.dip.versatel-1u1.de) (Quit: bitmagie)
2021-05-06 20:32:59 +0200yangby(~secret@122.234.8.238) (Client Quit)
2021-05-06 20:33:48 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-05-06 20:34:10 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2021-05-06 20:37:00 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-05-06 20:37:04 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-05-06 20:37:07 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
2021-05-06 20:37:28 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 20:37:38 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 20:37:49 +0200xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2021-05-06 20:37:57 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 20:38:26 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2021-05-06 20:39:17 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-05-06 20:43:21 +0200Pickchea(~private@unaffiliated/pickchea)
2021-05-06 20:44:52 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-05-06 20:45:27 +0200 <boxscape> so it turns out I must have misread the types because I don't need a list instance after all
2021-05-06 20:45:43 +0200 <boxscape> `cotraverse or [(<0), (>10), (>1000)]` works just fine
2021-05-06 20:47:34 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-05-06 20:47:54 +0200 <boxscape> I like it :)
2021-05-06 20:49:26 +0200chimera(~chimera@168-182-134-95.pool.ukrtel.net)
2021-05-06 20:50:32 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-05-06 20:55:53 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 21:00:06 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-05-06 21:02:19 +0200gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2021-05-06 21:02:42 +0200gxt(~gxt@gateway/tor-sasl/gxt)
2021-05-06 21:03:48 +0200stree(~stree@68.36.8.116)
2021-05-06 21:03:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-05-06 21:07:24 +0200Guest97962(~zmv@unaffiliated/zmv) (Remote host closed the connection)
2021-05-06 21:08:08 +0200rajivr(uid269651@gateway/web/irccloud.com/x-wpklepfaafxblxec) (Quit: Connection closed for inactivity)
2021-05-06 21:08:28 +0200notzmv-(~zmv@unaffiliated/zmv)
2021-05-06 21:10:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 21:10:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 21:12:07 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-05-06 21:13:03 +0200ukari(~ukari@unaffiliated/ukari)
2021-05-06 21:14:32 +0200mathlover2(~mathlover@cpe-67-248-97-14.nycap.res.rr.com) (Quit: Leaving)
2021-05-06 21:14:46 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-05-06 21:14:55 +0200mathlover2(~mathlover@cpe-67-248-97-14.nycap.res.rr.com)
2021-05-06 21:14:55 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 21:16:45 +0200ji(896e4b9e@137.110.75.158)
2021-05-06 21:17:04 +0200ji(896e4b9e@137.110.75.158) (Client Quit)
2021-05-06 21:18:12 +0200 <hyperisco> :t cotraverse
2021-05-06 21:18:13 +0200 <lambdabot> error:
2021-05-06 21:18:13 +0200 <lambdabot> • Variable not in scope: cotraverse
2021-05-06 21:18:13 +0200 <lambdabot> • Perhaps you meant one of these:
2021-05-06 21:19:38 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net) (Quit: Connection closed)
2021-05-06 21:22:11 +0200wonko7(~wonko7@62.115.229.50) (Ping timeout: 240 seconds)
2021-05-06 21:22:36 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 21:26:56 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Remote host closed the connection)
2021-05-06 21:27:11 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 21:28:22 +0200elliott_(~elliott_@pool-108-18-30-46.washdc.fios.verizon.net)
2021-05-06 21:29:33 +0200nineonine(~nineonine@2604:3d08:7783:f200:98ea:cd24:b2e0:9b6f) (Remote host closed the connection)
2021-05-06 21:30:32 +0200chimera(~chimera@168-182-134-95.pool.ukrtel.net) (Remote host closed the connection)
2021-05-06 21:31:32 +0200chimera(~chimera@168-182-134-95.pool.ukrtel.net)
2021-05-06 21:32:53 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 246 seconds)
2021-05-06 21:33:14 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-06 21:33:16 +0200thc202(~thc202@unaffiliated/thc202)
2021-05-06 21:34:49 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 21:35:09 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-05-06 21:35:53 +0200 <joel135> @hoogle cotraverse
2021-05-06 21:35:54 +0200 <lambdabot> Data.Distributive cotraverse :: (Distributive g, Functor f) => (f a -> b) -> f (g a) -> g b
2021-05-06 21:35:54 +0200 <lambdabot> Rank2 cotraverse :: (Distributive g, Functor m) => (forall a . m (p a) -> q a) -> m (g p) -> g q
2021-05-06 21:35:54 +0200 <lambdabot> Data.Cotraversable cotraverse :: (Cotraversable f, Functor g) => (g a -> b) -> g (f a) -> f b
2021-05-06 21:37:49 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2021-05-06 21:38:26 +0200thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-05-06 21:39:31 +0200juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-05-06 21:39:40 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-05-06 21:42:01 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-05-06 21:44:10 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-05-06 21:44:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-05-06 21:46:50 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-05-06 21:47:08 +0200royal_screwup213(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-06 21:48:44 +0200m_shiraeeshi(~shiraeesh@5.101.59.123)
2021-05-06 21:50:44 +0200shiraeeshi(~shiraeesh@109.166.56.68) (Ping timeout: 246 seconds)
2021-05-06 21:51:15 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-05-06 21:54:03 +0200sajith(~sajith@fsf/member/nonzen) ()
2021-05-06 21:55:25 +0200 <zzz> i'm starting to look into the DataKinds extention. are there any general pointers on reasoning about performance with type level stuff?
2021-05-06 21:55:32 +0200ADG1089(~aditya@27.58.164.109)
2021-05-06 21:56:37 +0200nisstyre(~wes@python-zero/conduct-committee/nisstyre) (Quit: WeeChat 3.1)
2021-05-06 21:57:15 +0200nisstyre(~wes@python-zero/conduct-committee/nisstyre)
2021-05-06 21:57:59 +0200kum0(~kumo@139.180.144.166) (Ping timeout: 260 seconds)
2021-05-06 22:01:23 +0200kiltzman(~k1ltzman@5.206.224.243) (Ping timeout: 248 seconds)
2021-05-06 22:01:33 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-05-06 22:02:33 +0200kiltzman(~k1ltzman@195.189.99.96)
2021-05-06 22:03:39 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-05-06 22:04:37 +0200coot(~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-05-06 22:04:43 +0200ADG1089(~aditya@27.58.164.109) (Remote host closed the connection)
2021-05-06 22:05:11 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 240 seconds)
2021-05-06 22:07:06 +0200ddellac__(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-05-06 22:07:37 +0200petersen(~petersen@redhat/juhp)
2021-05-06 22:07:39 +0200stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-05-06 22:07:45 +0200ADG1089(~aditya@27.58.164.109)
2021-05-06 22:08:03 +0200stree(~stree@68.36.8.116)
2021-05-06 22:11:25 +0200kum0(~kumo@139.180.144.166)
2021-05-06 22:12:57 +0200roconnor(~roconnor@host-45-58-195-183.dyn.295.ca) (Ping timeout: 260 seconds)
2021-05-06 22:14:37 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-05-06 22:14:48 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-06 22:15:10 +0200jneira(4f9b01f9@gateway/web/cgi-irc/kiwiirc.com/ip.79.155.1.249)
2021-05-06 22:15:43 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
2021-05-06 22:16:12 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-05-06 22:16:34 +0200kritzefitz(~kritzefit@212.86.56.80)
2021-05-06 22:17:20 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 22:17:23 +0200roconnor(~roconnor@host-45-58-195-183.dyn.295.ca)
2021-05-06 22:18:10 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-05-06 22:18:14 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
2021-05-06 22:18:54 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-05-06 22:19:42 +0200gitgood(~gitgood@80-44-12-75.dynamic.dsl.as9105.com)
2021-05-06 22:20:33 +0200usr25(~usr25@unaffiliated/usr25)
2021-05-06 22:20:48 +0200xcmw(~textual@dyn-72-33-2-152.uwnet.wisc.edu)
2021-05-06 22:21:46 +0200s00pcan(~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 240 seconds)
2021-05-06 22:22:15 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-05-06 22:22:28 +0200 <nut> are there any examples showing how to use template haskell to auto generate new data types?
2021-05-06 22:22:32 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-05-06 22:23:01 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-05-06 22:23:03 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-05-06 22:23:26 +0200 <nut> my use case is: a function returns a list of countries, and I want to make a new data type where each country is a field
2021-05-06 22:23:56 +0200s00pcan(~chris@107.181.165.217)
2021-05-06 22:25:44 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-05-06 22:25:57 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 22:26:16 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 22:26:51 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 22:28:11 +0200rekahsoft(~rekahsoft@38.29.28.2) (Ping timeout: 260 seconds)
2021-05-06 22:29:19 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9) (Client Quit)
2021-05-06 22:29:58 +0200 <sm[m]> g'day all
2021-05-06 22:30:00 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (Quit: Ping timeout (120 seconds))
2021-05-06 22:30:07 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-05-06 22:30:15 +0200 <maerwald> sm[m]: namaste
2021-05-06 22:30:26 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-05-06 22:30:59 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-05-06 22:31:14 +0200 <sm[m]> two how-do-I-learn-haskell threads, almost the same, hours apart:
2021-05-06 22:31:14 +0200 <sm[m]> https://www.reddit.com/r/haskell/comments/n5gkax/less_than_a_week_til_my_haskell_exams_and_i_feel/
2021-05-06 22:31:14 +0200 <sm[m]> https://www.reddit.com/r/haskell/comments/n5pl48/i_want_to_learn_haskell/
2021-05-06 22:31:15 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-05-06 22:31:46 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-05-06 22:31:58 +0200 <sm[m]> surely we could do better in gathering and highlighting the best resources in one place. But what's the cheap effective way ? Any thoughts ?
2021-05-06 22:32:23 +0200ukari(~ukari@unaffiliated/ukari)
2021-05-06 22:32:26 +0200nbloomf(~nbloomf@2600:1700:ad14:3020:3c82:1c53:1e38:e2d9)
2021-05-06 22:32:47 +0200 <sm[m]> it will overwhelm any normal single curator, so I think it needs to have some form of voting
2021-05-06 22:33:03 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net) (Quit: Connection closed)
2021-05-06 22:33:23 +0200 <sm[m]> is a (recurring ?) reddit thread the simplest ?
2021-05-06 22:35:13 +0200 <juri_> be glad these are the problems we have. :)
2021-05-06 22:36:12 +0200 <sm[m]> I'm not glad, I'm bored of having this problem for a decade or more
2021-05-06 22:36:19 +0200Ernest(6d4d403f@109.77.64.63)
2021-05-06 22:36:35 +0200 <maerwald> what problem exactly
2021-05-06 22:36:47 +0200 <maerwald> a student getting scared before exams?
2021-05-06 22:36:53 +0200 <geekosaur> dunno, they're less than a week from exams and only just asking, what makes you think anything more discoverable will help?
2021-05-06 22:37:27 +0200 <geekosaur> you can lead a student to knowledge but you can't make them think
2021-05-06 22:37:34 +0200fendor_fendor
2021-05-06 22:37:36 +0200MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
2021-05-06 22:37:40 +0200 <maerwald> haskell exams are usually: desugar do-notation, do something funny with lists, understand foldr
2021-05-06 22:38:12 +0200MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru)
2021-05-06 22:39:12 +0200 <sm[m]> no, I don't care about the exam cruncher :) I mean this one: it is true that it's "hard" for newcomers to find the best place to start, and because of this we get these endless inefficient threads where we all look up our favorite resources and repeat them
2021-05-06 22:39:46 +0200 <maerwald> but it's true... haskell wiki is terrible and we don't have something as awesome as doc.rust-lang.org
2021-05-06 22:39:54 +0200 <maerwald> not even close
2021-05-06 22:40:00 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-05-06 22:40:35 +0200 <maerwald> summon the documentation task force Uniaika
2021-05-06 22:40:56 +0200 <maerwald> do this for haskell: https://doc.rust-lang.org/book/index.html
2021-05-06 22:41:52 +0200 <maerwald> and before someone links "what I wish I knew...": that's only a collection, not a tutorial or book
2021-05-06 22:41:56 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-05-06 22:42:18 +0200Ernest(6d4d403f@109.77.64.63) (Quit: Connection closed)
2021-05-06 22:42:24 +0200 <maerwald> I actually maintain a private markdown with links about various topics
2021-05-06 22:43:20 +0200 <maerwald> https://github.com/i-am-tom/haskell-exercises
2021-05-06 22:43:23 +0200 <maerwald> https://github.com/system-f/fp-course
2021-05-06 22:43:37 +0200 <maerwald> https://github.com/tssm/up-to-date-real-world-haskell
2021-05-06 22:44:12 +0200 <sm[m]> what would "do this" mean here maerwald - write a new clean Haskell book ? Gather existing docs into an organized mdbook-based site ?
2021-05-06 22:44:37 +0200 <maerwald> sm[m]: write a new clean haskell book
2021-05-06 22:45:22 +0200 <sm[m]> Ok, that'd be cool if the right persons tackle it but I'm looking for something cheaper
2021-05-06 22:46:08 +0200 <maerwald> https://www.vex.net/~trebla/haskell/
2021-05-06 22:46:29 +0200 <maerwald> those should already be enough material for a week
2021-05-06 22:46:37 +0200 <sm[m]> a better way to simply capture all the great existing links in one place. And secondly a sustainable way to highlight the community's favourites
2021-05-06 22:46:50 +0200nineonine(~nineonine@2604:3d08:7783:f200:a9b8:e92a:88db:4a1)
2021-05-06 22:46:57 +0200 <maerwald> you know haskell community would never agree on anything
2021-05-06 22:47:17 +0200 <maerwald> like: these are the sanctioned links for learning
2021-05-06 22:47:25 +0200 <sm[m]> no I don't know that and I'm denying it lalala
2021-05-06 22:47:33 +0200 <maerwald> xD
2021-05-06 22:47:58 +0200 <sm[m]> even if its one persons project at least I could link it each time
2021-05-06 22:48:17 +0200 <Uniaika> hello yes I am the Documentation Task Force
2021-05-06 22:48:18 +0200 <maerwald> I think I would also leave that to the documentation task force
2021-05-06 22:48:33 +0200 <maerwald> There is the documentation task force
2021-05-06 22:48:43 +0200 <nshepperd> https://www.haskell.org/documentation/ has a variety of links
2021-05-06 22:48:44 +0200 <maerwald> short: DTF
2021-05-06 22:48:49 +0200 <Uniaika> maerwald: DTF
2021-05-06 22:48:55 +0200 <Uniaika> anyway, what's the matter?
2021-05-06 22:49:26 +0200acidjnk_new2(~acidjnk@p200300d0c72b954650e5c2c931fd0d8a.dip0.t-ipconnect.de)
2021-05-06 22:49:39 +0200 <maerwald> sm[m] is sad about learning resources not having a central place where they are gathered
2021-05-06 22:49:49 +0200 <nshepperd> you do however have to press the "documentation" button to find that, and then somehow pick one of the options from the ~20 different tutorials
2021-05-06 22:50:14 +0200 <sm[m]> see our discussion above for context
2021-05-06 22:50:27 +0200 <maerwald> nshepperd: TIL that most ppl don't even know how to update haskell.org :p
2021-05-06 22:50:46 +0200 <Unhammer> What's the term for a pair of functions where fg=gf?
2021-05-06 22:50:51 +0200 <maerwald> so a github repo would probably be more approrpiate
2021-05-06 22:50:54 +0200 <maerwald> to move fast
2021-05-06 22:50:57 +0200 <sm[m]> "Newcomers don't know where to start, and this leads to endless inefficient support threads"
2021-05-06 22:50:58 +0200 <Unhammer> f.g=g.f
2021-05-06 22:52:15 +0200 <sm[m]> "What's a cheap way we could do better at gathering, organizing and advertising all the things for easier getting-started"
2021-05-06 22:53:20 +0200 <maerwald> sm[m]: installers pointing users to a documentation link :)
2021-05-06 22:53:42 +0200 <maerwald> because people don't google "good haskell documentation"
2021-05-06 22:53:42 +0200 <Unhammer> Eg (*2) and (*3), apply in any order
2021-05-06 22:53:49 +0200 <maerwald> they google answers to specific questions
2021-05-06 22:54:01 +0200 <nshepperd> Unhammer: commutative
2021-05-06 22:54:20 +0200 <Unhammer> Oh phew
2021-05-06 22:55:04 +0200 <nshepperd> or "f and g commute"
2021-05-06 22:55:13 +0200 <Unhammer> I looked up on Wikipedia and it only had examples of values commuting around pluses
2021-05-06 22:55:22 +0200 <sm[m]> It's not essential that people find the place themselves, that's a harder problem. But if there is one best place, we could provide it to the askers and save effort.
2021-05-06 22:55:41 +0200 <Unhammer> Thanks nshepperd
2021-05-06 22:56:17 +0200Guest87676(~laudiacay@67.176.215.84)
2021-05-06 22:56:36 +0200 <maerwald> sm[m]: the danger with that approach is that it just becomes a list and not a maintained *curated* set
2021-05-06 22:56:50 +0200 <maerwald> and then the list is overwhelming and not helping anyone
2021-05-06 22:56:59 +0200 <m_shiraeeshi> sm[m]: how about adding a functionality to lambdabot or some other bot, so that it remembers recommendations and presents them when asked
2021-05-06 22:57:28 +0200 <maerwald> this is why I think only a consistent haskell book will be an improvement
2021-05-06 22:57:46 +0200 <nshepperd> in that second reddit thread, the user commented that there actually was a list of learning material right there already but they didn't see it because of reddit's garbage design
2021-05-06 22:57:59 +0200 <sm[m]> Yes, as I said it needs to include some way of identifying the best/most suitable items, and I suggest voting as a cheap non-controversial mechanism
2021-05-06 22:58:11 +0200 <nshepperd> take from that what you will...
2021-05-06 22:58:26 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-06 22:58:37 +0200 <maerwald> sm[m]: voting is non-controversial? :>
2021-05-06 22:58:43 +0200Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-05-06 22:59:01 +0200 <sm[m]> m_shiraeeshi: we have that, and it's only useful to irc users
2021-05-06 22:59:26 +0200jneira(4f9b01f9@gateway/web/cgi-irc/kiwiirc.com/ip.79.155.1.249) (Ping timeout: 240 seconds)
2021-05-06 22:59:33 +0200aidecoe(~aidecoe@unaffiliated/aidecoe)
2021-05-06 22:59:55 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 23:00:12 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 23:00:36 +0200 <m_shiraeeshi> sm[m]: an irc user can get current recommendations from lambdabot and post them to reddit
2021-05-06 23:00:53 +0200 <sm[m]> maerwald, yes, eg votes add useful signal in Reddit threads or on stack overflow and we're all used to that
2021-05-06 23:00:55 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 252 seconds)
2021-05-06 23:01:33 +0200 <maerwald> sm[m]: gnah... reddit is the best example why votes are controversial :p
2021-05-06 23:01:58 +0200 <sm[m]> m_shiraeeshi: some kind of single help db accessible in various ways is possible
2021-05-06 23:02:04 +0200 <maerwald> they are based on ppls mood, not on their thinking
2021-05-06 23:02:06 +0200 <m_shiraeeshi> we can also add "current recommendations for beginners" page to tomsmedding's site
2021-05-06 23:02:08 +0200catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 258 seconds)
2021-05-06 23:02:33 +0200 <nshepperd> votes can easily be worthless if there's nothing driving them to mean what you want them to
2021-05-06 23:02:37 +0200ADG1089(~aditya@27.58.164.109) (Remote host closed the connection)
2021-05-06 23:02:55 +0200 <sm[m]> maerwald we don't need to assume the worst, we have wanted useful voting on hackage for ever and it would be an improvement over nothing
2021-05-06 23:03:16 +0200 <maerwald> sm[m]: does it even work on hackage?
2021-05-06 23:03:20 +0200 <sm[m]> Like in app stores, votes are useful signal, and cheap
2021-05-06 23:03:22 +0200 <maerwald> I could never figure out how it works
2021-05-06 23:03:32 +0200 <sm[m]> Not very well yet
2021-05-06 23:03:40 +0200 <juri_> votes without verification are dicey, as well.
2021-05-06 23:03:48 +0200 <maerwald> sm[m]: yeah, like 5 star reviews on amazon... and when you buy it, the product is crap :p
2021-05-06 23:04:32 +0200 <sm[m]> if you're going to focus on worst case... I'm interested in ways to make things a little better
2021-05-06 23:04:36 +0200 <nshepperd> i think I'd want to know what stopped the people asking here from googling "haskell", clicking "documentation" then going down the list
2021-05-06 23:04:52 +0200 <maerwald> sm[m]: I'd much rather leave the decision of what to include to the documentation task force
2021-05-06 23:05:03 +0200catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2021-05-06 23:05:05 +0200 <maerwald> dictatorship is usually better than democracy
2021-05-06 23:05:27 +0200 <maerwald> (I guess you could say that's controversial too)
2021-05-06 23:06:12 +0200 <sm[m]> maerwald: that'd be cool if they are up to it, do we have a DTF with that much capacity ? I think not yet or it would have happened
2021-05-06 23:06:38 +0200 <maerwald> Uniaika may have been swept away by GHC CI issues
2021-05-06 23:07:06 +0200 <nshepperd> making a new list somewhere else may not help at all depending on what the exact problem is
2021-05-06 23:07:25 +0200 <sm[m]> probably Haskell Foundation has some discussions going on about this right now
2021-05-06 23:08:08 +0200glowpelt(~myst@focks.pw)
2021-05-06 23:08:23 +0200 <maerwald> sm[m]: yeah, maybe they got everything sorted out
2021-05-06 23:08:32 +0200glowpeltGuest55803
2021-05-06 23:08:35 +0200maerwaldgoes back drinking his beer
2021-05-06 23:08:40 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Remote host closed the connection)
2021-05-06 23:08:45 +0200 <juri_> I think one primary thing we forget when trying to advise people on how to get 'into' haskell is who the person is, where they're coming from, etc.
2021-05-06 23:08:49 +0200 <nshepperd> do people just not think to Google "haskell"? then maybe the ghc installer should print out a link to haskell.org/documentation
2021-05-06 23:08:56 +0200seven_three(~user@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-05-06 23:09:09 +0200 <nshepperd> or maybe the word "documentation" doesn't sound sufficiently tutorial-like
2021-05-06 23:09:15 +0200 <maerwald> nshepperd: yes, I also think the installer can direct ppl
2021-05-06 23:09:22 +0200Feuermagier(~Feuermagi@213.178.26.41)
2021-05-06 23:09:25 +0200 <sm[m]> nshepperd: no they don't, and we'll never persuade all of them to
2021-05-06 23:09:25 +0200 <juri_> I come from a non-ordinary background, so it's easy for me to see.
2021-05-06 23:09:26 +0200 <maerwald> nshepperd: but in my experience, ppl barely read the installer output
2021-05-06 23:09:28 +0200 <sm[m]> Nor do they use a haskell installer
2021-05-06 23:09:36 +0200 <nshepperd> it's maybe the list is too 'daunting' because there's too much in it
2021-05-06 23:10:04 +0200 <sm[m]> As juri says they come from all over and have all kinds of backgrounds
2021-05-06 23:10:07 +0200 <maerwald> if the installer says "Press ENTER if you want to DELETE ALL YOUR FILES", 80% of ppl will press enter
2021-05-06 23:10:23 +0200 <sm[m]> and if they do find the Haskell site doc page yes they are daunted
2021-05-06 23:10:53 +0200 <juri_> a set of docs can't help direct you to something at your level, or in an area you'll be inspired to work with.
2021-05-06 23:10:59 +0200michalz(~user@185.246.204.43) (Remote host closed the connection)
2021-05-06 23:11:15 +0200 <sm[m]> well it can a bit, if organized that way
2021-05-06 23:11:18 +0200 <maerwald> for inspiration, you have to join IRC.
2021-05-06 23:11:21 +0200jneira(4f9b01f9@gateway/web/cgi-irc/kiwiirc.com/ip.79.155.1.249)
2021-05-06 23:11:27 +0200 <maerwald> docs can't deliver that
2021-05-06 23:12:20 +0200 <sm[m]> juri_: "what's your current Haskell level ? Which ways do you like to learn ? Try these: ..."
2021-05-06 23:12:26 +0200 <juri_> like, my professional math education stopped at "what you need to know to run a cash register at the corner store". I study a lot, but there will always be that 'curve' to my path, because that's what i started with.
2021-05-06 23:12:46 +0200 <juri_> sm[m]: fair, and a good start.
2021-05-06 23:13:41 +0200 <Uniaika> so uh, my eyes are currently failing me so I can't give proper attention to the backlog
2021-05-06 23:13:41 +0200 <seven_three> my program has two fundamental functions. `f :: Integer -> Whatever`, and `f' :: BitVector -> Whatever`. I have found myself having two make two versions of every function to deal with the Integers versus BitVectors. Do you have any suggestions on how I can abstract this out? I could make `data IntOrBV = I Integer | BV BitVector` but this doesn't really solve the problem because I still have to deal with the two cases everywh
2021-05-06 23:13:48 +0200 <nshepperd> what if people have just been trained never to Google things and to ask on reddit instead because the internet has too much spam? that's not a problem we can really solve
2021-05-06 23:13:56 +0200 <Uniaika> if there is something I can do, please send me a query on IRC with specific items to do
2021-05-06 23:14:02 +0200 <Uniaika> and I'll an appropriate amount of energy to those
2021-05-06 23:14:04 +0200 <Uniaika> ping maerwald
2021-05-06 23:14:21 +0200 <juri_> seven_three: pull them through a common typeclass?
2021-05-06 23:14:28 +0200 <maerwald> ping maerwald?
2021-05-06 23:14:51 +0200 <m_shiraeeshi> Uniaika: you're talking about haskell documentation, guides and tutorials?
2021-05-06 23:14:56 +0200 <geekosaur> I think a typeclass can only help if it can resolve them to some common interface
2021-05-06 23:15:01 +0200 <m_shiraeeshi> Uniaika: and haskell wiki?
2021-05-06 23:15:21 +0200 <sm[m]> Uniaika: right now the something would be to read the thread when/if you have time and share your thoughts - thanks!
2021-05-06 23:15:39 +0200 <seven_three> juri_: They do both derive Integral. I have thought of this too but I deal with the two different types differently in the functions. So if I get an Integer I do one thing and if I get a BitVector I do another.
2021-05-06 23:16:17 +0200 <juri_> move the thing you're doing differently into the typeclass, and use the result of that as your common interface, then.
2021-05-06 23:16:19 +0200Lowl3v3l(~Lowl3v3l@dslb-002-203-255-063.002.203.pools.vodafone-ip.de) (Remote host closed the connection)
2021-05-06 23:16:46 +0200 <Uniaika> sm[m]: probably won't happen, I'm hips deep in some Servant codebase and type families have eaten my brain
2021-05-06 23:17:09 +0200 <Uniaika> send me an email at hecate[@]haskell.foundation
2021-05-06 23:17:14 +0200Rembanehands Uniaika a brain restoration device
2021-05-06 23:17:21 +0200 <Uniaika> good evening
2021-05-06 23:17:24 +0200 <sm[m]> Ok, I understand. Hope you survive
2021-05-06 23:17:41 +0200 <sm[m]> I won't send a mail, what would that accomplish :)
2021-05-06 23:18:12 +0200 <nshepperd> zombie type families
2021-05-06 23:18:33 +0200kderme(2e675c7c@46-92-124.adsl.cyta.gr)
2021-05-06 23:19:01 +0200 <maerwald> sm[m]: emails can be marked unread/important etc, IRC messages not :p
2021-05-06 23:19:12 +0200 <Uniaika> yes, and I can backlog them properly
2021-05-06 23:19:27 +0200 <Uniaika> my IRC buffer is flushed at around 300 lines
2021-05-06 23:19:32 +0200 <Uniaika> it won't exist tomorrow
2021-05-06 23:19:33 +0200 <geekosaur> and the emails can have unrelated stuff like joins/pparts filtered from them
2021-05-06 23:19:39 +0200 <seven_three> juri_: I don't understand what you mean by this. The way I envision a solution is that I use the Integral type class and then I say `f :: Integral val => val -> Whatever; case typeOf val of; Integer -> foo; BitVector -> bar`
2021-05-06 23:19:44 +0200 <geekosaur> or unrelated discussions
2021-05-06 23:20:03 +0200sm[m]is speaking as an email-bankrupt person
2021-05-06 23:20:09 +0200 <sm[m]> Thanks all for your input.. I must get on the road, afk a little
2021-05-06 23:20:38 +0200maerwaldimagines sm[m] driving a huge truck
2021-05-06 23:20:41 +0200Guest59693(~textual@mskresolve-a.mskcc.org) (Ping timeout: 240 seconds)
2021-05-06 23:20:54 +0200sm[m]also has a permanent searchable chat history via Element
2021-05-06 23:21:05 +0200 <juri_> seven_three: I'm suggesting you create a new typeclass, make implementations for both of your types, store the part that you do differently for the two types in the instances, then use the result as the common interface you call everywhere.
2021-05-06 23:21:32 +0200 <sm[m]> That'd be cool, but it's a prius! Recent purchase!
2021-05-06 23:21:34 +0200 <juri_> I have an example (i do this, tho i don't know if it's in good taste), if you'd like to see someone doing something like it.
2021-05-06 23:22:29 +0200 <seven_three> juri_: ok now I understand what you mean. I know how to do this from here. I can even think of a nice name for this typeclass. Thanks I will do this.
2021-05-06 23:23:37 +0200ph88^(~ph88@2a02:8109:9e00:7e5c:f445:5d21:63ff:8e5e)
2021-05-06 23:23:46 +0200malumore(~malumore@151.62.126.202) (Ping timeout: 240 seconds)
2021-05-06 23:24:05 +0200Guest55803(~myst@focks.pw) (Quit: WeeChat 2.9)
2021-05-06 23:24:19 +0200mystfox(~myst@focks.pw)
2021-05-06 23:24:23 +0200cdsmith(49cf15a2@c-73-207-21-162.hsd1.ga.comcast.net)
2021-05-06 23:24:26 +0200Kaiepi(~Kaiepi@47.54.252.148)
2021-05-06 23:25:10 +0200mystfox(~myst@focks.pw) (Client Quit)
2021-05-06 23:25:11 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
2021-05-06 23:25:34 +0200mystfox(~myst@focks.pw)
2021-05-06 23:25:56 +0200orion`1(~orion`@195.140.213.38) (Remote host closed the connection)
2021-05-06 23:26:12 +0200mystfoxglowpelt
2021-05-06 23:26:38 +0200ph88(~ph88@ip5f5af6fd.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
2021-05-06 23:27:07 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur) (Ping timeout: 260 seconds)
2021-05-06 23:29:12 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Read error: Connection reset by peer)
2021-05-06 23:29:23 +0200Rav1(~Rav1@modemcable159.116-21-96.mc.videotron.ca)
2021-05-06 23:29:26 +0200toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-05-06 23:31:16 +0200mounty(~mounty@236.216.214.218.sta.wbroadband.net.au)
2021-05-06 23:32:52 +0200Feuermagier(~Feuermagi@213.178.26.41) (Remote host closed the connection)
2021-05-06 23:34:07 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
2021-05-06 23:34:46 +0200Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
2021-05-06 23:37:11 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2021-05-06 23:37:42 +0200Alleria(~textual@2603-7000-3040-0000-9d5f-7583-1c0a-e91b.res6.spectrum.com)
2021-05-06 23:37:44 +0200NinjaTrappeur(~ninja@unaffiliated/ninjatrappeur)
2021-05-06 23:38:05 +0200AlleriaGuest42792
2021-05-06 23:38:32 +0200Tesseraction(~Tesseract@unaffiliated/tesseraction) (Ping timeout: 240 seconds)
2021-05-06 23:41:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-05-06 23:46:14 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-05-06 23:49:09 +0200tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-05-06 23:49:27 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-05-06 23:50:46 +0200Guest59707(uid154177@gateway/web/irccloud.com/x-cqwrlftjlffnofnc) ()
2021-05-06 23:51:54 +0200teej(uid154177@gateway/web/irccloud.com/x-xyjkdonrvgpmwwum)
2021-05-06 23:52:51 +0200juri_(~juri@178.63.35.222) (Ping timeout: 245 seconds)
2021-05-06 23:59:27 +0200star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)