2021/04/29

2021-04-29 00:00:20 +0200 <__minoru__shirae> not sure what "handling the split" means in this context
2021-04-29 00:00:32 +0200deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.1)
2021-04-29 00:01:16 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds)
2021-04-29 00:01:25 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 00:01:38 +0200 <tributarian> __minoru__shirae: In this case I mean sending some queries to the primary DB node and others to the replica (such as read intensive or long running queries).
2021-04-29 00:02:30 +0200 <tributarian> __minoru__shirae: Some of the ORMs I have used in other languages handle sending queries to the replica automatically.
2021-04-29 00:02:52 +0200 <__minoru__shirae> what ORMs do that?
2021-04-29 00:06:01 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-04-29 00:08:18 +0200 <tributarian> __minoru__shirae: Two examples that come to mind are Django (Python) and MikroORM (Typescript).
2021-04-29 00:09:00 +0200 <sclv> well haskell doesn't even really have orms
2021-04-29 00:09:10 +0200 <sclv> orms don't fit well into a language that doesn't have objects
2021-04-29 00:09:40 +0200 <tributarian> sclv: That is what I am gathering from what I have read. I just wanted to make sure I was understanding correctly.
2021-04-29 00:09:51 +0200 <sclv> so yes, you would tend to manage connections explicitly afaik and i don't know of anything that handles that particular pattern for you
2021-04-29 00:10:35 +0200 <sclv> fancy haskell db libs tend towards more construction of well typed queries, not mapping db rows precisely and bidirectionally to "objects"
2021-04-29 00:10:43 +0200Alleria(~textual@2603-7000-3040-0000-057f-238e-9cc1-6931.res6.spectrum.com)
2021-04-29 00:11:08 +0200AlleriaGuest21568
2021-04-29 00:11:12 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:b0db:882b:fd7b:c02e) (Remote host closed the connection)
2021-04-29 00:11:24 +0200 <tributarian> sclv: Understood. I was getting thrown off by references to beam as being an ORM.
2021-04-29 00:11:43 +0200 <sclv> ormish things are paradigmatically about mutable state, and extending mutable state in an app to being outside an app too. just not a haskelly way of thinking about things
2021-04-29 00:11:49 +0200 <sclv> ok, sure. idk much about beam tbqh
2021-04-29 00:11:55 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 00:12:21 +0200Rudd0(~Rudd0@185.189.115.103)
2021-04-29 00:12:31 +0200 <tributarian> Thanks for the help.
2021-04-29 00:12:53 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-04-29 00:13:40 +0200 <tributarian> I definitely have a ways to go in terms of thinking of things in a Haskelly way.
2021-04-29 00:14:39 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-04-29 00:15:12 +0200 <__minoru__shirae> I think the issue boils down to a question about whether the db url is global in the app or not
2021-04-29 00:15:14 +0200dpl(~dpl@77-121-78-163.chn.volia.net) (Read error: Connection reset by peer)
2021-04-29 00:15:46 +0200 <__minoru__shirae> if the db url is not global, you can manually create several connections and decide which query goes to what url
2021-04-29 00:16:11 +0200 <__minoru__shirae> just stating the obvious here
2021-04-29 00:16:17 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Ping timeout: 250 seconds)
2021-04-29 00:17:18 +0200 <__minoru__shirae> to clarify: I mean whether the library allows having several db urls at the same time or not
2021-04-29 00:18:40 +0200 <tributarian> __minoru__shirae: Right, in this case, the library just takes a connection as an argument. You would just need to determine prior to calling it which connection you wanted to pass.
2021-04-29 00:18:59 +0200LKoen_(~LKoen@22.249.88.92.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-04-29 00:24:46 +0200fendor_(~fendor@77.119.129.46.wireless.dyn.drei.com)
2021-04-29 00:25:40 +0200Guest78265(~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d) (Ping timeout: 276 seconds)
2021-04-29 00:27:31 +0200fendor(~fendor@178.165.130.176.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-04-29 00:28:15 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds)
2021-04-29 00:32:51 +0200RusAlex(~Chel@unaffiliated/rusalex) (Ping timeout: 248 seconds)
2021-04-29 00:34:44 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-04-29 00:36:13 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 250 seconds)
2021-04-29 00:37:00 +0200erisco(~erisco@d24-57-249-233.home.cgocable.net)
2021-04-29 00:38:13 +0200stree(~stree@68.36.8.116) (Ping timeout: 268 seconds)
2021-04-29 00:39:33 +0200 <srid> New static site generator in the block https://ema.srid.ca/
2021-04-29 00:39:48 +0200RusAlex(~Chel@unaffiliated/rusalex)
2021-04-29 00:40:43 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-cfmrpzrshmxdqile) (Quit: Connection closed for inactivity)
2021-04-29 00:41:26 +0200usr25(~usr25@unaffiliated/usr25) (Ping timeout: 240 seconds)
2021-04-29 00:41:55 +0200acidjnk_new2(~acidjnk@p200300d0c72b9548280dd1e5a205767a.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2021-04-29 00:44:17 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 00:45:00 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-29 00:45:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 00:48:25 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 252 seconds)
2021-04-29 00:49:04 +0200Qwerky(~qwerky@37.165.107.63) (Remote host closed the connection)
2021-04-29 00:49:04 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Ping timeout: 276 seconds)
2021-04-29 00:49:56 +0200chimera(~chimera@168-182-134-95.pool.ukrtel.net) (Quit: Konversation terminated!)
2021-04-29 00:50:53 +0200stree(~stree@68.36.8.116)
2021-04-29 00:51:01 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-04-29 00:53:11 +0200erisco(~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 240 seconds)
2021-04-29 00:53:24 +0200 <gnumonic> Hello Haskell IRC. Quick question: If I have a record type with a bang, e.g. data SomeRec = SomeRec {myRec :: ![SomeList]}, does the bang force the list to whnf or does it just require that the list exist?
2021-04-29 00:53:55 +0200jgt_(~jgt@88.225.221.135) (Ping timeout: 252 seconds)
2021-04-29 00:56:28 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-04-29 00:56:56 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 00:58:45 +0200letmein(~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) (Ping timeout: 250 seconds)
2021-04-29 01:00:29 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 01:01:11 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 01:04:32 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-29 01:04:34 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:6cde:4ab2:7d84:5b06) (Ping timeout: 245 seconds)
2021-04-29 01:06:24 +0200 <geekosaur> only to exist; it doesn't force the list's spine, only the first constructor
2021-04-29 01:08:28 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 01:08:29 +0200Qwerky(~qwerky@37.165.107.63)
2021-04-29 01:08:35 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 01:09:11 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 01:12:27 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 01:13:41 +0200Qwerky(~qwerky@37.165.107.63) (Ping timeout: 265 seconds)
2021-04-29 01:14:36 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-04-29 01:18:37 +0200 <gnumonic> thanks!
2021-04-29 01:19:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-29 01:19:32 +0200cheater(~user@unaffiliated/cheater) (Ping timeout: 240 seconds)
2021-04-29 01:22:14 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-04-29 01:23:05 +0200 <ski> it forces to WHNF, yes
2021-04-29 01:25:38 +0200landonf(landonf@mac68k.info) (Excess Flood)
2021-04-29 01:26:20 +0200pavonia(~user@unaffiliated/siracusa)
2021-04-29 01:27:11 +0200smerdyakov8(~dan@5.146.195.164) (Ping timeout: 240 seconds)
2021-04-29 01:28:02 +0200cheater(~user@unaffiliated/cheater)
2021-04-29 01:28:04 +0200smerdyakov(~dan@5.146.195.164)
2021-04-29 01:28:06 +0200landonf(landonf@mac68k.info)
2021-04-29 01:28:12 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2021-04-29 01:29:35 +0200 <gnumonic> er i think i mixed up nf and whnf in my question. i'm pretty sure i should have said nf. i always make that mistake with lists for some reason
2021-04-29 01:30:00 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-04-29 01:31:01 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-04-29 01:31:24 +0200bennofs_(~quassel@x4dbff94d.dyn.telefonica.de) (Read error: Connection reset by peer)
2021-04-29 01:31:41 +0200aerona(~aerona@2600:6c54:4600:f300:1d6a:6687:1ec3:ebd2)
2021-04-29 01:31:48 +0200bennofs_(~quassel@x4dbff94d.dyn.telefonica.de)
2021-04-29 01:33:10 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 01:35:02 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 01:36:37 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 01:37:59 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-04-29 01:39:51 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-04-29 01:42:02 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 01:43:24 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-04-29 01:45:41 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2021-04-29 01:46:30 +0200Qwerky(~qwerky@37.171.11.15) (Ping timeout: 252 seconds)
2021-04-29 01:46:57 +0200Tario(~Tario@200.119.186.3)
2021-04-29 01:48:11 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
2021-04-29 01:51:17 +0200Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-04-29 01:52:31 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 01:57:14 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-04-29 02:01:01 +0200sayola(~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-04-29 02:02:59 +0200sm2n(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca) (Ping timeout: 265 seconds)
2021-04-29 02:05:00 +0200nineonin_(~nineonine@50.216.62.2) (Remote host closed the connection)
2021-04-29 02:05:27 +0200nineonine(~nineonine@50.216.62.2)
2021-04-29 02:06:29 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2021-04-29 02:07:56 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-04-29 02:12:47 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
2021-04-29 02:16:18 +0200stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-04-29 02:16:41 +0200stree(~stree@68.36.8.116)
2021-04-29 02:18:59 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 02:20:26 +0200tanuki_(~quassel@173.168.178.1)
2021-04-29 02:21:22 +0200tanuki(~quassel@173.168.178.1) (Ping timeout: 252 seconds)
2021-04-29 02:23:12 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-29 02:26:31 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-04-29 02:28:43 +0200cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2021-04-29 02:32:14 +0200carlomagno(~cararell@148.87.23.8) (Remote host closed the connection)
2021-04-29 02:32:18 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com)
2021-04-29 02:32:21 +0200mounty(~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 260 seconds)
2021-04-29 02:32:50 +0200TheScoop(~TheScoop@unaffiliated/tryte)
2021-04-29 02:32:53 +0200mounty(~mounty@236.216.214.218.sta.wbroadband.net.au)
2021-04-29 02:33:40 +0200carlomagno(~cararell@148.87.23.8)
2021-04-29 02:35:15 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-29 02:35:22 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
2021-04-29 02:36:46 +0200bennofs_(~quassel@x4dbff94d.dyn.telefonica.de) (Ping timeout: 252 seconds)
2021-04-29 02:36:55 +0200bennofs__(~quassel@x4dbf4f4d.dyn.telefonica.de)
2021-04-29 02:38:55 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
2021-04-29 02:39:12 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2021-04-29 02:40:13 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 276 seconds)
2021-04-29 02:41:01 +0200sh9(~sh9@softbank060116136158.bbtec.net)
2021-04-29 02:41:34 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
2021-04-29 02:42:12 +0200proofofkeags(~proofofke@205.209.28.54) (Ping timeout: 240 seconds)
2021-04-29 02:43:25 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com) (Remote host closed the connection)
2021-04-29 02:43:53 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com)
2021-04-29 02:44:01 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-04-29 02:44:45 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-f1aa-d9fb-89e1-fb98.res6.spectrum.com) (Client Quit)
2021-04-29 02:48:48 +0200davros(~davros@host86-185-126-190.range86-185.btcentralplus.com) (Remote host closed the connection)
2021-04-29 02:49:34 +0200letmein(~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1)
2021-04-29 02:55:45 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 02:56:03 +0200letmein(~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) (Ping timeout: 260 seconds)
2021-04-29 03:01:23 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-29 03:03:04 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-a9d5-4324-7c94-d209.res6.spectrum.com)
2021-04-29 03:04:27 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
2021-04-29 03:09:08 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-a9d5-4324-7c94-d209.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-29 03:09:54 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-29 03:10:27 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 03:11:14 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-04-29 03:11:30 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-04-29 03:12:37 +0200whataday(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-04-29 03:14:28 +0200Alleria_(~AllahuAkb@2603-7000-3040-0000-15c1-181a-a12b-d412.res6.spectrum.com)
2021-04-29 03:15:39 +0200davros(~davros@host86-185-126-190.range86-185.btcentralplus.com)
2021-04-29 03:16:08 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 03:16:15 +0200carlomagno(~cararell@148.87.23.8) (Quit: Leaving.)
2021-04-29 03:21:39 +0200hidedagger(~nate@unaffiliated/hidedagger)
2021-04-29 03:22:52 +0200Tario(~Tario@200.119.186.3) (Ping timeout: 268 seconds)
2021-04-29 03:23:29 +0200Tario(~Tario@201.192.165.173)
2021-04-29 03:28:13 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 03:30:00 +0200remby(~remby@bras-base-london1483w-grc-43-65-95-173-128.dsl.bell.ca) (Quit: remby)
2021-04-29 03:33:22 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-04-29 03:35:42 +0200sm2n(~sm2n@bras-base-hmtnon143hw-grc-13-70-54-76-62.dsl.bell.ca)
2021-04-29 03:41:19 +0200xff0x(~xff0x@2001:1a81:5216:4600:d365:aa72:75db:f7b9) (Ping timeout: 276 seconds)
2021-04-29 03:41:46 +0200horatiohb(~horatiohb@159.203.66.243) (Ping timeout: 260 seconds)
2021-04-29 03:43:01 +0200xff0x(~xff0x@2001:1a81:524d:ea00:c15c:a6f:641:7fe3)
2021-04-29 03:49:33 +0200drbean_(~drbean@TC210-63-209-92.static.apol.com.tw)
2021-04-29 03:49:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-29 03:54:03 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds)
2021-04-29 03:57:52 +0200slack1256(~slack1256@200-112-90-35.baf.movistar.cl) (Ping timeout: 240 seconds)
2021-04-29 03:59:27 +0200cronts(~croissant@180.190.216.146)
2021-04-29 04:02:20 +0200Wuzzy(~Wuzzy@p5790e74f.dip0.t-ipconnect.de) (Quit: Wuzzy)
2021-04-29 04:07:19 +0200ddellacosta(~ddellacos@86.106.143.229)
2021-04-29 04:10:27 +0200remby(~remby@bras-base-london1483w-grc-43-65-95-173-128.dsl.bell.ca)
2021-04-29 04:10:36 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
2021-04-29 04:11:42 +0200ddellacosta(~ddellacos@86.106.143.229) (Ping timeout: 252 seconds)
2021-04-29 04:14:28 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 276 seconds)
2021-04-29 04:14:54 +0200urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2021-04-29 04:17:56 +0200Igloo(~igloo@matrix.chaos.earth.li) (Ping timeout: 246 seconds)
2021-04-29 04:20:43 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 04:21:02 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 04:24:32 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-29 04:25:31 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Ping timeout: 276 seconds)
2021-04-29 04:26:02 +0200Igloo(~igloo@81.2.99.210)
2021-04-29 04:28:58 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-29 04:30:52 +0200theDon(~td@94.134.91.183) (Ping timeout: 240 seconds)
2021-04-29 04:31:09 +0200cronts(~croissant@180.190.216.146) (Ping timeout: 252 seconds)
2021-04-29 04:31:20 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net)
2021-04-29 04:32:53 +0200theDon(~td@muedsl-82-207-238-033.citykom.de)
2021-04-29 04:36:07 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-04-29 04:37:40 +0200FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-29 04:37:40 +0200finn_elijaGuest25670
2021-04-29 04:37:40 +0200FinnElijafinn_elija
2021-04-29 04:38:01 +0200remby(~remby@bras-base-london1483w-grc-43-65-95-173-128.dsl.bell.ca) ("Good Bye")
2021-04-29 04:38:15 +0200stree(~stree@68.36.8.116)
2021-04-29 04:40:45 +0200Guest25670(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
2021-04-29 04:43:11 +0200__minoru__shirae(~shiraeesh@46.34.207.120) (Ping timeout: 240 seconds)
2021-04-29 04:45:43 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 04:45:55 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 04:46:08 +0200cads(~cads@ip-64-72-99-232.lasvegas.net)
2021-04-29 04:50:36 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-04-29 04:50:45 +0200ech(~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
2021-04-29 04:58:47 +0200vladan1(~vladan@195.140.213.38) (Remote host closed the connection)
2021-04-29 05:00:25 +0200snowflake(~snowflake@gateway/tor-sasl/snowflake) (Remote host closed the connection)
2021-04-29 05:00:25 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-04-29 05:00:48 +0200snowflake(~snowflake@gateway/tor-sasl/snowflake)
2021-04-29 05:00:49 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2021-04-29 05:03:05 +0200laudiacay(~laudiacay@67.176.215.84)
2021-04-29 05:03:29 +0200laudiacayGuest87676
2021-04-29 05:04:10 +0200Guest6509(~laudiacay@45.162.228.190) (Ping timeout: 252 seconds)
2021-04-29 05:12:03 +0200howdoi(uid224@gateway/web/irccloud.com/x-skcvldmujnozgzqc) (Quit: Connection closed for inactivity)
2021-04-29 05:14:47 +0200tadeo(~tadeo@217.146.82.202)
2021-04-29 05:15:10 +0200blankhart(~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) (Ping timeout: 252 seconds)
2021-04-29 05:19:13 +0200rajivr(uid269651@gateway/web/irccloud.com/x-lxchinolehixafmd)
2021-04-29 05:22:52 +0200Igloo(~igloo@81.2.99.210) (Ping timeout: 240 seconds)
2021-04-29 05:23:38 +0200ddellacosta(~ddellacos@86.106.143.242)
2021-04-29 05:27:38 +0200cercerilla(~user@024-178-254-009.res.spectrum.com)
2021-04-29 05:28:22 +0200ddellacosta(~ddellacos@86.106.143.242) (Ping timeout: 252 seconds)
2021-04-29 05:31:07 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
2021-04-29 05:31:37 +0200cercerilla(~user@024-178-254-009.res.spectrum.com) ()
2021-04-29 05:32:45 +0200timCF(~i.tkachuk@m91-129-104-226.cust.tele2.ee) (Ping timeout: 252 seconds)
2021-04-29 05:33:02 +0200timCF(~i.tkachuk@m91-129-104-226.cust.tele2.ee)
2021-04-29 05:34:11 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:2014:4cc0:2f98:ce70)
2021-04-29 05:35:41 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-29 05:39:55 +0200numb3r(~numb3r@75-32-237-142.lightspeed.rnpsca.sbcglobal.net)
2021-04-29 05:46:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 05:47:52 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-29 05:47:58 +0200hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 3.1)
2021-04-29 05:48:17 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-04-29 05:51:34 +0200numb3r(~numb3r@75-32-237-142.lightspeed.rnpsca.sbcglobal.net) ()
2021-04-29 05:52:00 +0200 <egorbelibov> anybody using https://github.com/jschaf/hsearch (hsearch-mode) [Emacs]?
2021-04-29 05:52:32 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-04-29 05:58:48 +0200desophos(~desophos@2601:249:1680:a570:ad52:b454:fe1c:2cc3)
2021-04-29 05:58:53 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-29 06:00:08 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 06:01:14 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 06:04:07 +0200jao(~jao@pdpc/supporter/professional/jao) (Remote host closed the connection)
2021-04-29 06:04:26 +0200Qwerky(~qwerky@37.171.11.15) (Ping timeout: 240 seconds)
2021-04-29 06:05:26 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 06:09:22 +0200alx741(~alx741@181.196.68.118) (Quit: alx741)
2021-04-29 06:09:30 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-04-29 06:10:21 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 06:11:53 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2021-04-29 06:14:55 +0200Qwerky(~qwerky@37.171.11.15) (Ping timeout: 252 seconds)
2021-04-29 06:15:32 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 268 seconds)
2021-04-29 06:15:52 +0200coot(~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl)
2021-04-29 06:18:00 +0200conal(~conal@64.71.133.70)
2021-04-29 06:20:10 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:df5:3e62:d261:3647)
2021-04-29 06:21:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-04-29 06:25:19 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 06:28:17 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-plkwxelyikqpwdno)
2021-04-29 06:29:11 +0200cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds)
2021-04-29 06:30:21 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-04-29 06:30:38 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-04-29 06:31:24 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 06:31:40 +0200fivebox(~x@unaffiliated/fivebox)
2021-04-29 06:32:31 +0200Tario(~Tario@201.192.165.173) (Ping timeout: 252 seconds)
2021-04-29 06:35:06 +0200drbean_(~drbean@TC210-63-209-92.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2021-04-29 06:37:24 +0200jao(~jao@pdpc/supporter/professional/jao)
2021-04-29 06:46:42 +0200stree(~stree@68.36.8.116) (Ping timeout: 265 seconds)
2021-04-29 06:47:26 +0200fivebox(~x@unaffiliated/fivebox) (Ping timeout: 240 seconds)
2021-04-29 06:48:09 +0200nineonin_(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 06:51:58 +0200nineonine(~nineonine@50.216.62.2) (Ping timeout: 252 seconds)
2021-04-29 06:57:35 +0200myShoggoth(~myShoggot@97-120-89-117.ptld.qwest.net) (Quit: Leaving)
2021-04-29 06:58:28 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-04-29 06:59:33 +0200stree(~stree@68.36.8.116)
2021-04-29 07:00:06 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-29 07:00:28 +0200pfurla_(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-04-29 07:01:19 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-29 07:05:14 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
2021-04-29 07:06:33 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea)
2021-04-29 07:10:30 +0200 <desophos> why does `sequence` return a cross-product of a list of lists? i can intuitively understand how it works for other Monads like Maybe and Either but i'm struggling to understand what it means to collect [] actions
2021-04-29 07:11:23 +0200ddellacosta(~ddellacos@86.106.143.86)
2021-04-29 07:14:47 +0200 <c_wraith> desophos: you can think of the [] instance for monad modeling nondeterministic choice. Internally, you never know what element you'll get, just that it's going to be *something*
2021-04-29 07:15:35 +0200superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
2021-04-29 07:15:42 +0200 <c_wraith> > do { a <- [1,2] ; b <- [3,4,5] ; c <- [7, 8] ; return (a, b, c) }
2021-04-29 07:15:44 +0200 <lambdabot> [(1,3,7),(1,3,8),(1,4,7),(1,4,8),(1,5,7),(1,5,8),(2,3,7),(2,3,8),(2,4,7),(2,...
2021-04-29 07:16:00 +0200 <superstar64> is there anyway i can make cabal run be interpreted rather then compiled?
2021-04-29 07:16:10 +0200ddellacosta(~ddellacos@86.106.143.86) (Ping timeout: 252 seconds)
2021-04-29 07:16:29 +0200 <c_wraith> desophos: you can see how each bind picks one element from the list it's pulling from in the example above
2021-04-29 07:17:11 +0200 <c_wraith> desophos: well, that's basically what sequence does, except instead of working on tuples, it works on arbitrary length lists.
2021-04-29 07:17:25 +0200 <desophos> ah ok, so it represents all possible values returned from accessing each list -- like a product type?
2021-04-29 07:17:30 +0200 <c_wraith> yes
2021-04-29 07:17:34 +0200 <desophos> interesting
2021-04-29 07:18:26 +0200 <desophos> the product of all possible values of each list
2021-04-29 07:18:30 +0200 <desophos> thanks, that makes sense!
2021-04-29 07:18:39 +0200 <c_wraith> cartesian product is the standard term
2021-04-29 07:19:01 +0200 <desophos> right, i was just trying to reconcile that with how sequence works on other Monads
2021-04-29 07:19:45 +0200 <desophos> the idea of combining each of the nondeterministic choices makes sense
2021-04-29 07:19:48 +0200xkapastel(uid17782@gateway/web/irccloud.com/x-odtfelnunqxapxmp) (Quit: Connection closed for inactivity)
2021-04-29 07:20:20 +0200 <c_wraith> yep. it recursively binds elements from the input. in the case of the [] monad, that's a choice operation in some sense.
2021-04-29 07:21:11 +0200 <c_wraith> from the outside there's nothing non-deterministic about it. But from the inside, that's how it acts. You just don't know which element you'll be working with.
2021-04-29 07:22:05 +0200 <desophos> right, non-deterministic in the sense that it can evaluate to any of its possible values when accessed
2021-04-29 07:22:19 +0200 <desophos> right?
2021-04-29 07:22:24 +0200 <c_wraith> exactly
2021-04-29 07:22:34 +0200 <curiousgay> > lastDigit :: [Integer] -> Integer
2021-04-29 07:22:34 +0200 <curiousgay> > lastDigit = (`mod` 10) . foldr (\x y -> if y == 0 then 1 else x ^ ((y-1) `mod` 40 + 1)) 1
2021-04-29 07:22:34 +0200 <curiousgay> I have an exercise to find the last digit of x1^(x2^(...)), I've made 3 different versions of working code, but they all are slower then what codewars expect from me, I have no idea how can it be faster than that
2021-04-29 07:22:36 +0200 <lambdabot> error:
2021-04-29 07:22:36 +0200 <lambdabot> Variable not in scope: lastDigit :: [Integer] -> Integer
2021-04-29 07:22:36 +0200 <lambdabot> <hint>:1:11: error: <hint>:1:11: error: parse error on input ‘=’
2021-04-29 07:23:30 +0200 <curiousgay> s/then/than/
2021-04-29 07:23:50 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2021-04-29 07:26:06 +0200 <c_wraith> superstar64: https://www.reddit.com/r/haskell/comments/ko6zgn/cabal_project_for_scripts_with_no_build_artifacts/ has a couple ideas
2021-04-29 07:27:21 +0200solidus-river(~fuag1@174.127.249.180)
2021-04-29 07:27:28 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 07:29:37 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 250 seconds)
2021-04-29 07:29:47 +0200hololeap(hololeap@gateway/vpn/protonvpn/hololeap)
2021-04-29 07:30:07 +0200 <superstar64> oh, so it's single file only?
2021-04-29 07:31:01 +0200 <solidus-river> i gotta gush for a second or two. I've been a c++ coder in gaming for about 12 years now or so. Just finished what I hope to open source come august of a decentralized mesh Augmented reality simulation protocol with foundations in zmq and I cannot fathom writing it in the time i did in a langaue aside from haskell
2021-04-29 07:31:07 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-29 07:31:41 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-29 07:32:04 +0200 <c_wraith> superstar64: probably could work with multiple-file stuff, but it might be a bit weird with source directories. I don't know for sure - this doesn't look like a deeply-developed feature
2021-04-29 07:32:34 +0200 <solidus-river> this community and language is a true gem, the concise descriptions and low level control so far have been amazingly fruitful in design without feeling sacraficial to performance. I'm sure that will change but.. wow fellow beings, this stuff is legit cool. I love it.
2021-04-29 07:32:48 +0200 <superstar64> i wanted to try it because apt broke my linker, but i'll guess i'll have to fix it
2021-04-29 07:33:22 +0200 <solidus-river> i have to translate my prototype library into c++ and I'm dreading the task
2021-04-29 07:33:26 +0200jao(~jao@pdpc/supporter/professional/jao) (Ping timeout: 240 seconds)
2021-04-29 07:33:29 +0200 <superstar64> also, what's the best way to format a project? i'm currently doing `ormolu -o -XTypeApplications -i `find source -type f`
2021-04-29 07:34:06 +0200mounty(~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 240 seconds)
2021-04-29 07:34:15 +0200 <superstar64> solidus-river what's a simulation protocol?
2021-04-29 07:34:48 +0200 <solidus-river> superstar64, its a new type of mesh network for locality based augmented reality hosted on a mesh network of peers
2021-04-29 07:35:07 +0200 <solidus-river> or specifically, its a protocol specification that allows simulation between networked actors
2021-04-29 07:35:35 +0200 <solidus-river> and I'm being redundant but i'm also having a couple beers in celebration of end to end tests working out :\
2021-04-29 07:35:47 +0200 <solidus-river> s/protocol specification/protocol/g
2021-04-29 07:36:18 +0200 <solidus-river> i'm shooting to open source in august for siggraph
2021-04-29 07:36:26 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-29 07:37:04 +0200 <solidus-river> but tldr, haskell is amazeballs to work with. It's painful to go back to c++ land to make the client libs for devices / engines
2021-04-29 07:37:43 +0200 <solidus-river> and i'm super grateful to have the learnings from building those proto libraries in hask
2021-04-29 07:37:57 +0200 <superstar64> this thing https://en.wikipedia.org/wiki/Mesh_networking i know nothing about networking
2021-04-29 07:38:40 +0200 <solidus-river> allows non-mediated set of peers to partake in an augmented reality with other peers nearby
2021-04-29 07:39:27 +0200 <solidus-river> i'm using the term mesh because stuff like ipfs is involved, i don't even know if thats accurate
2021-04-29 07:39:42 +0200 <solidus-river> but the end result is rad and i'm stoked to flush it out and share :D
2021-04-29 07:39:56 +0200 <sshine> sounds cool, solidus-river.
2021-04-29 07:40:29 +0200 <sshine> congrats on your tests succeeding. :)
2021-04-29 07:40:38 +0200 <solidus-river> thanks :)
2021-04-29 07:41:48 +0200shailangsa(~shailangs@host86-186-132-95.range86-186.btcentralplus.com) (Ping timeout: 265 seconds)
2021-04-29 07:42:10 +0200 <superstar64> solidus-river, do you have any recommendation where i can learn about this stuff?
2021-04-29 07:42:24 +0200 <superstar64> it would be nice to at least have a cursory overview
2021-04-29 07:42:37 +0200 <solidus-river> i've got a lot of problems around federated peers to sort out i'm hoping to steal a lot from BGM for but i'm also hoping to drop a less open network, in oss land around august
2021-04-29 07:42:56 +0200maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-04-29 07:43:04 +0200 <solidus-river> superstar64, the zeromq guide has a lot of hyperbolie but also a good overview of the space
2021-04-29 07:43:47 +0200 <solidus-river> superstar64, there are various iot type protocols out there that are working on more general solutions but less suited for real time / coordinated AR experiences
2021-04-29 07:44:18 +0200 <solidus-river> i think a bunch of the larger tech firms today are working on similar projects, the thing I hope to beat them on is open sourcing it
2021-04-29 07:44:28 +0200Ro(b54123e9@181.65.35.233)
2021-04-29 07:44:36 +0200Ro(b54123e9@181.65.35.233) (Client Quit)
2021-04-29 07:45:04 +0200 <solidus-river> I've had the priviledge of being poached by apple / facebook for leadership roles around this area. I think the world where they own this stuff is balls though. We need like an ar www type thing built on top of existing infra
2021-04-29 07:45:42 +0200 <solidus-river> its criminal how little we ask of our smart devices in terms of meshing imo. but i'm not qualified to weigh in there
2021-04-29 07:45:58 +0200 <superstar64> i wish i had a job, i'm still in college
2021-04-29 07:46:41 +0200 <solidus-river> there's endless work out there
2021-04-29 07:47:13 +0200 <solidus-river> focus on what you want to manifest with tech vs what will pay the bills
2021-04-29 07:47:24 +0200 <solidus-river> imo
2021-04-29 07:47:46 +0200ddellacosta(~ddellacos@86.106.143.203)
2021-04-29 07:47:50 +0200 <superstar64> i think it depends on where you live, also i'm mostly into compiler dev, which i don't think there are many jobs for
2021-04-29 07:48:56 +0200 <solidus-river> ah, yeah it might. I'm from america and i consider this culture pretty brutal
2021-04-29 07:49:14 +0200 <solidus-river> i think in a less brutal culture i'd be more concerned about area of expertise
2021-04-29 07:49:34 +0200 <superstar64> i'm in suburban florida
2021-04-29 07:49:39 +0200 <solidus-river> but i'm pretter sure in these barrens knowing a bit of code is a ticket to decent money under the hand of those with power
2021-04-29 07:50:20 +0200 <solidus-river> your golden then, this country doesn't care about intelligence and doesn't educate its citizens
2021-04-29 07:50:31 +0200 <solidus-river> just knowing code you got income set up for you imo
2021-04-29 07:50:41 +0200wonko7(~wonko7@62.115.229.50)
2021-04-29 07:50:57 +0200 <solidus-river> its terribly stupid and i should shut up
2021-04-29 07:51:11 +0200 <solidus-river> i'm only 30-ish and i'll regret saying all that later
2021-04-29 07:51:41 +0200 <solidus-river> tldr, haskell is really cool. I super respect it and those that have helped make it real and hope to contribute some of that back
2021-04-29 07:52:08 +0200ddellacosta(~ddellacos@86.106.143.203) (Ping timeout: 246 seconds)
2021-04-29 07:52:19 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-04-29 07:52:38 +0200 <solidus-river> if your in suburban florda, live anywhere else, preferably outside of the states after the pandemic
2021-04-29 07:52:41 +0200 <superstar64> https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs/Haskell.html
2021-04-29 07:52:41 +0200 <superstar64> i wish more colleges though haskell so the industry would adopt it more
2021-04-29 07:53:18 +0200 <solidus-river> in my experience the industry doesn't care, but also gives a lot of autonomy to coders
2021-04-29 07:53:36 +0200 <solidus-river> so its kinda a chicken fight to get folks to consider haskell
2021-04-29 07:53:51 +0200 <solidus-river> and its hard because its got a name for being "haughty" or what you will
2021-04-29 07:55:11 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-04-29 07:55:33 +0200 <solidus-river> I envy you, you'll probably see neural nets really impact how we think about coding
2021-04-29 07:55:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-04-29 07:56:11 +0200 <solidus-river> and maybe even something like haskell go mainstream
2021-04-29 07:57:26 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-04-29 08:00:07 +0200shad0w_(a0ca2598@160.202.37.152)
2021-04-29 08:00:33 +0200 <solidus-river> we should move to haskell otw, but do you think its universities who need to guide industry?
2021-04-29 08:00:51 +0200 <solidus-river> moving to #haskell-offtopic
2021-04-29 08:01:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 08:01:48 +0200aerona(~aerona@2600:6c54:4600:f300:1d6a:6687:1ec3:ebd2) (Read error: Connection reset by peer)
2021-04-29 08:02:50 +0200michalz(~user@185.246.204.103)
2021-04-29 08:05:47 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-04-29 08:05:59 +0200Shailangsa_(~shailangs@host86-186-132-95.range86-186.btcentralplus.com)
2021-04-29 08:11:24 +0200Guest87676(~laudiacay@67.176.215.84)
2021-04-29 08:11:27 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 08:12:26 +0200fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 240 seconds)
2021-04-29 08:13:11 +0200shad0w_(a0ca2598@160.202.37.152) (Quit: Connection closed)
2021-04-29 08:15:45 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 260 seconds)
2021-04-29 08:15:54 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-04-29 08:16:09 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-04-29 08:17:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 08:18:29 +0200timCF(~i.tkachuk@m91-129-104-226.cust.tele2.ee) (Ping timeout: 252 seconds)
2021-04-29 08:20:11 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-29 08:20:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 08:22:11 +0200bennofs__(~quassel@x4dbf4f4d.dyn.telefonica.de) (Read error: Connection reset by peer)
2021-04-29 08:22:27 +0200bennofs_(~quassel@x4dbf4f4d.dyn.telefonica.de)
2021-04-29 08:25:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2021-04-29 08:26:53 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-29 08:27:10 +0200ddellacosta(~ddellacos@86.106.143.242)
2021-04-29 08:27:28 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 08:29:36 +0200fryguybob(~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
2021-04-29 08:30:16 +0200idhugo__(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
2021-04-29 08:30:21 +0200plutoniix(~q@ppp-124-120-200-197.revip2.asianet.co.th)
2021-04-29 08:30:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 08:31:42 +0200nineonin_(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Remote host closed the connection)
2021-04-29 08:32:16 +0200ddellacosta(~ddellacos@86.106.143.242) (Ping timeout: 260 seconds)
2021-04-29 08:32:23 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 08:33:10 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-04-29 08:33:43 +0200Shailangsa_(~shailangs@host86-186-132-95.range86-186.btcentralplus.com) (Ping timeout: 252 seconds)
2021-04-29 08:34:43 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-04-29 08:35:41 +0200rdivyanshu(uid322626@gateway/web/irccloud.com/x-plkwxelyikqpwdno) (Quit: Connection closed for inactivity)
2021-04-29 08:35:56 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-04-29 08:37:04 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 276 seconds)
2021-04-29 08:38:52 +0200jgt_(~jgt@88.225.221.135)
2021-04-29 08:40:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 08:45:20 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-04-29 08:48:51 +0200aVikingTrex(~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 260 seconds)
2021-04-29 08:51:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-29 08:51:40 +0200swater(bouhier200@perso.iiens.net)
2021-04-29 08:57:23 +0200Lowl3v3l(~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
2021-04-29 08:59:34 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
2021-04-29 09:01:19 +0200Varis(~Tadas@unaffiliated/varis)
2021-04-29 09:03:07 +0200ddellacosta(~ddellacos@86.106.143.151)
2021-04-29 09:04:26 +0200Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
2021-04-29 09:06:38 +0200Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer)
2021-04-29 09:07:23 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-04-29 09:07:31 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:69f7:7042:9b54:a0e6) (Ping timeout: 260 seconds)
2021-04-29 09:07:49 +0200ddellacosta(~ddellacos@86.106.143.151) (Ping timeout: 252 seconds)
2021-04-29 09:08:44 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 09:09:37 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Remote host closed the connection)
2021-04-29 09:10:44 +0200nineonine(~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4)
2021-04-29 09:10:53 +0200chele(~chele@5.53.222.202)
2021-04-29 09:14:04 +0200thc202(~thc202@unaffiliated/thc202)
2021-04-29 09:16:04 +0200nineonine(~nineonine@2604:3d08:7785:9600:68a6:8c79:2caf:5ce4) (Ping timeout: 276 seconds)
2021-04-29 09:19:45 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:97f0:170a:ab39:7a21)
2021-04-29 09:20:51 +0200stree(~stree@68.36.8.116)
2021-04-29 09:21:52 +0200tempate(~tempate@unaffiliated/tempate) (Ping timeout: 240 seconds)
2021-04-29 09:23:46 +0200solidus-river(~fuag1@174.127.249.180) (Ping timeout: 240 seconds)
2021-04-29 09:26:34 +0200SolidusRiver(~fuag1@174.127.249.180)
2021-04-29 09:30:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 09:31:25 +0200m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-04-29 09:32:28 +0200jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-04-29 09:32:48 +0200jb55(~jb55@gateway/tor-sasl/jb55)
2021-04-29 09:33:15 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-godfdjwdzqpwbqck) (Quit: Connection closed for inactivity)
2021-04-29 09:35:33 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-04-29 09:35:59 +0200takuan_dozo(~takuan@178-116-218-225.access.telenet.be)
2021-04-29 09:36:12 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 09:37:41 +0200takuan_dozo(~takuan@178-116-218-225.access.telenet.be) (Client Quit)
2021-04-29 09:38:09 +0200 <desophos> what's the recommended way to export things for testing only? i don't want to expose internal functions but i want a separate test module for quickcheck
2021-04-29 09:38:32 +0200LKoen(~LKoen@22.249.88.92.rev.sfr.net)
2021-04-29 09:39:26 +0200jokester_(~mono@unaffiliated/jokester)
2021-04-29 09:39:26 +0200jokester(~mono@unaffiliated/jokester) (Read error: Connection reset by peer)
2021-04-29 09:39:41 +0200 <desophos> currently i have some quickcheck properties running with doctest in the source file so i don't have to export anything, but it doesn't feel right because they're too complex to be documentation
2021-04-29 09:40:49 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-04-29 09:41:15 +0200 <tomsmeding> desophos: I believe the standard approach is to make an .Internal module that exports all you want, and have the outside-visible module export only the public interfaces
2021-04-29 09:41:37 +0200 <tomsmeding> i.e. that outside-visible module only contains some imports and some re-exports, no actual code
2021-04-29 09:42:03 +0200 <Philonous> I would export everything via »Internal« modules. Avoids abstraction inversion and allows you to test everything
2021-04-29 09:42:33 +0200ServerStatsDisco(serverstat@gateway/shell/matrix.org/x-oxgvtvxuexgkqkan)
2021-04-29 09:42:52 +0200 <desophos> hmm ok, that makes sense. should i put them both in the same file?
2021-04-29 09:43:30 +0200 <Philonous> You can only have exactly one module per file
2021-04-29 09:43:39 +0200 <tomsmeding> (with ghc)
2021-04-29 09:43:51 +0200 <desophos> oh ok, thanks
2021-04-29 09:45:24 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-29 09:46:19 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 252 seconds)
2021-04-29 09:46:49 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 09:47:57 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2021-04-29 09:50:38 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-04-29 09:52:59 +0200alexander(~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d)
2021-04-29 09:53:28 +0200alexanderGuest35908
2021-04-29 09:55:20 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 09:55:36 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 09:56:39 +0200 <nut> is it possible to pattern match on data type? myfunc:: (MyClass a) => [a] -> ... I want to do different things on different a
2021-04-29 09:57:15 +0200 <opqdonut> you need type classes for that
2021-04-29 09:57:51 +0200hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 252 seconds)
2021-04-29 09:58:11 +0200 <opqdonut> so something like `class MyFunc a where myfunc :: MyClass a => [a] -> Result; instance MyFunc Int where myfunc :: [Int] -> Result; instance MyFunc String where myfunc :: [String] -> Result`
2021-04-29 09:58:26 +0200hyiltiz(~quassel@31.220.5.250)
2021-04-29 09:58:28 +0200hyiltiz(~quassel@31.220.5.250) (Changing host)
2021-04-29 09:58:29 +0200hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-04-29 09:58:50 +0200 <nut> i see
2021-04-29 09:59:32 +0200geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-29 09:59:34 +0200 <nut> My use case is to wrap the gnu gsl lib in Haskell and need to create gsl_vector to hold different haskell types.
2021-04-29 09:59:49 +0200 <nut> even with the type class method, there'll be lots of repetitive code
2021-04-29 10:00:04 +0200enoq(~textual@194-208-146-143.lampert.tv)
2021-04-29 10:01:44 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 250 seconds)
2021-04-29 10:01:49 +0200m1dnight_ssdflkjshflkjhsf
2021-04-29 10:01:52 +0200ssdflkjshflkjhsfm1dnight_
2021-04-29 10:03:04 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 10:03:30 +0200m1dnight_ssdflkjshflkjhsf
2021-04-29 10:03:30 +0200ssdflkjshflkjhsfm1dnight_
2021-04-29 10:03:33 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-29 10:05:00 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Quit: leaving)
2021-04-29 10:05:29 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-04-29 10:05:33 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-04-29 10:06:08 +0200m1dnight_m1dnight__
2021-04-29 10:08:17 +0200hendursa1(~weechat@gateway/tor-sasl/hendursaga)
2021-04-29 10:09:07 +0200 <hololeap> nut: typeclasses essentially match on a data type
2021-04-29 10:09:52 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
2021-04-29 10:11:09 +0200hendursaga(~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds)
2021-04-29 10:11:29 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-04-29 10:12:34 +0200gitgood(~gitgood@80-44-9-246.dynamic.dsl.as9105.com) (Quit: Probably away to do something really awesome)
2021-04-29 10:12:35 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 10:13:35 +0200kritzefitz(~kritzefit@p200300ecdf3c5b009ca7d9f9eb7bbe17.dip0.t-ipconnect.de)
2021-04-29 10:14:15 +0200heatsink_(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 10:14:23 +0200natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-29 10:14:25 +0200 <hololeap> also note that what opqdonut suggested requires FlexibleInstances
2021-04-29 10:15:19 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-04-29 10:15:33 +0200jgt(~jgt@46.154.91.194)
2021-04-29 10:15:50 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 10:16:58 +0200maroloccio(~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
2021-04-29 10:17:07 +0200jgt_(~jgt@88.225.221.135) (Ping timeout: 252 seconds)
2021-04-29 10:17:16 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2021-04-29 10:18:27 +0200heatsink_(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2021-04-29 10:20:21 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-04-29 10:21:19 +0200m1dnight__m1dnight_
2021-04-29 10:21:27 +0200natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-04-29 10:22:23 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 10:23:04 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-04-29 10:24:39 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 10:25:16 +0200bennofs_(~quassel@x4dbf4f4d.dyn.telefonica.de) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-04-29 10:25:26 +0200acidjnk_new2(~acidjnk@p200300d0c72b9548b4aacef2f046ba0b.dip0.t-ipconnect.de)
2021-04-29 10:25:33 +0200m1dnight_m1dnight__
2021-04-29 10:26:33 +0200lowdude[m](lowdudemat@gateway/shell/matrix.org/x-tuvkranqrmxuckyh)
2021-04-29 10:27:04 +0200vchlup_(~vchlup@nat.brnet.cz)
2021-04-29 10:27:06 +0200vchlup(~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
2021-04-29 10:29:27 +0200xff0x(~xff0x@2001:1a81:524d:ea00:c15c:a6f:641:7fe3) (Ping timeout: 250 seconds)
2021-04-29 10:29:28 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 10:30:12 +0200xff0x(~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2)
2021-04-29 10:31:16 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 10:34:59 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-29 10:35:06 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-29 10:35:31 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 250 seconds)
2021-04-29 10:35:35 +0200enobayram(4eaf3ebd@78.175.62.189)
2021-04-29 10:40:05 +0200 <olligobber> so it turns out IO doesn't satisfy the laws for Alternative, in that I have f and x such that `f (x <|> empty) == pure True' and `f (empty <|> x) == pure False'
2021-04-29 10:45:43 +0200malumore(~malumore@151.62.116.76)
2021-04-29 10:47:10 +0200 <olligobber> IO was a mistake
2021-04-29 10:48:24 +0200 <hololeap> % (pure True <|> empty) :: IO Bool
2021-04-29 10:48:24 +0200 <yahb> hololeap: True
2021-04-29 10:48:30 +0200ania123(5e89ad7c@94.137.173.124)
2021-04-29 10:48:36 +0200 <hololeap> % (empty <|> pure True) :: IO Bool
2021-04-29 10:48:36 +0200 <yahb> hololeap: True
2021-04-29 10:48:45 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net)
2021-04-29 10:48:53 +0200jakalx(~jakalx@base.jakalx.net) ("Error from remote client")
2021-04-29 10:49:15 +0200jgt_(~jgt@46.154.77.142)
2021-04-29 10:49:40 +0200jgt(~jgt@46.154.91.194) (Remote host closed the connection)
2021-04-29 10:49:45 +0200 <enobayram> What is the f and the x that you have?
2021-04-29 10:50:00 +0200 <olligobber> x is `fail "Error"'
2021-04-29 10:50:26 +0200 <olligobber> f is `((==) <$> try empty) <*>)'
2021-04-29 10:50:41 +0200 <olligobber> % (==) <$> (try empty :: IO (Either IOError String)) <*> try (fail "Error" <|> empty)
2021-04-29 10:50:41 +0200 <yahb> olligobber: True
2021-04-29 10:50:53 +0200 <olligobber> % (==) <$> (try empty :: IO (Either IOError String)) <*> try (empty <|> fail "Error")
2021-04-29 10:50:53 +0200 <yahb> olligobber: False
2021-04-29 10:51:01 +0200 <olligobber> oh, and the try as well
2021-04-29 10:51:17 +0200 <olligobber> f is `((==) <$> try empty) <*>) . try'
2021-04-29 10:52:03 +0200 <enobayram> I see, seems to me like the Alternative instance is at fault here
2021-04-29 10:52:54 +0200 <olligobber> yeah, it always goes with the second option if the first is an error
2021-04-29 10:53:55 +0200 <olligobber> well, not "is an error" but "produces an error"
2021-04-29 10:53:56 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-29 10:54:07 +0200 <hololeap> % (fail "Error" <|> empty) :: IO a
2021-04-29 10:54:07 +0200 <yahb> hololeap: *** Exception: user error (mzero)
2021-04-29 10:54:14 +0200 <enobayram> If empty is supposed to be the identity element of <|>, it should be throwing an exception that <|> recognizes
2021-04-29 10:54:20 +0200 <olligobber> yeah
2021-04-29 10:54:22 +0200 <hololeap> % (empty <|> fail "Error") :: IO a
2021-04-29 10:54:22 +0200 <yahb> hololeap: *** Exception: user error (Error)
2021-04-29 10:54:52 +0200 <olligobber> % (==) <$> try (fail "mzero") <*> try empty
2021-04-29 10:54:52 +0200 <yahb> olligobber: ; <interactive>:152:1: error:; * Ambiguous type variable `e0' arising from a use of `=='; prevents the constraint `(Eq e0)' from being solved.; Probable fix: use a type annotation to specify what `e0' should be.; These potential instances exist:; instance Eq a => Eq (ZipList a) -- Defined in `Control.Applicative'; instance Eq (Chan a) -- Defined in `Control.Concurren
2021-04-29 10:55:06 +0200 <olligobber> % (==) <$> try (fail "mzero") <*> try (empty :: IO ())
2021-04-29 10:55:06 +0200 <yahb> olligobber: ; <interactive>:153:1: error:; * Ambiguous type variable `e0' arising from a use of `=='; prevents the constraint `(Eq e0)' from being solved.; Probable fix: use a type annotation to specify what `e0' should be.; These potential instances exist:; instance Eq a => Eq (ZipList a) -- Defined in `Control.Applicative'; instance Eq (Chan a) -- Defined in `Control.Concurren
2021-04-29 10:55:16 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 10:55:16 +0200 <olligobber> % (==) <$> try (fail "mzero") <*> (try empty :: IO IOError ())
2021-04-29 10:55:16 +0200 <yahb> olligobber: ; <interactive>:154:47: error:; * Expected kind `* -> *', but `IO IOError' has kind `*'; * In an expression type signature: IO IOError (); In the second argument of `(<*>)', namely `(try empty :: IO IOError ())'; In the expression: (==) <$> try (fail "mzero") <*> (try empty :: IO IOError ())
2021-04-29 10:55:25 +0200 <olligobber> % (==) <$> try (fail "mzero") <*> (try empty :: IO (Either IOError ()))
2021-04-29 10:55:26 +0200 <yahb> olligobber: True
2021-04-29 10:55:44 +0200 <olligobber> I see
2021-04-29 10:56:44 +0200 <hololeap> i would think that the issue lies in the difference between `fail "Error" <|> empty` and `empty <|> fail "Error"`
2021-04-29 10:57:01 +0200 <hololeap> maybe someone can explain why those are different
2021-04-29 10:57:34 +0200 <enobayram> Because <|> tries the left operand and if it throws then it tries the right operand and if that throws as well, it throws the last exception
2021-04-29 10:58:06 +0200 <hololeap> makes sense
2021-04-29 10:58:29 +0200 <hololeap> i assumed it would throw at the first error
2021-04-29 10:58:36 +0200 <merijn> hololeap: heh
2021-04-29 10:58:47 +0200 <merijn> hololeap: That'd rather defeat the point of Alternative?
2021-04-29 10:59:00 +0200 <hololeap> good point
2021-04-29 10:59:51 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
2021-04-29 10:59:54 +0200 <olligobber> yeah, throwing the first error is what `>>` does
2021-04-29 11:00:03 +0200 <enobayram> I think if empty is supposed to be the identity element of <|>, it should be throwing an exception that <|> recognizes and then throws the exception from the other operand
2021-04-29 11:00:10 +0200bennofs_(~quassel@x4dbf4f4d.dyn.telefonica.de)
2021-04-29 11:00:31 +0200 <enobayram> Though, even then, I think the Alternative IO instance is distasteful
2021-04-29 11:00:47 +0200fendor_fendor
2021-04-29 11:01:04 +0200 <enobayram> I don't think one should swallow exceptions nilly willy like that
2021-04-29 11:01:12 +0200 <olligobber> probably
2021-04-29 11:01:42 +0200 <olligobber> though someone once asked me to write a program that wouldn't crash, so I just added `<|> print 0` to the end of main
2021-04-29 11:02:19 +0200pjb(~pjb@2a01cb04063ec50065c90891fe55ba7a.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-04-29 11:02:47 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:97f0:170a:ab39:7a21) (Ping timeout: 260 seconds)
2021-04-29 11:03:00 +0200 <enobayram> What if my program is unsafeCoerce (1 :: Int) :: IO String
2021-04-29 11:03:34 +0200 <olligobber> % unsafeCoerce (1 :: Int) <|> pure "End" :: IO String
2021-04-29 11:03:34 +0200 <yahb> olligobber: "[Segmentation fault]
2021-04-29 11:03:52 +0200 <olligobber> wait what
2021-04-29 11:04:15 +0200 <enobayram> That's what you get for messing with memory :)
2021-04-29 11:04:15 +0200 <Taneb> Once you've segfaulted the runtime can't recover
2021-04-29 11:04:25 +0200 <Taneb> It's not an exception, it's a things are horribly broken
2021-04-29 11:04:35 +0200zariuq(~zar@89-24-35-159.nat.epc.tmcz.cz)
2021-04-29 11:04:39 +0200 <olligobber> % unsafeCoerce (empty :: IO ()) :: Int
2021-04-29 11:04:40 +0200 <yahb> olligobber: 0
2021-04-29 11:04:49 +0200 <hololeap> so (empty == empty) in IO, but (empty /= fail "Error")
2021-04-29 11:05:05 +0200 <olligobber> % unsafeCoerce (print 1 :: IO ()) :: Int
2021-04-29 11:05:06 +0200 <yahb> olligobber: 2199023255808
2021-04-29 11:05:16 +0200 <hololeap> this doesn't seem that surprising although i suppose it would break the Alternative laws
2021-04-29 11:05:19 +0200ania123(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-04-29 11:05:32 +0200 <olligobber> % unsafeCoerce (2199023255808 :: Int) :: IO ()
2021-04-29 11:05:33 +0200 <yahb> olligobber:
2021-04-29 11:06:04 +0200 <olligobber> I'm surprised that didn't seg fault
2021-04-29 11:06:15 +0200 <olligobber> I assume 2199023255808 is a pointer
2021-04-29 11:07:29 +0200 <enobayram> I don't think one can talk about any sort of reasoning in the presence of memory corruption
2021-04-29 11:07:48 +0200 <olligobber> no
2021-04-29 11:08:03 +0200jgt_(~jgt@46.154.77.142) (Remote host closed the connection)
2021-04-29 11:08:15 +0200 <enobayram> for all you know unsafeCoerce (2199023255808 :: Int) :: IO () might have caused an earthquake somewhere
2021-04-29 11:08:33 +0200 <olligobber> I assume the developers of yahb safeguarded against that
2021-04-29 11:08:50 +0200 <olligobber> % readFile "/etc/passwd"
2021-04-29 11:08:50 +0200 <yahb> olligobber: *** Exception: /etc/passwd: openFile: does not exist (No such file or directory)
2021-04-29 11:08:52 +0200zariuq(~zar@89-24-35-159.nat.epc.tmcz.cz) (Ping timeout: 240 seconds)
2021-04-29 11:09:09 +0200 <olligobber> looks like it
2021-04-29 11:09:25 +0200 <hololeap> it's hard to make any assumptions in programming if we take into account hardware issues
2021-04-29 11:09:41 +0200 <enobayram> I'm sure that's the intension, but there's no guarantee that your corrupt program didn't just discover a zero day vulnerability in their sandbox :P
2021-04-29 11:09:51 +0200nehsou^(nehsou@ip98-184-89-2.mc.at.cox.net) ()
2021-04-29 11:09:55 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-04-29 11:10:11 +0200 <olligobber> what you're saying is I should continue to send random numbers to yahb until I find a vulnerability?
2021-04-29 11:10:21 +0200 <hololeap> will your function terminate? what if the power goes out?
2021-04-29 11:10:41 +0200 <hololeap> olligobber: yes
2021-04-29 11:10:55 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:cd02:6757:782f:7e4d)
2021-04-29 11:11:03 +0200 <enobayram> That's a valid interpretation! Though I was rather going for the perils of unsafeCoerce
2021-04-29 11:12:38 +0200 <olligobber> yeah, in retrospect I'm glad I didn't test that on my own machine
2021-04-29 11:12:43 +0200is_null_(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 11:12:54 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-04-29 11:13:01 +0200 <maerwald> yolo
2021-04-29 11:13:58 +0200jakalx(~jakalx@base.jakalx.net)
2021-04-29 11:14:06 +0200 <olligobber> I did `rm -rf ~' once, ended up just reinstalling the os from scratch
2021-04-29 11:14:21 +0200 <enobayram> same here!
2021-04-29 11:14:52 +0200 <enobayram> Some stupid build script interpreted my ~ from a previous command as the name of a file name
2021-04-29 11:15:00 +0200 <enobayram> so it created a file called ~
2021-04-29 11:15:14 +0200 <maerwald> that's why you should always quite your filepaths
2021-04-29 11:15:29 +0200 <maerwald> enobayram: ~ is a shellism
2021-04-29 11:15:30 +0200 <enobayram> And my immediate reaction was rm -rf ~
2021-04-29 11:15:39 +0200 <maerwald> it's a valid file name indeed
2021-04-29 11:15:44 +0200ania123(5e89ad7c@94.137.173.124)
2021-04-29 11:15:54 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
2021-04-29 11:16:00 +0200 <maerwald> and non-shell programs that interpret ~ as HOME have a bug
2021-04-29 11:16:00 +0200 <enobayram> Yep, but to this day I don't know how that build script received my ~ as a literal ~
2021-04-29 11:16:08 +0200 <enobayram> I thought the shell was supposed to replace it
2021-04-29 11:16:15 +0200 <maerwald> did you quote it?
2021-04-29 11:16:19 +0200 <enobayram> nope
2021-04-29 11:16:54 +0200 <olligobber> oh yeah, using "~" as a file name actually creates a file with that name
2021-04-29 11:17:10 +0200 <olligobber> uh, now to delete that file without deleting my home directory
2021-04-29 11:17:24 +0200 <olligobber> rm "~"
2021-04-29 11:17:33 +0200 <maerwald> just don't use -f :)
2021-04-29 11:17:39 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 11:17:46 +0200SolidusRiver(~fuag1@174.127.249.180) (Ping timeout: 252 seconds)
2021-04-29 11:17:50 +0200hololeapruns `mkdir -p ~/~/~`
2021-04-29 11:17:52 +0200 <enobayram> Are you brave enough to run that command now?
2021-04-29 11:18:09 +0200 <olligobber> I ran it and survived
2021-04-29 11:18:25 +0200 <enobayram> if I were implementing a shell, I'd treat having a ~ in your command while there's a file named ~ in the current directory as an error
2021-04-29 11:18:38 +0200tadeo(~tadeo@217.146.82.202) (Remote host closed the connection)
2021-04-29 11:18:52 +0200 <maerwald> that's probably going to break lots of scripts
2021-04-29 11:19:11 +0200 <enobayram> while saving many lives!
2021-04-29 11:19:16 +0200 <olligobber> yeah, having scripts that only break if you happen to have a file with a specific name would be great
2021-04-29 11:19:23 +0200 <maerwald> lol
2021-04-29 11:19:26 +0200 <hololeap> that's why "-r" is a thing
2021-04-29 11:19:36 +0200is_null_(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
2021-04-29 11:19:40 +0200dsrt^(dsrt@ip98-184-89-2.mc.at.cox.net)
2021-04-29 11:19:49 +0200 <maerwald> rm --interactive
2021-04-29 11:20:07 +0200 <hololeap> if ~/~ is a dir, that could be an issue
2021-04-29 11:21:16 +0200 <maerwald> I don't remember if -r behave correctly if you have recursive bind-mounts. At least most file managers don't
2021-04-29 11:22:04 +0200 <hololeap> i'm saying don't use "-r" and there will be no chance of recursively deleting your home
2021-04-29 11:22:34 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
2021-04-29 11:22:38 +0200 <olligobber> is there a way of deleting an empty directory other than -r?
2021-04-29 11:22:44 +0200 <hololeap> rmdir
2021-04-29 11:22:51 +0200 <olligobber> or rm -d
2021-04-29 11:22:57 +0200 <enobayram> how do you delete a non-empty directory then?
2021-04-29 11:22:58 +0200 <olligobber> I should probably use that instead
2021-04-29 11:23:05 +0200 <olligobber> delete its contents first
2021-04-29 11:23:18 +0200 <hololeap> rm "./~/*"; rmdir "./~/"
2021-04-29 11:23:20 +0200 <enobayram> what if there are non-empty directories inside?
2021-04-29 11:23:21 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 11:23:34 +0200 <maerwald> enobayram: find . -type f -delete
2021-04-29 11:23:38 +0200 <olligobber> remove them first?
2021-04-29 11:23:49 +0200 <maerwald> don't run that command, lol
2021-04-29 11:24:03 +0200 <enobayram> and how does that save me if the directory happens to be my home directory :)
2021-04-29 11:24:06 +0200 <hololeap> then you write a complicated shell script, or maybe figure out why you have a complex file tree in "$HOME/~" in the first place
2021-04-29 11:24:20 +0200 <maerwald> enobayram: you'll still have empty directories!
2021-04-29 11:24:45 +0200 <enobayram> Better than nothing I guess!
2021-04-29 11:25:04 +0200 <maerwald> yeah, like a cleaned up room
2021-04-29 11:25:13 +0200 <maerwald> the doors are still there
2021-04-29 11:25:49 +0200 <enobayram> I think the solution is to write all software to use nothing but directory names for local storage
2021-04-29 11:25:50 +0200 <hololeap> more like a bunch of picture frames with nothing in them
2021-04-29 11:26:45 +0200 <maerwald> that could be annoying, since filename length is capped at 255
2021-04-29 11:27:03 +0200 <enobayram> you just nest those directories
2021-04-29 11:27:12 +0200 <maerwald> yes, annoying :D
2021-04-29 11:27:40 +0200Qwerky(~qwerky@37.171.11.15) (Remote host closed the connection)
2021-04-29 11:27:41 +0200__monty__(~toonn@unaffiliated/toonn)
2021-04-29 11:27:50 +0200 <enobayram> blablabla/blablabla is the same as blablablablablabla, unless of course "blablabla/blablabla" is a valid input to your program
2021-04-29 11:27:53 +0200 <maerwald> on linux, the upside is: filenames can be binary data
2021-04-29 11:28:13 +0200 <maerwald> so you can just dump your binary in to file names
2021-04-29 11:28:28 +0200 <maerwald> your shell with thank you, though
2021-04-29 11:28:32 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-29 11:29:04 +0200 <maerwald> this might be the dawn of a new OS
2021-04-29 11:29:19 +0200 <enobayram> in that world, your shell would be interpreting all those directory names properly, so it would present them to you as a file system with directories and files in them
2021-04-29 11:29:35 +0200 <hololeap> just name everything in haskell record style: /homeHololeapDownloadsBunnies.gif
2021-04-29 11:30:22 +0200ania123(5e89ad7c@94.137.173.124) (Quit: Connection closed)
2021-04-29 11:30:32 +0200 <maerwald> it should be snake case
2021-04-29 11:30:41 +0200is_null_(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 11:31:13 +0200 <hololeap> :p
2021-04-29 11:31:31 +0200ClaudiusMaximus(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
2021-04-29 11:31:31 +0200ClaudiusMaximus(~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host)
2021-04-29 11:31:31 +0200ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2021-04-29 11:31:32 +0200 <enobayram> I'm glad we've arrived at a satisfactory solution
2021-04-29 11:32:06 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-04-29 11:33:19 +0200ddellacosta(~ddellacos@86.106.143.21)
2021-04-29 11:33:33 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
2021-04-29 11:35:10 +0200 <olligobber> how about we do snake case, but instead of _ we use some other character
2021-04-29 11:35:30 +0200 <olligobber> something that wouldn't normally get used in file names
2021-04-29 11:35:37 +0200 <maerwald> (
2021-04-29 11:35:40 +0200 <olligobber> maybe /
2021-04-29 11:35:44 +0200 <maerwald> lol
2021-04-29 11:36:12 +0200 <yushyin> i do like kebab-case
2021-04-29 11:36:37 +0200 <olligobber> hmm, if _ is snake and - is kebab, what is /?
2021-04-29 11:36:41 +0200 <olligobber> or . too
2021-04-29 11:36:50 +0200 <olligobber> pebble.case ?
2021-04-29 11:36:58 +0200 <olligobber> book/shelf/case?
2021-04-29 11:37:15 +0200 <maerwald> why limit to ascii?
2021-04-29 11:37:40 +0200 <olligobber> ogham case
2021-04-29 11:37:59 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 11:38:03 +0200ddellacosta(~ddellacos@86.106.143.21) (Ping timeout: 268 seconds)
2021-04-29 11:38:42 +0200 <hololeap> bookshelf-after-an-earthquake-case
2021-04-29 11:40:27 +0200Synthetica(uid199651@gateway/web/irccloud.com/x-lthemimjkmqujsuh)
2021-04-29 11:40:46 +0200 <maerwald> double__snake__case
2021-04-29 11:40:50 +0200 <enobayram> I'd go for bookshelf_after_an_earthquake_case
2021-04-29 11:41:07 +0200 <enobayram> unless we're talking about the top-facing side of the bookshelf of course
2021-04-29 11:41:25 +0200 <olligobber> bookshelf…after…a…fire…case
2021-04-29 11:42:22 +0200is_null_(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
2021-04-29 11:42:22 +0200stree(~stree@68.36.8.116)
2021-04-29 11:42:30 +0200Qwerky(~qwerky@37.171.11.15) (Ping timeout: 265 seconds)
2021-04-29 11:42:54 +0200 <enobayram> bookshelf!after!installing!roller!wheels!case
2021-04-29 11:43:23 +0200 <opqdonut> this::is::obviously::the::superior::case
2021-04-29 11:43:27 +0200 <opqdonut> it has history!
2021-04-29 11:43:39 +0200 <olligobber> oh god
2021-04-29 11:44:25 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 11:44:39 +0200 <maerwald> time to write up a language proposal
2021-04-29 11:44:44 +0200 <maerwald> I think we're settled
2021-04-29 11:45:02 +0200 <olligobber> (bubble)(case)
2021-04-29 11:45:32 +0200frozenErebus(~frozenEre@37.231.244.249) (Remote host closed the connection)
2021-04-29 11:45:36 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection)
2021-04-29 11:45:42 +0200Guest87676(~laudiacay@67.176.215.84)
2021-04-29 11:47:16 +0200 <hololeap> % toBookshelfAfterAFire = intersperse '/' (map (const Nothing))
2021-04-29 11:47:17 +0200 <yahb> hololeap: ; <interactive>:14:42: error:; * Couldn't match expected type: [Char]; with actual type: [a0] -> [Maybe a1]; * Probable cause: `map' is applied to too few arguments; In the second argument of `intersperse', namely `(map (const Nothing))'; In the expression: intersperse '/' (map (const Nothing)); In an equation for `toBookshelfAfterAFire': toBookshelfAfterAFire
2021-04-29 11:47:42 +0200 <hololeap> % toBookshelfAfterAFire = intercalate "/" . (map (show . const Nothing))
2021-04-29 11:47:42 +0200 <yahb> hololeap:
2021-04-29 11:48:27 +0200 <opqdonut> oh right, let me amend my proposal to this::::is::::obviously::::the::::superior::::case
2021-04-29 11:48:35 +0200 <opqdonut> since : and :: are reserved, and ::: is used by many libraries
2021-04-29 11:48:44 +0200 <olligobber> % toBookshelfAfterAFire ["this","is","a","test"]
2021-04-29 11:48:45 +0200 <yahb> olligobber: "Nothing/Nothing/Nothing/Nothing"
2021-04-29 11:48:51 +0200 <olligobber> I see
2021-04-29 11:49:04 +0200 <opqdonut> we could also go with ::::: to leave some expansion room for libraries
2021-04-29 11:50:03 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 252 seconds)
2021-04-29 11:50:25 +0200mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-04-29 11:52:05 +0200 <hololeap> i guess that should be earthquake+fire
2021-04-29 11:52:46 +0200son0p(~ff@181.136.122.143) (Ping timeout: 240 seconds)
2021-04-29 12:00:08 +0200lowdude[m] < https://matrix.org/_matrix/media/r0/download/matrix.org/wAfYwylrBClGeOzlynmOGEkz/message.txt >
2021-04-29 12:02:05 +0200 <tomsmeding> more∷∷superior∷∷case
2021-04-29 12:03:09 +0200 <tomsmeding> lowdude[m]: where does Rand come from?
2021-04-29 12:04:21 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-29 12:04:25 +0200 <lowdude[m]> <tomsmeding "lowdude: where does Rand come fr"> I just took that over from Control.Monad.Random
2021-04-29 12:04:40 +0200Rudd0(~Rudd0@185.189.115.108)
2021-04-29 12:04:45 +0200 <lowdude[m]> it's apparently a basic random monad
2021-04-29 12:05:04 +0200 <tomsmeding> I see
2021-04-29 12:05:26 +0200 <enikar> In this case I wrap the random generator in a State monad.
2021-04-29 12:05:37 +0200 <tomsmeding> lowdude[m]: fairToss >>= \coin -> case coin of { Head -> ... ; Tail -> ... }
2021-04-29 12:06:03 +0200 <tomsmeding> or: do coin <- fairToss ; case coin of { ... }
2021-04-29 12:06:12 +0200 <tomsmeding> Rand is a monad :)
2021-04-29 12:06:57 +0200 <enikar> is it the new interface to random values ?
2021-04-29 12:07:07 +0200stree(~stree@68.36.8.116) (Quit: Caught exception)
2021-04-29 12:07:31 +0200 <tomsmeding> "the new"?
2021-04-29 12:07:33 +0200stree(~stree@68.36.8.116)
2021-04-29 12:07:43 +0200ddellacosta(~ddellacos@86.106.143.60)
2021-04-29 12:07:47 +0200 <tomsmeding> the 'random' library is still the standard, as far as I know
2021-04-29 12:07:57 +0200 <tomsmeding> though 'MonadRandom' (which this comes from) I guess also works
2021-04-29 12:08:07 +0200Miroboru(~myrvoll@2001:700:301:11::24f) (Ping timeout: 260 seconds)
2021-04-29 12:09:28 +0200malumore(~malumore@151.62.116.76) (Remote host closed the connection)
2021-04-29 12:09:48 +0200malumore(~malumore@151.62.116.76)
2021-04-29 12:09:52 +0200Miroboru(~myrvoll@78.91.103.181)
2021-04-29 12:10:18 +0200 <enikar> I use ghc 8.8.4 yet. There is no Control.Monad.Random in the random library. I steel use System.Random.
2021-04-29 12:10:36 +0200 <lowdude[m]> <tomsmeding "lowdude: fairToss >>= \coin -> c"> Okay thanks, I'll have a go with that.
2021-04-29 12:10:45 +0200pjb(~pjb@2a01cb04063ec5003930e59e19b6ded2.ipv6.abo.wanadoo.fr)
2021-04-29 12:12:11 +0200ddellacosta(~ddellacos@86.106.143.60) (Ping timeout: 240 seconds)
2021-04-29 12:15:16 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 12:15:21 +0200is_null_(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 12:15:49 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 12:16:04 +0200dvdp73(59736826@38.104.115.89.rev.vodafone.pt)
2021-04-29 12:18:06 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2021-04-29 12:19:41 +0200Qwerky(~qwerky@37.171.11.15) (Ping timeout: 240 seconds)
2021-04-29 12:20:05 +0200 <enikar> I found it, it's in monadrandom package.
2021-04-29 12:20:07 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-29 12:23:01 +0200malumore(~malumore@151.62.116.76) (Remote host closed the connection)
2021-04-29 12:23:53 +0200malumore(~malumore@151.62.116.76)
2021-04-29 12:29:44 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
2021-04-29 12:31:40 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 12:34:09 +0200 <tomsmeding> enikar: System.Random is from the 'random' library, which happens to be a library included with a base ghc installation; but it's not in 'base'
2021-04-29 12:36:11 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-04-29 12:39:55 +0200Igloo(~igloo@81.2.99.210)
2021-04-29 12:40:27 +0200Igloo(~igloo@81.2.99.210) (Read error: No route to host)
2021-04-29 12:40:55 +0200Igloo(~igloo@matrix.chaos.earth.li)
2021-04-29 12:41:45 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-04-29 12:42:54 +0200mapperr(~mapperr@vmi389916.contaboserver.net) (Remote host closed the connection)
2021-04-29 12:43:05 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-04-29 12:44:03 +0200superstar64(6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Quit: Connection closed)
2021-04-29 12:44:10 +0200mapperr(~mapperr@vmi389916.contaboserver.net)
2021-04-29 12:45:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-29 12:46:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 12:47:08 +0200ddellacosta(~ddellacos@86.106.143.242)
2021-04-29 12:50:03 +0200 <enikar> tomsmeding: yes. I use it sometimes.
2021-04-29 12:51:39 +0200ddellacosta(~ddellacos@86.106.143.242) (Ping timeout: 252 seconds)
2021-04-29 12:52:35 +0200TheWizardTower[m(thewizardt@gateway/shell/matrix.org/x-wdmliecptdlzuqsx) (Ping timeout: 248 seconds)
2021-04-29 12:52:36 +0200lambdaclan(lambdaclan@gateway/shell/matrix.org/x-nlffnpghzfabpuxw) (Ping timeout: 248 seconds)
2021-04-29 12:52:36 +0200jtojnar(jtojnarmat@gateway/shell/matrix.org/x-gdynpirehvttuqgd) (Ping timeout: 248 seconds)
2021-04-29 12:52:44 +0200TheWizardTower[m(thewizardt@gateway/shell/matrix.org/x-mhynxqoxcylcdnln)
2021-04-29 12:52:56 +0200lambdaclan(lambdaclan@gateway/shell/matrix.org/x-vcssvhrxheznsnah)
2021-04-29 12:53:09 +0200jtojnar(jtojnarmat@gateway/shell/matrix.org/x-hqewufefunqmyffr)
2021-04-29 12:53:19 +0200xff0x(~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2) (Ping timeout: 250 seconds)
2021-04-29 12:53:39 +0200Miroboru(~myrvoll@78.91.103.181) (Quit: WeeChat 3.1)
2021-04-29 12:55:24 +0200Qwerky(~qwerky@37.171.11.15)
2021-04-29 12:55:24 +0200xff0x(~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2)
2021-04-29 12:57:35 +0200polux2001(~polux@51.15.169.172) (Quit: Ping timeout (120 seconds))
2021-04-29 12:57:44 +0200polux2001(~polux@51.15.169.172)
2021-04-29 13:00:10 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 13:02:23 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-04-29 13:02:54 +0200 <desophos> i use Test.QuickCheck.Gen and i'm pretty happy with it so far
2021-04-29 13:03:57 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-04-29 13:04:04 +0200desophos_(~desophos@2601:249:1680:a570:63:12af:fbca:ad9f)
2021-04-29 13:04:10 +0200 <desophos> i haven't tried working with other RNG libraries though
2021-04-29 13:05:42 +0200 <desophos> i don't really know how much difference there is
2021-04-29 13:05:51 +0200desophos(~desophos@2601:249:1680:a570:ad52:b454:fe1c:2cc3) (Read error: Connection reset by peer)
2021-04-29 13:06:01 +0200Guest21568(~textual@2603-7000-3040-0000-057f-238e-9cc1-6931.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-29 13:07:04 +0200jgt_(~jgt@88.225.221.135)
2021-04-29 13:11:12 +0200jgt_(~jgt@88.225.221.135) (Ping timeout: 240 seconds)
2021-04-29 13:15:58 +0200 <lowdude[m]> <lowdude[m] "Okay thanks, I'll have a go with"> i meant to reply again earlier, but i was away for a little while. so that worked, thank you!
2021-04-29 13:16:37 +0200dmytrish(~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec)
2021-04-29 13:18:29 +0200ddellacosta(~ddellacos@86.106.143.151)
2021-04-29 13:18:54 +0200plutoniix(~q@ppp-124-120-200-197.revip2.asianet.co.th) (Quit: Leaving)
2021-04-29 13:21:29 +0200Qwerky_(~qwerky@37.170.132.154)
2021-04-29 13:21:36 +0200Irenes(~irenes@NixOS/user/irenes) (Ping timeout: 245 seconds)
2021-04-29 13:22:25 +0200desophos_(~desophos@2601:249:1680:a570:63:12af:fbca:ad9f) (Ping timeout: 276 seconds)
2021-04-29 13:23:06 +0200jgt_(~jgt@46.154.73.47)
2021-04-29 13:23:25 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
2021-04-29 13:23:30 +0200ddellacosta(~ddellacos@86.106.143.151) (Ping timeout: 268 seconds)
2021-04-29 13:24:17 +0200Qwerky(~qwerky@37.171.11.15) (Ping timeout: 252 seconds)
2021-04-29 13:26:05 +0200__minoru__shirae(~shiraeesh@46.34.207.120)
2021-04-29 13:26:29 +0200desophos_(~desophos@2601:249:1680:a570:63:12af:fbca:ad9f)
2021-04-29 13:28:16 +0200desophos_desophos
2021-04-29 13:29:19 +0200dmytrish(~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec) (Ping timeout: 260 seconds)
2021-04-29 13:29:24 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8)
2021-04-29 13:29:40 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 13:32:51 +0200zva(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-04-29 13:33:41 +0200Irenes(~irenes@NixOS/user/irenes)
2021-04-29 13:35:34 +0200desophos(~desophos@2601:249:1680:a570:63:12af:fbca:ad9f) (Quit: Mutter: www.mutterirc.com)
2021-04-29 13:37:03 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-04-29 13:37:43 +0200 <tomsmeding> lowdude[m]: nice :)
2021-04-29 13:44:03 +0200 <DigitalKiwi> if laziness is so good then how come people mention it so often without being asked
2021-04-29 13:44:08 +0200kami_(~kami@228.243.254.87.static.monaco.mc)
2021-04-29 13:44:38 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 13:47:31 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Ping timeout: 260 seconds)
2021-04-29 13:47:31 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-29 13:47:43 +0200 <DigitalKiwi> monochrom: ^
2021-04-29 13:48:22 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 13:51:19 +0200son0p(~ff@181.136.122.143)
2021-04-29 13:51:33 +0200is_null_(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 265 seconds)
2021-04-29 13:51:34 +0200egorbelibov(~65676f72@2001:8a0:5708:2a00:2014:4cc0:2f98:ce70) (Remote host closed the connection)
2021-04-29 13:53:06 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2021-04-29 13:53:23 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 13:55:35 +0200Guest31772(~mattl@185.204.1.185)
2021-04-29 13:59:30 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 14:00:29 +0200Alleria(~textual@zrcout.mskcc.org)
2021-04-29 14:00:51 +0200AlleriaGuest23245
2021-04-29 14:03:52 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 14:04:02 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-04-29 14:09:29 +0200 <nshepperd> do they don't have to remember to do that later
2021-04-29 14:10:00 +0200 <nitrix> Expectations tends to lead to surprises.
2021-04-29 14:10:23 +0200enobayram(4eaf3ebd@78.175.62.189) (Quit: Connection closed)
2021-04-29 14:10:43 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-04-29 14:14:16 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
2021-04-29 14:15:34 +0200stree(~stree@68.36.8.116) (Ping timeout: 260 seconds)
2021-04-29 14:15:38 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 14:17:25 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 14:17:46 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-04-29 14:21:22 +0200gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-04-29 14:21:53 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-04-29 14:22:23 +0200bennofs_(~quassel@x4dbf4f4d.dyn.telefonica.de) (Read error: Connection reset by peer)
2021-04-29 14:22:38 +0200bennofs_(~quassel@x4dbf4f4d.dyn.telefonica.de)
2021-04-29 14:25:16 +0200Qwerky_(~qwerky@37.170.132.154) (Remote host closed the connection)
2021-04-29 14:27:02 +0200royal_screwup21(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-04-29 14:27:19 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee)
2021-04-29 14:28:36 +0200stree(~stree@68.36.8.116)
2021-04-29 14:28:49 +0200teme(56733f9f@dsl-hkibng42-56733f-159.dhcp.inet.fi)
2021-04-29 14:30:00 +0200Qwerky(~qwerky@37.170.132.154)
2021-04-29 14:30:12 +0200zebrag(~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
2021-04-29 14:30:30 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
2021-04-29 14:30:33 +0200 <timCF> Hello! I'm using `KatipContextT` transformer for stuctural logging of my app, and it works quite well. But unfortunately part of my app which is using Esqueleto/Persistent libraries has its own opinion about logging and uses `LoggingT` under the hood. Is there any smart way to map `LoggingT` into `KatipContextT` to make all my logs looking the same way?
2021-04-29 14:31:14 +0200ddellacosta(~ddellacos@86.106.143.177)
2021-04-29 14:32:17 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-29 14:32:44 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 14:32:57 +0200 <merijn> timCF: Yes
2021-04-29 14:33:09 +0200 <merijn> LoggingT is just a function you can replac
2021-04-29 14:33:22 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-29 14:33:41 +0200 <merijn> timCF: https://hackage.haskell.org/package/monad-logger-0.3.36/docs/Control-Monad-Logger.html#t:LoggingT
2021-04-29 14:35:42 +0200ddellacosta(~ddellacos@86.106.143.177) (Ping timeout: 260 seconds)
2021-04-29 14:35:42 +0200xelxebar_(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2021-04-29 14:35:59 +0200teme(56733f9f@dsl-hkibng42-56733f-159.dhcp.inet.fi) (Quit: Connection closed)
2021-04-29 14:36:11 +0200xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2021-04-29 14:37:02 +0200 <timCF> merijn: It's now really clear how, because this function don't have any side-effect rich arguments which can define how exactly it should do logging
2021-04-29 14:37:12 +0200nemesit|znc_(~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in)
2021-04-29 14:37:19 +0200 <timCF> In my case I'm using this function from Persistent https://hackage.haskell.org/package/persistent-postgresql-2.12.1.1/docs/Database-Persist-Postgresq…
2021-04-29 14:37:19 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 250 seconds)
2021-04-29 14:37:42 +0200nemesit|znc(~nemesit@myriadvisuals.com)
2021-04-29 14:38:17 +0200 <timCF> It has class restriction `MonadLoggerIO m` and value can be passed to `runStdoutLoggingT`
2021-04-29 14:39:16 +0200Qwerky(~qwerky@37.170.132.154) (Remote host closed the connection)
2021-04-29 14:39:18 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 14:39:37 +0200Qwerky(~qwerky@37.170.132.154)
2021-04-29 14:39:37 +0200 <timCF> And I don't undestand how to map output of `createPostresqlPool` into something what `runKatipContextT` will understand
2021-04-29 14:40:07 +0200 <timCF> To use it instead of `runStdoutLoggingT`
2021-04-29 14:45:11 +0200__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2021-04-29 14:45:15 +0200idhugo__(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Remote host closed the connection)
2021-04-29 14:45:42 +0200idhugo__(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
2021-04-29 14:46:47 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
2021-04-29 14:47:12 +0200 <merijn> I recall overriding it for my own logging
2021-04-29 14:47:22 +0200 <merijn> but, tbh, I don't remember how
2021-04-29 14:47:44 +0200 <merijn> and I can't quickly find the relevant code
2021-04-29 14:48:41 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 14:50:07 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
2021-04-29 14:50:16 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-29 14:50:21 +0200vgtw(~vgtw@gateway/tor-sasl/vgtw)
2021-04-29 14:50:31 +0200zva(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
2021-04-29 14:52:54 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 14:54:50 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 14:55:49 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 14:55:57 +0200acidjnk_new2(~acidjnk@p200300d0c72b9548b4aacef2f046ba0b.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-04-29 14:56:11 +0200Tario(~Tario@201.192.165.173)
2021-04-29 14:56:26 +0200jgt(~jgt@88.225.221.135)
2021-04-29 14:58:03 +0200jgt_(~jgt@46.154.73.47) (Remote host closed the connection)
2021-04-29 14:59:11 +0200zebrag(~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-29 14:59:31 +0200zebrag(~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
2021-04-29 14:59:37 +0200idhugo__(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds)
2021-04-29 14:59:51 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
2021-04-29 15:00:39 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 15:02:01 +0200carlomagno(~cararell@148.87.23.6)
2021-04-29 15:03:02 +0200slack1256(~slack1256@181.203.33.200)
2021-04-29 15:03:50 +0200cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1)
2021-04-29 15:05:11 +0200urodna(~urodna@unaffiliated/urodna)
2021-04-29 15:05:40 +0200ddellacosta(~ddellacos@86.106.143.47)
2021-04-29 15:05:53 +0200__minoru__shirae(~shiraeesh@46.34.207.120) (Ping timeout: 252 seconds)
2021-04-29 15:06:10 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
2021-04-29 15:06:22 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2021-04-29 15:06:25 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 15:08:22 +0200zva(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-04-29 15:08:56 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
2021-04-29 15:09:41 +0200is_null_(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 15:10:06 +0200ddellacosta(~ddellacos@86.106.143.47) (Ping timeout: 240 seconds)
2021-04-29 15:11:47 +0200 <timCF> merijn: thanks anyway!
2021-04-29 15:13:41 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2021-04-29 15:14:46 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-29 15:15:26 +0200lleb(5c91ba7e@amarseille-158-1-23-126.w92-145.abo.wanadoo.fr)
2021-04-29 15:17:34 +0200 <lleb> hello o/ i have a beginner question : i'm trying to send a post http request, with a json body. To add the body request, im using Http.Network.Simple setRequestBodyJSON : https://hackage.haskell.org/package/http-conduit-2.3.8/docs/Network-HTTP-Simple.html#v:setRequestB…
2021-04-29 15:17:35 +0200 <lleb> But it seems that the request i send it invalid, the server answer me with a 400. setRequestBodyJSON document talk about a flag aeson that should be enabled. I looked at the aeson hackage page, and it seems that aeson expose multiple flags. I tried all of them but it didnt fix my issue. I wonder if im doing it correctly
2021-04-29 15:18:17 +0200 <lleb> i added this to my stack.yaml file :
2021-04-29 15:18:18 +0200 <lleb> 2 flags:
2021-04-29 15:18:18 +0200 <lleb> + 1 aeson:
2021-04-29 15:18:19 +0200 <lleb> + 48 <flagname>: true
2021-04-29 15:18:38 +0200 <lleb> flags:
2021-04-29 15:18:38 +0200 <lleb>   aeson:
2021-04-29 15:18:39 +0200 <lleb>    <flagname>: true
2021-04-29 15:19:12 +0200 <lleb> i dont even know if my issue come from this, what is the expected behavior if i use setRequestBodyJSON without the proper flag enabled ?
2021-04-29 15:19:35 +0200 <lleb> i hope im asking this in the right place
2021-04-29 15:19:41 +0200pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2021-04-29 15:19:49 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-04-29 15:20:20 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-29 15:22:21 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-29 15:24:45 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
2021-04-29 15:24:45 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2021-04-29 15:24:59 +0200kritzefitz(~kritzefit@p200300ecdf3c5b009ca7d9f9eb7bbe17.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-04-29 15:25:17 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49)
2021-04-29 15:25:25 +0200whosit(~whosit@109-252-94-126.nat.spd-mgts.ru) (Quit: Lost terminal)
2021-04-29 15:26:51 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-04-29 15:27:01 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2021-04-29 15:27:49 +0200chimera(~chimera@168-182-134-95.pool.ukrtel.net)
2021-04-29 15:30:01 +0200__minoru__shirae(~shiraeesh@46.34.207.120)
2021-04-29 15:32:53 +0200Qwerky(~qwerky@37.170.132.154) (Remote host closed the connection)
2021-04-29 15:34:42 +0200Qwerky(~qwerky@37.170.132.154)
2021-04-29 15:35:23 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-29 15:35:39 +0200slac48041(~slack1256@200.112.85.255)
2021-04-29 15:36:05 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-29 15:36:47 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-29 15:37:53 +0200slack1256(~slack1256@181.203.33.200) (Ping timeout: 265 seconds)
2021-04-29 15:37:56 +0200jgt(~jgt@88.225.221.135) (Ping timeout: 268 seconds)
2021-04-29 15:38:00 +0200 <tomsmeding> lleb: can you check what exactly you're sending to the server, and if that's what you expect?
2021-04-29 15:38:57 +0200 <tomsmeding> lleb: also, that's not the way you set flags, I think; but in any case the 'aeson' flag is enabled by default for http-conduit, so that should be fine
2021-04-29 15:39:06 +0200 <lleb> i would love to, i have no clue of how i cant see or print the actual http request that is sent to the server tomsmeding
2021-04-29 15:39:17 +0200 <lleb> i can*
2021-04-29 15:39:49 +0200 <lleb> i see how to print a Request object, but that's style an haskell data structure and not an actual http request
2021-04-29 15:39:58 +0200 <lleb> that's still*
2021-04-29 15:41:49 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-29 15:42:09 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 15:42:32 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-04-29 15:42:45 +0200 <lleb> im confident about what the server expect since i with a curl request i had the answer i expected, but im not aware of a tool to debug that kind of thing in haskell
2021-04-29 15:43:46 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-04-29 15:43:49 +0200 <lleb> (im not the owner of the server so i cant print the incoming request from the server side)
2021-04-29 15:43:55 +0200 <tomsmeding> lleb: https://requestbin.com exists (make sure to click the 'public bin' link)
2021-04-29 15:44:57 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 15:45:12 +0200timCF(~i.tkachuk@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-04-29 15:46:03 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-29 15:46:05 +0200 <lleb> tomsmeding cool, i didnt tough about that kind of solution
2021-04-29 15:46:23 +0200Guest87676(~laudiacay@67.176.215.84)
2021-04-29 15:46:26 +0200ddellacosta(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 15:48:15 +0200 <tomsmeding> lleb: when something goes wrong, always look at what the data in question actually looks like :)
2021-04-29 15:48:37 +0200 <tomsmeding> instead of trying to imagine what it should be -- indeed, that's what you should then _compare_ it to
2021-04-29 15:48:51 +0200 <tomsmeding> often that produces some surprises ;)
2021-04-29 15:48:52 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu) (Ping timeout: 240 seconds)
2021-04-29 15:48:53 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 15:49:33 +0200xkapastel(uid17782@gateway/web/irccloud.com/x-emokxuotemcxsfjh)
2021-04-29 15:49:37 +0200 <lleb> tomsmeding i compared my haskell request body and my curl request body. I added \ character in the haskell one ( { \"key\": value } ) and they are appearing in the final request body
2021-04-29 15:50:26 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-04-29 15:50:36 +0200 <tomsmeding> lleb: is your Content-Type header correct? Are those \ characters actually sent to the server (if so, that sounds wrong -- json doesn't need backslashes)?
2021-04-29 15:50:50 +0200Tario(~Tario@garza.riseup.net)
2021-04-29 15:51:40 +0200 <lleb> tomsmeding content-type application/json; charset=utf-8 in the curl request and content-type application/json in the haskell one
2021-04-29 15:51:49 +0200 <lleb> i dont think that the charset part is mandatory
2021-04-29 15:51:56 +0200 <lleb> and yes those \ chars are sent to the server
2021-04-29 15:52:52 +0200 <tomsmeding> lleb: I don't think they should be sent
2021-04-29 15:53:04 +0200 <tomsmeding> and no the charset doesn't sound necessary usually
2021-04-29 15:53:32 +0200 <lleb> tomsmeding i dont think so neither and i didnt expect this behavior...
2021-04-29 15:54:08 +0200 <lleb> https://pastebin.com/vdQP0f2d
2021-04-29 15:54:46 +0200 <lleb> here is my code. I wanted to represent my request body as a string in the code, before passing it to setRequestBodyJSON, and i cant do that without adding the \ chars
2021-04-29 15:54:57 +0200jgt(~jgt@88.225.221.135)
2021-04-29 15:55:08 +0200Tario(~Tario@garza.riseup.net) (Ping timeout: 246 seconds)
2021-04-29 15:55:48 +0200 <tomsmeding> lleb: are you _sure_ those \ characters are actually sent to the server?
2021-04-29 15:56:17 +0200 <tomsmeding> lleb: oh wait: are there " characters around your request body?
2021-04-29 15:56:34 +0200malumore_(~malumore@151.62.116.76)
2021-04-29 15:56:54 +0200waleee-cl(uid373333@gateway/web/irccloud.com/x-qamskrartzxwuohd)
2021-04-29 15:57:00 +0200 <tomsmeding> I think the library is json-encoding your json string
2021-04-29 15:57:35 +0200 <tomsmeding> it takes a ToJson a => a, and you're passing it a String -- which can indeed be converted to json, but that's not what you wanted
2021-04-29 15:57:42 +0200 <lleb> tomsmeding indeed... here is the raw body that i get in requestbin : "{\"operationName\":null,\"variables\":{},\"query\":\"{\n pages {\n list {\n title\n }\n }\n}\n\"}"
2021-04-29 15:57:49 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-04-29 15:58:02 +0200 <tomsmeding> yeah
2021-04-29 15:58:36 +0200 <lleb> tomsmeding let finalReq = setRequestBodyJSON requestBody req
2021-04-29 15:58:41 +0200 <lleb> here requestBody is a string
2021-04-29 15:58:41 +0200 <tomsmeding> try either getting an aeson json value object and passing that to setRequestBodyJSON, or using e.g. setRequestBodyLBS with the literal json string and set the content-type manually
2021-04-29 15:59:00 +0200tomsmedinghas to go unfortunately
2021-04-29 15:59:02 +0200 <tomsmeding> good luck!
2021-04-29 15:59:05 +0200 <lleb> ok... i expected ToJson a => a to turn my string into a json
2021-04-29 15:59:06 +0200malumore(~malumore@151.62.116.76) (Ping timeout: 260 seconds)
2021-04-29 15:59:13 +0200 <tomsmeding> it did!
2021-04-29 15:59:13 +0200 <lleb> thanks a lot tomsmeding
2021-04-29 15:59:16 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-29 15:59:25 +0200 <tomsmeding> but you don't want any conversion at all :p
2021-04-29 16:02:01 +0200__minoru__shirae(~shiraeesh@46.34.207.120) (Ping timeout: 260 seconds)
2021-04-29 16:03:24 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Remote host closed the connection)
2021-04-29 16:04:43 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-04-29 16:10:03 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-29 16:10:21 +0200idhugo__(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net)
2021-04-29 16:11:35 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-04-29 16:13:21 +0200Qwerky_(~qwerky@37.170.132.154)
2021-04-29 16:14:11 +0200__minoru__shirae(~shiraeesh@46.34.207.120)
2021-04-29 16:14:58 +0200Tario(~Tario@201.192.165.173)
2021-04-29 16:16:33 +0200Qwerky(~qwerky@37.170.132.154) (Ping timeout: 265 seconds)
2021-04-29 16:16:37 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 16:17:22 +0200LKoen(~LKoen@22.249.88.92.rev.sfr.net) (Remote host closed the connection)
2021-04-29 16:17:28 +0200Sheilong(uid293653@gateway/web/irccloud.com/x-cinqhqsiyvsglyzn)
2021-04-29 16:17:37 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 16:17:50 +0200lleb(5c91ba7e@amarseille-158-1-23-126.w92-145.abo.wanadoo.fr) (Quit: Connection closed)
2021-04-29 16:18:25 +0200ddellacosta(~ddellacos@86.106.143.229)
2021-04-29 16:20:26 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer)
2021-04-29 16:20:39 +0200sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.9)
2021-04-29 16:21:03 +0200 <absence> ReaderT has the withReaderT function that can modify the type of the environment, but MonadReader only has the local function which can modify the value of the environment, but not the type. is this a limitation of how typeclasses work? would it be necessary/possible to use a different effect system to implement the ability to change the environment's type?
2021-04-29 16:21:06 +0200is_null_(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2021-04-29 16:22:37 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 16:22:47 +0200ddellacosta(~ddellacos@86.106.143.229) (Ping timeout: 246 seconds)
2021-04-29 16:22:56 +0200 <merijn> absence: MonadReader can't guarantee the type is changeable
2021-04-29 16:25:15 +0200alx741(~alx741@181.196.68.118)
2021-04-29 16:26:06 +0200bitmagie(~Thunderbi@200116b80605cb00d83ce53866d6a8fa.dip.versatel-1u1.de)
2021-04-29 16:26:57 +0200ulidtko|kk(~ulidtko@31.133.98.224)
2021-04-29 16:27:00 +0200bitmagie(~Thunderbi@200116b80605cb00d83ce53866d6a8fa.dip.versatel-1u1.de) (Client Quit)
2021-04-29 16:28:26 +0200ram19890(~ram@49.205.84.15)
2021-04-29 16:29:03 +0200 <absence> merijn: because other layers in the stack could depend on it?
2021-04-29 16:29:13 +0200 <merijn> Who says there is a stack
2021-04-29 16:29:29 +0200ulidtko|k(~ulidtko@194.54.80.38) (Ping timeout: 260 seconds)
2021-04-29 16:30:18 +0200 <absence> merijn: if there isn't, why wouldn't the type be changeable?
2021-04-29 16:30:56 +0200 <geekosaur> MonadReader says only that there's some vaguely Reader-like thing there, not that it's something one could change the type of
2021-04-29 16:31:02 +0200 <geekosaur> I think
2021-04-29 16:32:42 +0200rond_(5940206b@89-64-32-107.dynamic.chello.pl)
2021-04-29 16:33:07 +0200 <merijn> Semi-relatedly: All the typeclasses in mtl are terrible and should never be part of any public API
2021-04-29 16:33:44 +0200 <absence> merijn: what do you suggest instead?
2021-04-29 16:34:08 +0200 <merijn> for what
2021-04-29 16:35:01 +0200 <tdammers> my guess would be "for abstracting 'ask' beyond literally Reader / ReaderT"
2021-04-29 16:35:19 +0200 <merijn> "don't"
2021-04-29 16:35:27 +0200 <merijn> ask is part of the problem
2021-04-29 16:35:53 +0200LKoen(~LKoen@22.249.88.92.rev.sfr.net)
2021-04-29 16:36:00 +0200 <tdammers> ask is what Reader is all about, isn't it
2021-04-29 16:36:13 +0200 <merijn> Sure
2021-04-29 16:36:26 +0200stree(~stree@68.36.8.116) (Ping timeout: 246 seconds)
2021-04-29 16:36:40 +0200 <merijn> But Reader, while useful for some early prototyping, is a terrible public API
2021-04-29 16:38:25 +0200 <merijn> Wrap it with an application/use specific newtype (see LoggingT, for example)
2021-04-29 16:38:32 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2021-04-29 16:40:28 +0200 <absence> a newtype for each part of the environment?
2021-04-29 16:41:09 +0200 <merijn> What do you mean "each part"
2021-04-29 16:41:24 +0200jao(~jao@pdpc/supporter/professional/jao)
2021-04-29 16:41:55 +0200 <absence> you used logger as one example, but there are usually other things, like a database handle, a kafka handle, some metrics stuff, etc
2021-04-29 16:42:57 +0200 <merijn> You define "MonadLogging", "MonadKafka" that provide you the primitives you need, then have one single type that implements all those things
2021-04-29 16:43:10 +0200 <merijn> The problem with MonadReader is that is overly broad
2021-04-29 16:43:10 +0200cfricke(~cfricke@unaffiliated/cfricke)
2021-04-29 16:43:39 +0200 <merijn> You can only ever have exactly *one* MonadReader instance, and making that class part of your public API means your hosed when 2 APIs use MonadReader for different thing
2021-04-29 16:44:02 +0200 <tdammers> arguably, the "s" parameter to the MonadReader class (or "r" or whatever letter you pick) could make that distinction for you, if it weren't that typeclasses don't quite work that way
2021-04-29 16:44:12 +0200 <merijn> The tagless final style classes like MonadX are ok, but only if there's a sensible globally unique meaning for them
2021-04-29 16:44:51 +0200 <tdammers> otherwise, you could have sth like (MonadReader Foo m, MonadReader Bar m) => ..., and then instantiate that as ReaderT Foo (Reader Bar) or sth
2021-04-29 16:45:20 +0200 <absence> right, i see what you mean
2021-04-29 16:45:23 +0200 <merijn> tdammers: Right, but that's just the same as having meaningful MonadX classes
2021-04-29 16:45:28 +0200 <merijn> absence: Example: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Sql/Core.hs#L130-L133
2021-04-29 16:45:39 +0200 <merijn> absence: All my query logic is built on those 3 functions
2021-04-29 16:45:41 +0200 <tdammers> merijn: sure, totally agree there
2021-04-29 16:46:07 +0200 <merijn> absence: Whether you get those from a ReaderT, some other type or dark voodoo really isn't important to my querying logic
2021-04-29 16:46:45 +0200 <merijn> absence: This also makes refactoring easier
2021-04-29 16:46:45 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-04-29 16:46:48 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 16:47:07 +0200 <merijn> absence: Instead of having "a specific monad stack" you just have "a type that lets me implement these primitives"
2021-04-29 16:47:43 +0200 <merijn> absence: most of my logic is just a single opaque newtype (that internally uses some transformers, but the fact that I do is irrelevant to the code using that type)
2021-04-29 16:49:32 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-04-29 16:49:48 +0200stree(~stree@68.36.8.116)
2021-04-29 16:49:55 +0200 <tdammers> the mtl classes kind of try to give you "a type that lets me implement these primitives", it's just that the primitives are too meaning-agnostic, a bit like the Boolean Blindness problem
2021-04-29 16:49:57 +0200 <absence> merijn: i can see there would be benefits in general, but i'm not sure my original problem would be solvable with specific MonadX classes either. say you have some class "MonadLogger msg m" where msg is the type of whatever you want to log. while the name is less likely to clash when there are multiple apis, could the class have a function that changes the msg type?
2021-04-29 16:49:58 +0200acidjnk_new2(~acidjnk@p5487d90a.dip0.t-ipconnect.de)
2021-04-29 16:50:07 +0200Sgeo(~Sgeo@ool-18b9875e.dyn.optonline.net)
2021-04-29 16:50:25 +0200olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2021-04-29 16:50:26 +0200ddellacosta(~ddellacos@86.106.143.21)
2021-04-29 16:55:38 +0200ddellacosta(~ddellacos@86.106.143.21) (Ping timeout: 268 seconds)
2021-04-29 17:00:18 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-04-29 17:00:35 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
2021-04-29 17:03:21 +0200Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 250 seconds)
2021-04-29 17:03:29 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Quit: Gateway shutdown)
2021-04-29 17:04:12 +0200 <kuribas> yay, I can make our next service in haskell! :-)
2021-04-29 17:09:21 +0200cr3(~cr3@192.222.143.195)
2021-04-29 17:09:57 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 17:11:26 +0200kritzefitz(~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
2021-04-29 17:13:32 +0200chele(~chele@5.53.222.202) (Remote host closed the connection)
2021-04-29 17:14:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-29 17:16:40 +0200Raito_Bezarius(~Raito@unaffiliated/raito-bezarius/x-8764578)
2021-04-29 17:18:03 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-29 17:19:57 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 17:20:37 +0200zebrag(~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-29 17:22:07 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2021-04-29 17:22:13 +0200proofofkeags(~proofofke@205.209.28.54)
2021-04-29 17:26:11 +0200mmfood(~mmfood@185.176.246.118)
2021-04-29 17:26:15 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 17:26:23 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421)
2021-04-29 17:30:32 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 17:33:51 +0200 <[exa]> kuribas: well good luck. :D
2021-04-29 17:38:27 +0200__minoru__shirae(~shiraeesh@46.34.207.120) (Remote host closed the connection)
2021-04-29 17:38:38 +0200__minoru__shirae(~shiraeesh@46.34.207.120)
2021-04-29 17:38:46 +0200 <kuribas> it'll be a small service for now, but we can make it bigger later.
2021-04-29 17:39:12 +0200nineonin_(~nineonine@50.216.62.2)
2021-04-29 17:43:00 +0200joncol(~jco@c83-248-173-38.bredband.comhem.se)
2021-04-29 17:43:04 +0200nineonine(~nineonine@2604:3d08:7785:9600:b972:f5c7:dd8f:5421) (Ping timeout: 276 seconds)
2021-04-29 17:44:11 +0200enoq(~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
2021-04-29 17:46:47 +0200minoru_shiraeesh(~shiraeesh@46.34.207.120)
2021-04-29 17:48:03 +0200malumore_(~malumore@151.62.116.76) (Ping timeout: 268 seconds)
2021-04-29 17:48:07 +0200__minoru__shirae(~shiraeesh@46.34.207.120) (Remote host closed the connection)
2021-04-29 17:48:21 +0200 <maerwald> why write it in haskell?
2021-04-29 17:49:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 17:49:49 +0200 <kuribas> maerwald: why not?
2021-04-29 17:50:36 +0200 <maerwald> a) access to software developers, b) access to cheap software developers, c) bus factor
2021-04-29 17:51:09 +0200 <tdammers> however d) access to non-shitty software developers
2021-04-29 17:51:23 +0200 <tdammers> and e) guaranteeing an absolute minimum baseline of "documentation"
2021-04-29 17:51:38 +0200 <Taneb> f) fun
2021-04-29 17:52:02 +0200 <tdammers> that's actually a valid business concern
2021-04-29 17:52:02 +0200 <kuribas> a) 1 we have good developers, b) we pay them a good salary c) I'll train them
2021-04-29 17:52:20 +0200 <maerwald> ok, so you're the only experienced haskell dev?
2021-04-29 17:52:46 +0200 <kuribas> maerwald: nah, there are many, the guys here, well-typed, etc...
2021-04-29 17:52:58 +0200 <maerwald> kuribas: I mean in your team
2021-04-29 17:53:16 +0200 <kuribas> currently, yes
2021-04-29 17:53:40 +0200 <tdammers> fwiw, if you screw up and hire well-typed to mop up the pieces, I won't object
2021-04-29 17:53:43 +0200 <maerwald> what happens if you get sick or leave the company, because well-typed made you an offer? ;)
2021-04-29 17:54:02 +0200 <kuribas> maerwald: depends how well the service does?
2021-04-29 17:54:06 +0200acidjnk_new2(~acidjnk@p5487d90a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-04-29 17:54:17 +0200 <tomsmeding> given "data Dir = Fwd | Rev ; type family Flip (a :: Dir) = r | r -> a where Flip 'Fwd = 'Rev ; Flip 'Rev = 'Fwd", is there a nice way to prove to ghc that "a ~ Flip (Flip a)" ?
2021-04-29 17:54:31 +0200 <kuribas> maerwald: if it happens in the next month (unlikely) it'll get rewritten in clojure.
2021-04-29 17:54:32 +0200 <tomsmeding> for a :: Dir
2021-04-29 17:54:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-04-29 17:55:10 +0200Qwerky_(~qwerky@37.170.132.154) (Remote host closed the connection)
2021-04-29 17:55:12 +0200 <maerwald> so in 3 years, you are gone, the service uses an ancient stackage LTS that you can't build with current stack anymore and the CTO orders to rewrite it in Go, because they can't compete with blockchain companies for haskell dev salaries :p
2021-04-29 17:55:12 +0200 <kuribas> maerwald: if it happens next year, I suppose the other guys should know enough to get shit done.
2021-04-29 17:56:07 +0200conal(~conal@64.71.133.70) (Ping timeout: 265 seconds)
2021-04-29 17:56:14 +0200 <kuribas> I doubt it. Not go for sure, maybe clojure.
2021-04-29 17:56:18 +0200zva(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-04-29 17:56:22 +0200 <minoru_shiraeesh> write everything in pseudo-code and transpile to actual code
2021-04-29 17:56:51 +0200 <kuribas> maerwald: or more likely, when I leave they hire another guy who knows haskell well.
2021-04-29 17:57:14 +0200 <maerwald> tbh, I've always said "no" if someone asked me if haskell is a good idea for some commercial project
2021-04-29 17:57:31 +0200 <maerwald> Either CTO and CEO know the deal and are all-in on it, or don't do it
2021-04-29 17:57:31 +0200 <kuribas> maerwald: I guess you are in the wrong channel then?
2021-04-29 17:57:32 +0200Pickchea(~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
2021-04-29 17:57:36 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 17:57:38 +0200 <maerwald> why is that?
2021-04-29 17:58:00 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Quit: mikoto-chan)
2021-04-29 17:58:06 +0200 <maerwald> I'm not talking about open source or ppl who know what they are doing. I'm talking about someone asking what they should do
2021-04-29 17:58:09 +0200 <kuribas> maerwald: if you don't like haskell, this isn't the place?
2021-04-29 17:58:18 +0200 <maerwald> kuribas: sorry what?
2021-04-29 17:58:26 +0200 <tomsmeding> liking haskell is something else than thinking it's good for task X
2021-04-29 17:58:36 +0200coot(~coot@37.30.58.122.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-04-29 17:58:42 +0200 <tomsmeding> where here, task X is quite broad: using it as a company
2021-04-29 17:58:47 +0200 <kuribas> tomsmeding: eh, "haskell is wrong for commercial use" is very generic.
2021-04-29 17:58:53 +0200 <maerwald> that's not what I said either
2021-04-29 17:59:10 +0200 <kuribas> tomsmeding: that's very different from saying, haskell isn't suited for this particular task.
2021-04-29 17:59:18 +0200 <tomsmeding> true
2021-04-29 17:59:48 +0200 <maerwald> If someone asks me "We will use haskell in our commercial project, will you help us?" I will likely say yes ;)
2021-04-29 17:59:50 +0200conal(~conal@64.71.133.70)
2021-04-29 17:59:58 +0200 <maerwald> but if they ask me if they should use haskell, I say "no"
2021-04-29 18:00:03 +0200adziahel[m](adziahelma@gateway/shell/matrix.org/x-qwxmblcrsukkaonc) (Quit: Idle for 30+ days)
2021-04-29 18:00:17 +0200 <kuribas> maerwald: it depends.
2021-04-29 18:00:20 +0200L29Ah(~L29Ah@unaffiliated/l29ah) (Quit: Gateway shutdown)
2021-04-29 18:00:32 +0200 <kuribas> maerwald: "yes" isn't a good generic answer, neither is "no".
2021-04-29 18:01:33 +0200 <kuribas> maerwald: it depends on company culture, existing practices, expectations, scope of project, etc...
2021-04-29 18:01:47 +0200 <maerwald> it depends on them asking me the question :p
2021-04-29 18:03:47 +0200 <maerwald> if you ask a Buddhist, if you should become a Buddhist, they'll either say "no" or say nothing
2021-04-29 18:03:59 +0200 <maerwald> saying nothing is kinda rude, so...
2021-04-29 18:04:27 +0200 <kuribas> maerwald: it's biased against haskell, so I wonder why you are here.
2021-04-29 18:04:28 +0200 <tdammers> a Zen Buddhist might answer "mu."
2021-04-29 18:04:33 +0200 <maerwald> hehe
2021-04-29 18:04:33 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-29 18:04:39 +0200Qwerky(~qwerky@37.170.132.154)
2021-04-29 18:04:45 +0200 <maerwald> kuribas: no
2021-04-29 18:04:55 +0200 <kuribas> maerwald: I don't find you are either enlightend, nor objective.
2021-04-29 18:05:02 +0200 <kuribas> not that I am...
2021-04-29 18:05:12 +0200 <tdammers> alternatively: "There is no 'Buddhism'. There is no 'should'. There is no 'I'."
2021-04-29 18:05:24 +0200 <maerwald> kuribas: I don't engage in ad-hominemisms :p
2021-04-29 18:05:39 +0200 <maerwald> tdammers: that's too abstract for me :>
2021-04-29 18:05:42 +0200howdoi(uid224@gateway/web/irccloud.com/x-qncwqauoexuittvy)
2021-04-29 18:06:04 +0200 <maerwald> but in general, I despise envangelism in tech
2021-04-29 18:06:06 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-29 18:06:17 +0200 <kuribas> maerwald: I am not saying you should be biased for haskell, it's just strange that you are here...
2021-04-29 18:06:26 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-04-29 18:06:36 +0200 <maerwald> kuribas: I find it strange too... world is full of miracles :>
2021-04-29 18:06:54 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 18:07:06 +0200 <tdammers> kuribas: he's kind of right though. as fantastic Haskell is as a language, from a business perspective it has downsides that can prove crucial
2021-04-29 18:07:28 +0200 <maerwald> once I recommended rust to a startup company... sometimes I have nightmares about how they're doing
2021-04-29 18:08:05 +0200 <maerwald> but my data point was: Microsoft rewrote some of their stuff in rust and achieved the same velocity after a couple of weeks
2021-04-29 18:08:08 +0200 <kuribas> tdammers: what about clojure then?
2021-04-29 18:08:10 +0200electricityZZZZ(~electrici@157-131-250-97.fiber.dynamic.sonic.net)
2021-04-29 18:08:19 +0200 <kuribas> tdammers: is clojure "better" from a business perspective?
2021-04-29 18:08:43 +0200 <maerwald> with haskell, your velocity is harder to predict as well
2021-04-29 18:08:45 +0200geekosaurwould like to point out that clojure is a possibility because of evangelism, which maerwald has rejected
2021-04-29 18:08:49 +0200 <maerwald> sometime way faster, sometimes not
2021-04-29 18:08:50 +0200 <minoru_shiraeesh> otoh graham hutton, iirc, described lisp as one of his advantages over competition
2021-04-29 18:08:52 +0200 <tdammers> kuribas: clojure has some advantages that Haskell lacks, most notably running on JVM and having relatively painless Java interop
2021-04-29 18:08:59 +0200L29Ah(~L29Ah@unaffiliated/l29ah)
2021-04-29 18:09:12 +0200Qwerky(~qwerky@37.170.132.154) (Ping timeout: 240 seconds)
2021-04-29 18:09:22 +0200 <minoru_shiraeesh> so, it's not always a matter of using a language with cheapest coders
2021-04-29 18:09:23 +0200 <maerwald> tdammers: and not crashing, although your code is completely wrong
2021-04-29 18:09:27 +0200 <joncol> I see the words Clojure and Haskell mentioned here. Anyone that did the switch from a Clojure job to a Haskell dito around here? Would be fun to hear something about the change in experience.
2021-04-29 18:09:57 +0200 <tdammers> minoru_shiraeesh: I'm not saying the downsides are *always* show stoppers. Something like Lisp or Haskell can be your productivity superweapon that gives you an edge over the competition. But that only works if you know how to play its strength, and have a plan to deal with the downsides.
2021-04-29 18:10:33 +0200conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-04-29 18:10:35 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-29 18:10:57 +0200conal(~conal@64.71.133.70)
2021-04-29 18:11:03 +0200 <kuribas> tdammers: I find the quality of some clojure libraries quite bad actually.
2021-04-29 18:11:08 +0200 <tdammers> joncol: technically, yes - one of the jobs I had before making the jump to "professional Haskeller" used clojure almost exclusively. in reality, however, I had been using Haskell for personal stuff long before that, so I really came to clojure from Haskell, and found the experience thoroughly underwhelming
2021-04-29 18:11:23 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-04-29 18:11:26 +0200 <kuribas> tdammers: and the documentation is abysmal
2021-04-29 18:12:01 +0200 <maerwald> tdammers: I worked on a pretty large clojurescript codebase and one day I deleted on bracket too many, the compiler didn't complain and the customer page would go blank
2021-04-29 18:12:12 +0200 <minoru_shiraeesh> "otoh graham hutton, iirc, described lisp as one of his advantages over competition" or paul graham? not sure
2021-04-29 18:12:14 +0200Guest87676(~laudiacay@67.176.215.84)
2021-04-29 18:12:18 +0200 <maerwald> I'm not sure how that passed the compiler, but it did
2021-04-29 18:12:25 +0200 <joncol> tdammers: What I find most difficult with Clojure is the maintenance/refactoring. Also adding features etc. So easy to make stupid mistakes that take too long to track down.
2021-04-29 18:12:25 +0200 <tdammers> minoru_shiraeesh: the latter
2021-04-29 18:13:04 +0200 <kuribas> joncol: maintanance is aweful in clojure. I find even now that we have a comprehensive test suite, pipelines, stuff still breaks often.
2021-04-29 18:13:08 +0200 <minoru_shiraeesh> yeah, it was paul graham
2021-04-29 18:13:12 +0200 <joncol> Especially when in a team of multiple programmers, each having their own preferences when it comes to what libraries to use etc.
2021-04-29 18:14:00 +0200 <kuribas> joncol: haskell is more robust with a tiny test suite, than clojure with a comprehensive one.
2021-04-29 18:14:08 +0200 <tdammers> clojure shares all the downsides of the rest of the "dynamic" bunch, but it cranks that up to 11
2021-04-29 18:14:46 +0200 <tdammers> you think monkey-patching is bad? here, have some macros.
2021-04-29 18:15:04 +0200jgt(~jgt@88.225.221.135) (Ping timeout: 252 seconds)
2021-04-29 18:15:10 +0200 <kuribas> tdammers: I happily don't see that many macros in our clojure base
2021-04-29 18:15:16 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 18:15:27 +0200 <tdammers> kuribas: maybe you don't even notice them
2021-04-29 18:15:29 +0200 <kuribas> tdammers: but the leniency is really annoying
2021-04-29 18:16:19 +0200 <joncol> kuribas: What leniency you mean specifically?
2021-04-29 18:16:55 +0200 <kuribas> joncol: nil punning, everything is a hashmap, ...
2021-04-29 18:17:02 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 268 seconds)
2021-04-29 18:17:13 +0200 <kuribas> in scheme, there is no nil punning, structures are quite strict, etc...
2021-04-29 18:19:44 +0200Lycurgus(~niemand@98.4.118.65)
2021-04-29 18:20:11 +0200puffnfresh1(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 252 seconds)
2021-04-29 18:20:21 +0200slack1256(~slack1256@200-112-64-179.baf.movistar.cl)
2021-04-29 18:20:49 +0200puffnfresh1(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
2021-04-29 18:22:39 +0200epicte7us(~epictetus@ip72-194-54-201.sb.sd.cox.net)
2021-04-29 18:22:40 +0200slac48041(~slack1256@200.112.85.255) (Read error: Connection reset by peer)
2021-04-29 18:24:15 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-29 18:25:33 +0200 <maerwald> kuribas: so, is it a servant based HTTP microsoverice?
2021-04-29 18:25:37 +0200gitgood(~gitgood@80-44-9-246.dynamic.dsl.as9105.com)
2021-04-29 18:26:05 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-04-29 18:26:18 +0200ep1ctetus(~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 268 seconds)
2021-04-29 18:27:38 +0200juuandyy(~juuandyy@90.106.228.121)
2021-04-29 18:28:27 +0200cfricke(~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
2021-04-29 18:29:35 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 18:29:55 +0200malumore_(~malumore@151.62.116.76)
2021-04-29 18:31:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 18:32:41 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net)
2021-04-29 18:32:57 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 18:35:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2021-04-29 18:37:06 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-04-29 18:37:11 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-04-29 18:37:16 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 18:39:31 +0200bennofs__(~quassel@dynamic-089-014-017-218.89.14.pool.telefonica.de)
2021-04-29 18:40:41 +0200 <carbolymer> I'm running ekg, and I have 16.5GB current memory residency and 12GB max residency - it does not make sense, doesn't it?
2021-04-29 18:40:42 +0200bennofs_(~quassel@x4dbf4f4d.dyn.telefonica.de) (Ping timeout: 246 seconds)
2021-04-29 18:41:08 +0200 <carbolymer> also top shows 9.1G usage, so how 16.5GB current residency is possible?
2021-04-29 18:44:40 +0200ddellac__(~ddellacos@86.106.143.34)
2021-04-29 18:45:05 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-04-29 18:46:26 +0200jgt(~jgt@88.225.221.135)
2021-04-29 18:46:38 +0200geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
2021-04-29 18:48:41 +0200marek(~mmahut@209.250.249.245) (Changing host)
2021-04-29 18:48:41 +0200marek(~mmahut@fedora/pyxel)
2021-04-29 18:49:09 +0200ddellac__(~ddellacos@86.106.143.34) (Ping timeout: 252 seconds)
2021-04-29 18:49:10 +0200justanotheruser(~justanoth@unaffiliated/justanotheruser)
2021-04-29 18:52:11 +0200jgt(~jgt@88.225.221.135) (Ping timeout: 268 seconds)
2021-04-29 18:52:12 +0200clynamen(~clynamen@net-93-66-1-11.cust.vodafonedsl.it) (Ping timeout: 268 seconds)
2021-04-29 18:54:23 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 18:54:41 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 18:55:12 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-29 18:56:20 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-bpamshvzisvwzxre)
2021-04-29 18:56:54 +0200Guest87676(~laudiacay@67.176.215.84)
2021-04-29 18:57:06 +0200 <Lycurgus> looks like it's reporting something from the ghc rts which needn't map directly to OS resource reported in top
2021-04-29 18:57:43 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-29 18:57:46 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-29 18:57:59 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 265 seconds)
2021-04-29 18:58:11 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-04-29 18:59:02 +0200Deide(~Deide@217.155.19.23)
2021-04-29 19:00:14 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-04-29 19:00:32 +0200idhugo__(~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2021-04-29 19:00:51 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-04-29 19:01:12 +0200 <Lycurgus> hs peoples like the super static
2021-04-29 19:01:27 +0200 <Lycurgus> memory comes in 16GB chunks igess
2021-04-29 19:01:38 +0200 <DigitalKiwi> it is well known that maerwald hates haskell but not why they're still here ;(
2021-04-29 19:02:31 +0200 <monochrom> I used to think that maerwald hated haskell. Then I learned that he made ghcup.
2021-04-29 19:02:43 +0200 <monochrom> Also ghcup used to be a shell script but is now in Haskell.
2021-04-29 19:03:09 +0200 <monochrom> In the end I concluded: maerwald : haskell :: me : humanity
2021-04-29 19:03:23 +0200 <DigitalKiwi> i say write everything in haskell with the assumption that new people will have to maintain it and you'll end up better off; amataur haskell is still better than professional php lol
2021-04-29 19:03:42 +0200 <monochrom> just a healthy dose of cynicism against certain ideals.
2021-04-29 19:03:57 +0200daniil(8967c375@d-137-103-195-117.fl.cpe.atlanticbb.net)
2021-04-29 19:04:33 +0200 <DigitalKiwi> https://twitter.com/ProgrammerDude/status/1081145066369044480
2021-04-29 19:04:44 +0200 <DigitalKiwi> "healthy"
2021-04-29 19:04:45 +0200 <monochrom> "haskell is very statically safe, right? RIGHT?" is very much like "humans are very good-willed, right? RIGHT?"
2021-04-29 19:05:07 +0200 <monochrom> even "humans are very intelligent"
2021-04-29 19:05:19 +0200neiluj(~jco@91-167-203-101.subs.proxad.net)
2021-04-29 19:05:20 +0200neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2021-04-29 19:05:20 +0200neiluj(~jco@unaffiliated/neiluj)
2021-04-29 19:05:39 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-29 19:06:16 +0200 <Lycurgus> humongs are like babies at the wheel of a ferrari
2021-04-29 19:06:31 +0200 <catern> does anyone have a good example of really old documents of people saying "functional programming is the future"? I want to replace the current citation I have in the third bullet in http://catern.com/iceberg.html which is mostly not about that
2021-04-29 19:06:45 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
2021-04-29 19:08:41 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 19:08:55 +0200 <monochrom> I don't know whether Landin's paper "the next 700 programming languages" counts, but it comes close.
2021-04-29 19:09:07 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 248 seconds)
2021-04-29 19:09:19 +0200 <monochrom> Otherwise, it's only Internet fanatics who say that.
2021-04-29 19:09:45 +0200 <monochrom> (So, IRC logs, blog posts, mailing lists, newsgroups.)
2021-04-29 19:09:49 +0200 <DigitalKiwi> monochrom: that fact that humans are not intelligent as they think they are is why i am repulsed by the idea of writing, say, python
2021-04-29 19:10:15 +0200stree(~stree@68.36.8.116)
2021-04-29 19:10:18 +0200 <liyang> catern: “Why Functional Programming Matters” Hughes 1990?
2021-04-29 19:10:27 +0200ddellaco_(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 19:10:37 +0200 <DigitalKiwi> why your https bad :9
2021-04-29 19:11:03 +0200 <catern> liyang: hm, not old enough
2021-04-29 19:11:23 +0200 <maerwald> DigitalKiwi: you should hear me talk about languages I actually hate :)
2021-04-29 19:11:41 +0200 <Lycurgus> look for industry reviews of ML
2021-04-29 19:11:42 +0200 <DigitalKiwi> maerwald: that i might enjoy more lol
2021-04-29 19:12:15 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 19:13:01 +0200Lycurgus(~niemand@98.4.118.65) (Quit: Exeunt)
2021-04-29 19:13:07 +0200 <maerwald> but the languages I really hate, I'm not proficient enough with to provide a proper rant
2021-04-29 19:13:11 +0200 <maerwald> (e.g. C++)
2021-04-29 19:13:24 +0200 <catern> ah I think https://dl.acm.org/doi/abs/10.1145/359576.359579 is perfect
2021-04-29 19:13:44 +0200is_null_(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 19:14:22 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 19:14:28 +0200 <catern> (and obviously, classic and important)
2021-04-29 19:14:50 +0200 <DigitalKiwi> python a week ago is harder to fix than adding features to haskell i wrote years ago ;(
2021-04-29 19:15:12 +0200is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
2021-04-29 19:15:40 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258)
2021-04-29 19:16:19 +0200 <maerwald> if you write a small django app, then it should be fine
2021-04-29 19:16:22 +0200 <liyang> catern: I 'member. Good choice. (I should read it again.)
2021-04-29 19:16:34 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-04-29 19:16:46 +0200 <maerwald> python is my go-to prototyping language
2021-04-29 19:17:00 +0200 <maerwald> because once you're done, you *really* want to throw away the result
2021-04-29 19:17:00 +0200rajivr(uid269651@gateway/web/irccloud.com/x-lxchinolehixafmd) (Quit: Connection closed for inactivity)
2021-04-29 19:17:11 +0200 <monochrom> :)
2021-04-29 19:17:23 +0200ph88(~ph88@2a02:8109:9e00:7e5c:d5ef:86b3:afc4:9258) (Client Quit)
2021-04-29 19:18:23 +0200 <DigitalKiwi> maerwald: lol that python that's supposed to get thrown away ends up being in prod for 30 years
2021-04-29 19:18:49 +0200 <Rembane> That's true for all prototype code regardless of language :/
2021-04-29 19:19:05 +0200letmein(~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1)
2021-04-29 19:19:07 +0200 <monochrom> People fall in love with their own creations.
2021-04-29 19:19:21 +0200 <monochrom> blindly fall in love
2021-04-29 19:19:50 +0200is_null_(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
2021-04-29 19:20:16 +0200 <maerwald> DigitalKiwi: in haskell, whatever you prototyped usually ends up uploaded on hackage and used by companies you don't know...
2021-04-29 19:20:32 +0200 <DigitalKiwi> ...and not in the good way. like in the perpetually broken and maintenance burden and always "we really need to rewrite this"
2021-04-29 19:20:38 +0200 <maerwald> I've never uploaded a python lib, ever
2021-04-29 19:20:51 +0200 <geekosaur> DigitalKiwi, thta again happens in any language
2021-04-29 19:20:58 +0200 <DigitalKiwi> yes
2021-04-29 19:21:18 +0200 <DigitalKiwi> so start with something better ;)
2021-04-29 19:21:51 +0200 <maerwald> I actually believe in prototyping
2021-04-29 19:22:25 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 19:22:51 +0200 <maerwald> and same-language rewrites
2021-04-29 19:23:06 +0200 <DigitalKiwi> so prototype in haskell
2021-04-29 19:23:32 +0200 <maerwald> if the requiremens changes go beyond a certain point, your architecture will inevitably fail
2021-04-29 19:23:32 +0200jgt(~jgt@88.225.221.135)
2021-04-29 19:23:36 +0200 <maerwald> DigitalKiwi: too slow
2021-04-29 19:24:00 +0200 <maerwald> because too many toys
2021-04-29 19:24:14 +0200 <DigitalKiwi> lol oh i know lol
2021-04-29 19:24:31 +0200Lycurgus(~niemand@98.4.118.65)
2021-04-29 19:24:59 +0200 <DigitalKiwi> but that's a problem of self control not of haskell ;p
2021-04-29 19:25:09 +0200 <maerwald> python is so boring that you just focus on the task
2021-04-29 19:25:17 +0200 <maerwald> no FRP, no effects systems, no nothing
2021-04-29 19:25:27 +0200Lycurgus(~niemand@98.4.118.65) (Client Quit)
2021-04-29 19:26:00 +0200 <maerwald> so haskell prototypes turn out to be library experiments, rather than prototypes
2021-04-29 19:26:26 +0200 <maerwald> and then you like the result a little too much
2021-04-29 19:26:27 +0200 <monochrom> I am unfamiliar with python libraries, so it is the opposite for me. When in Python, too many toys.
2021-04-29 19:26:46 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 19:26:58 +0200 <monochrom> When in Haskell I write boring code.
2021-04-29 19:27:41 +0200jgt(~jgt@88.225.221.135) (Ping timeout: 240 seconds)
2021-04-29 19:28:24 +0200 <DigitalKiwi> https://github.com/nix-community/nixops-digitalocean/actions
2021-04-29 19:29:10 +0200 <maerwald> what's that
2021-04-29 19:30:48 +0200 <DigitalKiwi> python being a pita
2021-04-29 19:31:07 +0200 <maerwald> or is it nix :p
2021-04-29 19:31:14 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-04-29 19:31:29 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 19:31:40 +0200 <DigitalKiwi> fair question but in this case it is python
2021-04-29 19:32:03 +0200 <maerwald> I believe nix is like perl... it'll have a steady decline over the next couple of years, but you'll never get rid of it completely
2021-04-29 19:33:37 +0200 <catern> not sure why you'd expect a decline, it's growing rapidly the last couple years
2021-04-29 19:33:44 +0200is_null(~jpic@pdpc/supporter/professional/is-null)
2021-04-29 19:33:49 +0200 <maerwald> catern: perl also had a peak
2021-04-29 19:33:57 +0200 <monochrom> oooohhhhhh
2021-04-29 19:33:58 +0200 <catern> yes, not sure why you expect that peak is right now
2021-04-29 19:34:16 +0200 <DigitalKiwi> i've written a lot more python than haskell in my life and it's horrible ;(
2021-04-29 19:34:19 +0200 <monochrom> The O'Reily Perl book has a camel. Perhaps we should expect two peaks.
2021-04-29 19:34:32 +0200 <maerwald> I hope not
2021-04-29 19:35:28 +0200 <maerwald> catern: because it's well established now, there's not much more growth potential in terms of tech and the quality standards (or the lack thereof) have been established
2021-04-29 19:36:13 +0200 <maerwald> I don't expect much change in the ecosystem
2021-04-29 19:36:39 +0200 <maerwald> And I believe the disadvantages outweigh, so that people will slowly migrate away
2021-04-29 19:36:39 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 19:36:56 +0200 <catern> sure, that was all true two years ago too, nevertheless usage has grown a lot in the past two years; why do you expect it's going to stop sometime in the next year and turn into a decline?
2021-04-29 19:37:40 +0200 <catern> "the inherent badness" isn't a sufficient reason for software projects to decline in usage, unfortunately :)
2021-04-29 19:38:33 +0200 <maerwald> catern: yes, because it has been 2+ years now that users can observe that there won't be any more change
2021-04-29 19:39:40 +0200 <DigitalKiwi> https://logs.nix.samueldr.com/nixos-chat/2021-03-14#1615715873-1615710746
2021-04-29 19:39:40 +0200frozenErebus(~frozenEre@37.231.244.249)
2021-04-29 19:39:41 +0200bobey88(~bobey@72-172-218-188.fidnet.com) (Ping timeout: 240 seconds)
2021-04-29 19:40:07 +0200 <monochrom> I expected that perl declined when php and python rose. Indeed my sysadmin, being the sysadmin type, sworn by perl back then but now swears by python.
2021-04-29 19:40:40 +0200 <monochrom> But also indeed I have no data other than that one and that my university used to teach perl but not any more.
2021-04-29 19:41:04 +0200 <maerwald> There I wonder: how would you teach nix?
2021-04-29 19:41:56 +0200bobey88(~bobey@72-172-218-188.fidnet.com)
2021-04-29 19:41:56 +0200malumore_(~malumore@151.62.116.76) (Ping timeout: 260 seconds)
2021-04-29 19:43:12 +0200natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-04-29 19:43:54 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2021-04-29 19:44:25 +0200ech(~user@gateway/tor-sasl/ech)
2021-04-29 19:46:23 +0200dcoutts__(~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection)
2021-04-29 19:46:46 +0200dcoutts__(~duncan@94.186.125.91.dyn.plus.net)
2021-04-29 19:48:01 +0200Pickchea(~private@unaffiliated/pickchea)
2021-04-29 19:50:48 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 19:51:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 19:52:23 +0200natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-04-29 19:53:01 +0200dcoutts__(~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 260 seconds)
2021-04-29 19:53:18 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 19:54:57 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 19:56:11 +0200shaanjeet1(~kunwar@20.51.250.64)
2021-04-29 19:58:24 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
2021-04-29 20:00:13 +0200xff0x(~xff0x@2001:1a81:524d:ea00:13a7:1ddd:e94:27b2) (Ping timeout: 276 seconds)
2021-04-29 20:00:40 +0200xff0x(~xff0x@2001:1a81:524d:ea00:6e93:d8:4f43:8c54)
2021-04-29 20:01:46 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 20:01:51 +0200vicfred(~vicfred@unaffiliated/vicfred)
2021-04-29 20:01:52 +0200nut(~gtk@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-04-29 20:03:36 +0200rond_(5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed)
2021-04-29 20:03:44 +0200 <DigitalKiwi> maerwald: nix shell nixpkgs#dateutils nixpkgs#jq -c bash -c 'ddiff "$(curl -s https://api.github.com/repos/input-output-hk/haskell.nix |jq -r '.created_at' )" "now" -f "%y"'
2021-04-29 20:03:46 +0200 <DigitalKiwi> 3
2021-04-29 20:04:24 +0200 <DigitalKiwi> a lot's happened with just that project in the last year
2021-04-29 20:04:47 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 20:05:45 +0200nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
2021-04-29 20:06:37 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
2021-04-29 20:06:42 +0200 <maerwald> yep, 3 years sounds like the amount of time you need to invest to do anything non-trivial with it :p
2021-04-29 20:07:57 +0200Qwerky(~qwerky@37.170.132.154)
2021-04-29 20:08:00 +0200 <DigitalKiwi> https://input-output-hk.github.io/haskell.nix/tutorials/getting-started/
2021-04-29 20:08:33 +0200 <DigitalKiwi> https://haskell4nix.readthedocs.io/
2021-04-29 20:08:46 +0200 <maerwald> ?
2021-04-29 20:09:19 +0200 <maerwald> You're suggesting one can make anything work with *just* reading the docs?
2021-04-29 20:09:48 +0200 <maerwald> Usually you end up going on an issue-hunt through IRC, reddit, blog posts and obscure github gists
2021-04-29 20:10:33 +0200 <DigitalKiwi> yeah that's just tech lol
2021-04-29 20:10:37 +0200 <maerwald> no
2021-04-29 20:10:54 +0200 <maerwald> that's poor ergonomics
2021-04-29 20:11:03 +0200DavidEichmann(~david@156.59.147.147.dyn.plus.net) (Remote host closed the connection)
2021-04-29 20:11:06 +0200 <DigitalKiwi> that so much has happened in the last few years is actually one of the problems, finding old stack overflows ;p
2021-04-29 20:11:59 +0200 <maerwald> I've used ansible mostly by just reading the docs. It's not a great piece of tech, but it has better ergonomics.
2021-04-29 20:12:26 +0200 <DigitalKiwi> and what i was suggesting was that at some point it was 'project nobody else could use' and 'project that is increasingly easy for a wide variety of other people to use'
2021-04-29 20:12:51 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed)
2021-04-29 20:12:52 +0200 <DigitalKiwi> how much nix docs have you read and related to what?
2021-04-29 20:13:01 +0200 <maerwald> I think by now the only interesting use case that remains of nix is cross-compiling static binaries.
2021-04-29 20:13:24 +0200 <maerwald> That can get a little hairy even with containerized alpine
2021-04-29 20:13:29 +0200 <DigitalKiwi> there's actually quite a bit of nix docs, but sometimes it's hard to know which of the several manuals to look in
2021-04-29 20:13:52 +0200 <maerwald> yes, poorly structured docs aren't very useful... hence why I asked: how would one teach nix?
2021-04-29 20:14:11 +0200 <maerwald> I think packaging systems are too messy in general, some more than others
2021-04-29 20:14:49 +0200 <DigitalKiwi> because nix the language, nix the program, nixos the distro, nixpkgs the expression set, are different things...
2021-04-29 20:15:37 +0200 <DigitalKiwi> and then there's all of the things that have been built with it
2021-04-29 20:16:42 +0200 <maerwald> yeah, too much complexity for the gains
2021-04-29 20:16:49 +0200ADG1089(~aditya@171.76.29.233)
2021-04-29 20:17:37 +0200 <DigitalKiwi> like nixops, hydra, node2nix, home-manager, ... https://github.com/nix-community
2021-04-29 20:17:49 +0200 <monochrom> I imagine that "ActiveX" would suffer the same problem. It really is a consortium of several not really related things that are grouped together only because some marketting people said to.
2021-04-29 20:18:12 +0200 <DigitalKiwi> that's like saying you don't want to use haskell because edwardk already wrote a library you need
2021-04-29 20:18:16 +0200 <monochrom> But this is where human nature is utterly broken.
2021-04-29 20:18:29 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-04-29 20:18:40 +0200 <maerwald> DigitalKiwi: abstractions in haskell are usually no that brittle
2021-04-29 20:18:44 +0200 <monochrom> Human nature is such that they learn a mess and then they think it's a bragging right.
2021-04-29 20:19:33 +0200 <Clint> that explains corporate culture
2021-04-29 20:19:42 +0200 <maerwald> DigitalKiwi: it starts with nix the language being poor (module system anyone?)
2021-04-29 20:20:03 +0200 <monochrom> People fall in love with both what they create and what they learn. These are specially cases of the sunk cost policy.
2021-04-29 20:20:09 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 20:20:13 +0200 <maerwald> reasoning about 2 lines of nix code is already a challenge
2021-04-29 20:20:18 +0200 <DigitalKiwi> i'm not even good at nix lol i just hit shit with hammers until it works
2021-04-29 20:20:39 +0200 <maerwald> exactly, you don't reason about nix code, you just play with it until it does what you want
2021-04-29 20:20:40 +0200 <monochrom> If you have wasted time, you can either admit it's a waste or rebrand it as an investment. Which one feels better?
2021-04-29 20:20:46 +0200 <Cale> Yeah, nix-the-language not having a module system goes a fair way to explaining all of my own frustrations with it. Of course, I wouldn't be frustrated if nix wasn't actually irreplaceable in many other ways.
2021-04-29 20:20:58 +0200 <DigitalKiwi> https://github.com/tazjin/nix-1p
2021-04-29 20:21:00 +0200 <monochrom> And yes people have made this a policy, I didn't have a typo.
2021-04-29 20:21:49 +0200z0(~zzz@2a03:b0c0:3:d0::3095:3001)
2021-04-29 20:21:53 +0200geekosaur(930099da@rrcs-147-0-153-218.central.biz.rr.com)
2021-04-29 20:21:58 +0200 <DigitalKiwi> https://nixos.org/guides/nix-pills/index.html
2021-04-29 20:22:06 +0200 <maerwald> but I don't see an alternative that will target the same audience
2021-04-29 20:22:10 +0200 <Cale> It's really a style thing that is influenced by that lack of module system though: people make gigantic attrsets of things that behave a bit like modules, then they tweak those collections of definitions recursively, repeatedly, in ways that affect how things inside them behave deeply.
2021-04-29 20:22:48 +0200 <maerwald> That's basically how OOP works
2021-04-29 20:22:50 +0200 <maerwald> :)
2021-04-29 20:23:11 +0200 <Cale> The end result is that even though the nix language is basically a pure functional programming language, you struggle to extract the benefit of that, because equational reasoning is only helpful if you can actually find the equations that define the things you're working with.
2021-04-29 20:23:30 +0200malumore_(~malumore@151.62.116.76)
2021-04-29 20:23:34 +0200xff0x(~xff0x@2001:1a81:524d:ea00:6e93:d8:4f43:8c54) (Remote host closed the connection)
2021-04-29 20:23:52 +0200xff0x(~xff0x@2001:1a81:524d:ea00:4bc5:b0ea:c9c9:30a8)
2021-04-29 20:23:56 +0200 <maerwald> right, so what remains useful is nix the package manager istelf (the approach, that was used by stack, cabal, ...)
2021-04-29 20:23:58 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net)
2021-04-29 20:24:23 +0200 <maerwald> you could just reboot it with a better language, but probably not gonna happen soon
2021-04-29 20:24:49 +0200 <Cale> and all the descriptions of how to build every package, and the fact that you can set up reasonably consistent environments between developer machines and deployed machines
2021-04-29 20:24:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-29 20:25:00 +0200 <Cale> all that stuff is great
2021-04-29 20:25:24 +0200zzz(~zzz@2a03:b0c0:3:d0::3095:3001) (Ping timeout: 258 seconds)
2021-04-29 20:25:25 +0200z0zzz
2021-04-29 20:25:53 +0200 <Cale> Nix the desktop OS, not as great imo -- it takes a lot of fiddling to get things into a usable configuration, so I don't even bother with it. Once you have a configuration you like, deploying it to more machines is easy though, which I have to admit is cool.
2021-04-29 20:26:23 +0200 <Cale> But it feels a lot like fucking around trying to get Slackware to work in 1999.
2021-04-29 20:26:27 +0200 <DigitalKiwi> https://logs.nix.samueldr.com/nixos/2021-04-28#1619579644-1619575351;
2021-04-29 20:26:58 +0200 <monochrom> slackware :)
2021-04-29 20:27:06 +0200 <maerwald> Yep, nixOS feels like gentoo, except with less QA
2021-04-29 20:27:27 +0200timCF(~i.tkachuk@m91-129-104-226.cust.tele2.ee)
2021-04-29 20:28:09 +0200 <maerwald> I think in the beginning, because there was too much community contribution to establish strict QA policies
2021-04-29 20:28:11 +0200 <Cale> But yeah, I love the ability to quickly set up a default.nix for my projects such that I can nix-shell and be in an environment with whatever dependencies (both Haskell and system) that I'd need to work on or build the project.
2021-04-29 20:28:25 +0200 <maerwald> And later, because ppl stopped using it as a desktop OS
2021-04-29 20:28:30 +0200 <Cale> That's cool, and worth learning nix for.
2021-04-29 20:28:38 +0200 <DigitalKiwi> well i am https://twitter.com/ArchKiwi
2021-04-29 20:31:31 +0200 <DigitalKiwi> https://logs.nix.samueldr.com/nixos-chat/2021-03-14#1615715873-1615710746
2021-04-29 20:32:09 +0200 <carbolymer> >using twatter
2021-04-29 20:32:45 +0200timCF(~i.tkachuk@m91-129-104-226.cust.tele2.ee) (Quit: leaving)
2021-04-29 20:33:09 +0200rj(~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds)
2021-04-29 20:34:27 +0200 <DigitalKiwi> https://logs.nix.samueldr.com/nixos/2021-04-25#1619383503-1619376013; maerwald i complain a lot too ;)
2021-04-29 20:39:30 +0200dmytrish(~mitra@2a02:8084:a82:d900:61fb:ae9:64fb:f0ec)
2021-04-29 20:39:58 +0200ram19890(~ram@49.205.84.15) (Quit: Konversation terminated!)
2021-04-29 20:40:03 +0200gnumonic(~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
2021-04-29 20:42:12 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-04-29 20:42:34 +0200ddellac__(~ddellacos@86.106.143.203)
2021-04-29 20:43:03 +0200nut(~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-04-29 20:44:58 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 20:45:26 +0200 <DigitalKiwi> monochrom: well the thing is that in spite of all of the sunk cost (and there is lots) there're still too many benefits that it does bring that nothing else solves as easily/at all (yet, if something better does come along, which i hope it does, because it does have problems, someday)
2021-04-29 20:45:43 +0200ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-04-29 20:46:34 +0200ukari(~ukari@unaffiliated/ukari)
2021-04-29 20:46:52 +0200ddellac__(~ddellacos@86.106.143.203) (Ping timeout: 240 seconds)
2021-04-29 20:47:07 +0200 <DigitalKiwi> i'm not married to nix..not even that good at it as in i haven't really tried to learn it that much... probably part of my prolem ;p
2021-04-29 20:47:38 +0200 <DigitalKiwi> https://patrickmn.com/software/the-haskell-pyramid/
2021-04-29 20:48:21 +0200 <monochrom> Is it possible to invent a new language, let's call it "mix", which improves upon the nix language by adding a proper module system, and you can still use the rest of the nix infrastructure?
2021-04-29 20:49:05 +0200 <DigitalKiwi> https://www.thejach.com/imgs/vim_learning.jpg
2021-04-29 20:49:06 +0200 <monochrom> Or generally it is only the nix language that needs fixing so let's replace just that.
2021-04-29 20:49:06 +0200 <maerwald> Hmm, lets see: a) reproducable builds? Never needed it (except for an embedded project, but there we used a proprietary alternative), b) reproducible environment? Cool, but don't remember when I actually needed that and couldn't do without, c) nixops? More trouble than all the alternatives
2021-04-29 20:49:36 +0200 <DigitalKiwi> monochrom: well there is guix
2021-04-29 20:50:44 +0200 <DigitalKiwi> maerwald: do you find ghcup useful?
2021-04-29 20:50:45 +0200 <maerwald> in the end, static binaries are better for user-facing things and when you're deploying... why would you need reproducible config? Do you not have full control over the environment anyway?
2021-04-29 20:51:23 +0200bor0(~boro@unaffiliated/boro/x-000000001)
2021-04-29 20:51:49 +0200 <maerwald> DigitalKiwi: ghcup is a low-effort tool, but has high ergonomics... so basically the opposite of nix
2021-04-29 20:52:14 +0200 <maerwald> so it's useful when your distro GHC is broken/lagging
2021-04-29 20:52:23 +0200 <maerwald> which happens to be the case for many distros
2021-04-29 20:54:33 +0200bor0(~boro@unaffiliated/boro/x-000000001) (Client Quit)
2021-04-29 20:54:56 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1)
2021-04-29 20:55:20 +0200 <slack1256> Is there a testing flag in cabal so I can test non exported functions from a module?
2021-04-29 20:55:44 +0200 <slack1256> ghci does have that via `:m *MyModule`
2021-04-29 20:55:55 +0200 <maerwald> slack1256: you can do cpp and write the test within the module and export the test
2021-04-29 20:56:02 +0200 <maerwald> `tar` did that previously
2021-04-29 20:56:20 +0200 <geekosaur> non exported functions requires interpretation, which ghci can do but cabal can't (nor ghc in general)
2021-04-29 20:56:45 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2021-04-29 20:56:47 +0200 <slack1256> maerwald: That actually sounds great.
2021-04-29 20:57:28 +0200 <DigitalKiwi> nix-shell -I nixpkgs=channel:nixos-unstable -p cabal-install zlib git -p "haskell.packages.ghc8104.ghcWithPackages(pkgs: with pkgs; [ monad-loops xlsx shh shh-extras HSH simple-cmd shelly megaparsec aeson titlecase ])"
2021-04-29 20:57:32 +0200 <geekosaur> the other way to do it is an Internals module which is exported
2021-04-29 20:57:36 +0200 <maerwald> slack1256: https://github.com/haskell/tar/blob/557014f2a441e3b9372e5d30b437fe50cdf190bc/Codec/Archive/Tar/Ind…
2021-04-29 20:58:03 +0200 <maerwald> not sure if that's great... I'd personally just export everything and use the `Foo.Internal.Bar` notation for the module
2021-04-29 20:58:19 +0200 <maerwald> (and then exclude changes to those modules from your PVP process)
2021-04-29 20:58:34 +0200 <maerwald> like geekosaur said
2021-04-29 20:58:46 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/2021-04-25-174331_2879x1694_scrot.png
2021-04-29 20:59:38 +0200 <maerwald> maybe you can do without the CPP, but then you always build the tests, which is a little odd maybe
2021-04-29 20:59:48 +0200 <maerwald> or not, sounds radical
2021-04-29 21:00:38 +0200 <maerwald> (you lose caching with the CPP when you switch to building the tests)
2021-04-29 21:00:56 +0200 <slack1256> Exactly.
2021-04-29 21:01:18 +0200 <monochrom> On the bright side, at equilibrium both are cached. >:)
2021-04-29 21:01:25 +0200cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-04-29 21:01:57 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/binance
2021-04-29 21:02:00 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 21:02:26 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2021-04-29 21:02:43 +0200 <DigitalKiwi> https://mostlyabsurd.com/files/clone-edward
2021-04-29 21:03:41 +0200kami_(~kami@228.243.254.87.static.monaco.mc) (Remote host closed the connection)
2021-04-29 21:03:43 +0200 <maerwald> hmm, PVP could have included a rule for modules that contain `Internal` in their name to be excluded from the API check
2021-04-29 21:03:45 +0200 <monochrom> great name "clone-edward".
2021-04-29 21:04:03 +0200 <DigitalKiwi> https://gist.github.com/Kiwi/ffc08bffb15798dc4b1ec2a1c47c6191#file-program-cabal-hs
2021-04-29 21:04:06 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-04-29 21:05:04 +0200 <maerwald> but the PVP author is awol
2021-04-29 21:05:43 +0200 <monochrom> I think people already interpret PVP with that in mind.
2021-04-29 21:06:38 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-04-29 21:06:45 +0200Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2021-04-29 21:06:57 +0200 <maerwald> I guess we can pester haskell foundation about PVP updates
2021-04-29 21:07:02 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-29 21:07:31 +0200 <monochrom> I am actually doubtful about the value of making it an explicit statement.
2021-04-29 21:07:32 +0200Tario(~Tario@201.192.165.173)
2021-04-29 21:07:43 +0200 <maerwald> well, tools can use that information then
2021-04-29 21:07:48 +0200 <maerwald> otherwise it's kinda illegal!
2021-04-29 21:08:15 +0200 <maerwald> but not sure we even have a mature PVP checker? I remeber some
2021-04-29 21:08:32 +0200 <maerwald> @hackage policeman
2021-04-29 21:08:32 +0200 <lambdabot> https://hackage.haskell.org/package/policeman
2021-04-29 21:08:32 +0200whatisRT-(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de)
2021-04-29 21:08:52 +0200whatisRT(~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-04-29 21:10:37 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-29 21:13:40 +0200elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-04-29 21:15:02 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 21:15:34 +0200daniil(8967c375@d-137-103-195-117.fl.cpe.atlanticbb.net) (Quit: Connection closed)
2021-04-29 21:17:17 +0200joncol(~jco@c83-248-173-38.bredband.comhem.se) (Remote host closed the connection)
2021-04-29 21:17:58 +0200hypercube(~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com)
2021-04-29 21:18:12 +0200stree(~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-04-29 21:18:32 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com) (Ping timeout: 246 seconds)
2021-04-29 21:19:11 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds)
2021-04-29 21:24:29 +0200jgt(~jgt@88.225.221.135)
2021-04-29 21:24:55 +0200jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2021-04-29 21:26:27 +0200philderbeast(~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca)
2021-04-29 21:29:41 +0200jgt(~jgt@88.225.221.135) (Ping timeout: 240 seconds)
2021-04-29 21:30:26 +0200juuandyy(~juuandyy@90.106.228.121) (Quit: Konversation terminated!)
2021-04-29 21:30:52 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 240 seconds)
2021-04-29 21:30:54 +0200 <juri_> ok, dumb question. if i'm writing a function definition and using typeclasses to restrict the type of two items, how do i specify that two of the items have the same restrictions, even though they are not the same type?
2021-04-29 21:31:11 +0200argento(~argent0@168.227.97.34)
2021-04-29 21:31:30 +0200 <Rembane> juri_: Give them two different type variables.
2021-04-29 21:31:30 +0200stree(~stree@68.36.8.116)
2021-04-29 21:31:47 +0200 <juri_> right now i have averageNodes :: (Arcable a, Pointable a, Show a, Arcable b, Pointable b, Show b) => a -> b -> INode
2021-04-29 21:32:04 +0200 <juri_> how would i re-write that shorter?
2021-04-29 21:37:41 +0200loller_(uid358106@gateway/web/irccloud.com/x-yykgptajeudcaatj) (Quit: Connection closed for inactivity)
2021-04-29 21:38:32 +0200minoru_shiraeesh(~shiraeesh@46.34.207.120) (Ping timeout: 240 seconds)
2021-04-29 21:38:36 +0200Pickchea(~private@unaffiliated/pickchea) (Quit: Leaving)
2021-04-29 21:38:46 +0200minoru_shiraeesh(~shiraeesh@5.101.59.47)
2021-04-29 21:38:56 +0200 <davean> juri_: if its a thing you do often, you'd create an alias that covered the 3 pieces
2021-04-29 21:38:57 +0200 <monochrom> Define your own "class (Arcable a, Pointable a, Show a) => ProblemSpecific a". It needs no methods.
2021-04-29 21:39:03 +0200 <davean> Doesn't need to be a class
2021-04-29 21:39:48 +0200 <monochrom> The non-class solution breaks a lot of people's minds, so I won't tell it unless you really want to see it.
2021-04-29 21:40:27 +0200 <davean> really? How does it break people's minds?
2021-04-29 21:40:27 +0200 <DigitalKiwi> ...me would like to see it
2021-04-29 21:40:36 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu)
2021-04-29 21:40:37 +0200 <Rembane> monochrom, davean: I want to see it! :)
2021-04-29 21:40:54 +0200 <monochrom> Turn on ContraintKinds. Then "type ProblemSpecific a = (Arcable a, Pointable a, Show a)".
2021-04-29 21:41:16 +0200desophos(~desophos@2601:249:1680:a570:2805:692e:a4c7:e255)
2021-04-29 21:41:36 +0200 <monochrom> Major motivating example in the GHC user's guide in the ConstraintKinds section.
2021-04-29 21:41:42 +0200 <davean> it seems the much more simple and straight forward approach to me, its what I sue when I've got a meta set of constraints I use a lot
2021-04-29 21:42:03 +0200 <Rembane> Is ConstraintKinds one of the nice extensions?
2021-04-29 21:42:17 +0200 <monochrom> I think it's harmless.
2021-04-29 21:42:54 +0200 <monochrom> There are a lot of simple one-liners that break a lot of people's minds.
2021-04-29 21:43:11 +0200Aquazi(uid312403@gateway/web/irccloud.com/x-bpamshvzisvwzxre) (Quit: Connection closed for inactivity)
2021-04-29 21:43:18 +0200 <Rembane> That's good stuff
2021-04-29 21:43:25 +0200 <monochrom> I optimize for "I understand the solution" not "the solution is slick".
2021-04-29 21:43:26 +0200 <davean> I'm really not sure how this could break anyone's mind
2021-04-29 21:43:41 +0200 <monochrom> "Arcable a" is not a type?
2021-04-29 21:43:55 +0200zebrag(~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr)
2021-04-29 21:44:06 +0200 <monochrom> And in Haskell2010, not even a kind?
2021-04-29 21:44:42 +0200thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-04-29 21:44:46 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
2021-04-29 21:45:15 +0200Lycurgus(~niemand@98.4.118.65)
2021-04-29 21:45:16 +0200 <monochrom> And the line {-# language ConstraintKinds #-} begets a lot of questions and digressions on what it means?
2021-04-29 21:45:32 +0200 <monochrom> And I even forgot whether TypeInType is also required.
2021-04-29 21:46:14 +0200 <davean> I mean if we're up to type classes we've convered constraints
2021-04-29 21:46:30 +0200 <monochrom> I can understand that if the optimizing goal is "just cargo-cult it, don't try to understand, don't even ask why it's legal in the first place?" then sure.
2021-04-29 21:46:57 +0200 <davean> Like the stuff for doing manipulations of constraints in the type system is a little byzantine
2021-04-29 21:47:10 +0200 <davean> but the concept is ... well, its just weird when it isn't allowed.
2021-04-29 21:47:39 +0200 <davean> Its already part of the type signature
2021-04-29 21:47:46 +0200 <davean> we're just removing selerations between the levels
2021-04-29 21:47:46 +0200geekosauradmits he'dprobably try that first, get an error that ConstraintKinds is needed, then wonder if he's letting himself in for type voodoo
2021-04-29 21:49:16 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-29 21:49:23 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 21:50:43 +0200Lycurgusas a rational fundamentalist suspects higher order typed are bad juju period
2021-04-29 21:51:24 +0200Lycurgus*types
2021-04-29 21:51:41 +0200wonko7(~wonko7@62.115.229.50) (Ping timeout: 240 seconds)
2021-04-29 21:53:42 +0200sm[m](simonmicma@gateway/shell/matrix.org/x-mfesfokfwpleawzk) (Ping timeout: 245 seconds)
2021-04-29 21:54:06 +0200stevekrouse1[m](stevekrous@gateway/shell/matrix.org/x-sskcyvujdvynhasa) (Ping timeout: 245 seconds)
2021-04-29 21:54:07 +0200vaibhavsagar(vaibhavsag@gateway/shell/matrix.org/x-jalplsodfrwfewzt) (Ping timeout: 245 seconds)
2021-04-29 21:54:07 +0200johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-eqxnnnvtcaueqhad) (Ping timeout: 245 seconds)
2021-04-29 21:54:07 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 268 seconds)
2021-04-29 21:54:47 +0200stevekrouse1[m](stevekrous@gateway/shell/matrix.org/x-yavjkxinulfgxwlk)
2021-04-29 21:54:53 +0200sm[m](simonmicma@gateway/shell/matrix.org/x-yogdjvkzyankbmtu)
2021-04-29 21:55:18 +0200johnnyboy[m](gifumatrix@gateway/shell/matrix.org/x-rksdwxlrklojjcvb)
2021-04-29 21:55:46 +0200lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-jmtycosfbgskcbjd) (Ping timeout: 245 seconds)
2021-04-29 21:55:46 +0200fgaz(fgazmatrix@gateway/shell/matrix.org/x-mgevtppufszitkam) (Ping timeout: 245 seconds)
2021-04-29 21:56:29 +0200zebrag(~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-04-29 21:56:32 +0200 <juri_> monochrom: no?
2021-04-29 21:56:34 +0200PtxDK(~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Read error: Connection reset by peer)
2021-04-29 21:56:36 +0200vaibhavsagar(vaibhavsag@gateway/shell/matrix.org/x-yqaazxmokhytwobc)
2021-04-29 21:57:01 +0200lnxw37d4(lnxw37d4ma@gateway/shell/matrix.org/x-fvxopfvkrxwyhetn)
2021-04-29 21:57:20 +0200fgaz(fgazmatrix@gateway/shell/matrix.org/x-jmtbhypkvdgrojab)
2021-04-29 21:57:31 +0200 <juri_> this is my first forray into typeclasses, from necessity. handling types with Eithers in them leaves a lot of calls to error.
2021-04-29 21:57:40 +0200PtxDK(~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
2021-04-29 21:58:40 +0200 <juri_> I'm working with graphs in 2d space. Arcable means a node has the potential to have an output line, and Pointable means the node has enough lines of enough different angles to resolve the note to a position on the 2d plane.
2021-04-29 21:58:45 +0200 <geekosaur> these days you can't turn TypeInType off
2021-04-29 21:58:54 +0200 <juri_> Also, i'm a hit at parties.
2021-04-29 22:01:22 +0200 <davean> juri_: uh, I question if these should be type classes
2021-04-29 22:01:48 +0200 <int-e> geekosaur: what could go wrong?
2021-04-29 22:02:12 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com) (Quit: The Lounge - https://thelounge.chat)
2021-04-29 22:02:31 +0200desophos(~desophos@2601:249:1680:a570:2805:692e:a4c7:e255) (Quit: Mutter: www.mutterirc.com)
2021-04-29 22:02:56 +0200 <juri_> davean: i kindof do to, but they definately needed to stop being three types of node, hiding in one type, with lots of Either, and lots of function implementations that effectively 'type checked' with error during runtime.
2021-04-29 22:02:57 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net)
2021-04-29 22:03:36 +0200 <geekosaur> huh, guess it still works. thought they'd removed the old machinery one version after making TypeInType default
2021-04-29 22:03:55 +0200 <DigitalKiwi> maerwald: anyway, one of the easiest and most useful things is that nix can be used as a sort of ghcupp but for all of the things ;p
2021-04-29 22:03:56 +0200 <monochrom> Are you saying that if X is an Arcable instance then "Either E X" is also an Arcable instance?
2021-04-29 22:03:57 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-04-29 22:04:11 +0200 <juri_> no?
2021-04-29 22:04:37 +0200usr25(~usr25@unaffiliated/usr25)
2021-04-29 22:04:50 +0200 <monochrom> What have I done.
2021-04-29 22:04:59 +0200Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-04-29 22:05:00 +0200 <juri_> I'm saying that Node had all kinds of logic for Either (LineSeg, LineSeg) [PLine2] to be a member.
2021-04-29 22:05:02 +0200 <monochrom> I started the trend of answering questions with question marks?
2021-04-29 22:05:11 +0200petersen(~petersen@redhat/juhp) (Ping timeout: 240 seconds)
2021-04-29 22:05:39 +0200 <juri_> because by the rules of the system, a node either had two line segments, or N lines intersecting with it.
2021-04-29 22:05:52 +0200Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2021-04-29 22:05:59 +0200 <juri_> now, i have two types for the two rules. everything is MUCH cleaner.
2021-04-29 22:06:05 +0200 <DigitalKiwi> in fact... https://gist.githubusercontent.com/Kiwi/df35e1fde120346d47138e13565794bb/raw/224ea9c7e79ef3414a778…
2021-04-29 22:06:24 +0200Lord_of_Life_Lord_of_Life
2021-04-29 22:06:42 +0200 <juri_> nodes with (LineSeg, LineSeg) always have an output Arc, while the other nodes have a Maybe Arc...
2021-04-29 22:06:58 +0200 <juri_> they're similar, but very not, and it jammed up all of the things.
2021-04-29 22:07:33 +0200petersen(~petersen@redhat/juhp)
2021-04-29 22:07:38 +0200 <DigitalKiwi> https://github.com/a-schaefers/themelios#tips--tricks
2021-04-29 22:07:41 +0200 <juri_> for instance, forcing the LineSeg carrying types to have Maybe arc, even though it was always Just.
2021-04-29 22:07:49 +0200carldd(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-04-29 22:07:57 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-04-29 22:08:19 +0200finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-04-29 22:08:23 +0200 <DigitalKiwi> nix-build '<nixpkgs/nixos>' -A config.system.build.isoImage -I nixos-config=iso.nix # builds a usb image
2021-04-29 22:09:25 +0200 <DigitalKiwi> [root@nixos:~] themelios ./hosts/vm-example/configuration.sh https://github.com/a-schaefers/themelios.git master # completely installs and configures
2021-04-29 22:14:47 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:cd02:6757:782f:7e4d) (Ping timeout: 260 seconds)
2021-04-29 22:17:34 +0200bobby(~bobby@110.54.200.106)
2021-04-29 22:19:24 +0200bobby(~bobby@110.54.200.106) (Client Quit)
2021-04-29 22:20:46 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 22:21:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-04-29 22:23:43 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com) (Ping timeout: 268 seconds)
2021-04-29 22:25:07 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-04-29 22:25:18 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-04-29 22:26:21 +0200ChessGuevara(~chessguev@103.27.2.106)
2021-04-29 22:26:21 +0200vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-04-29 22:26:58 +0200hiroaki(~hiroaki@2a02:8108:8c40:2bb8:6972:4f4b:800a:5969)
2021-04-29 22:29:55 +0200Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2021-04-29 22:31:00 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 22:37:16 +0200lordcirth_(~lordcirth@2607:f2c0:95b3:4400:486b:2c7b:87d6:2af0)
2021-04-29 22:37:41 +0200jamestmartin(james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2021-04-29 22:38:11 +0200jamestmartin(james@jtmar.me)
2021-04-29 22:38:19 +0200jamestmartin(james@jtmar.me) (Remote host closed the connection)
2021-04-29 22:39:02 +0200 <lordcirth_> I'm using Brick, and trying to get widgets to be fixed-width: "B.padRight (B.Pad (10 - B.textWidth hpBar)) hpBar" but the types are wrong; "No instance for (B.TextWidth (B.Widget Name))". What's the correct way to do this?
2021-04-29 22:39:11 +0200alx741(~alx741@181.196.68.118) (Ping timeout: 240 seconds)
2021-04-29 22:40:00 +0200jamestmartin(~james@jtmar.me)
2021-04-29 22:40:21 +0200malumore_(~malumore@151.62.116.76) (Ping timeout: 268 seconds)
2021-04-29 22:40:26 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-04-29 22:41:16 +0200acidjnk_new2(~acidjnk@p200300d0c72b95722c5bb32012e463b2.dip0.t-ipconnect.de)
2021-04-29 22:41:30 +0200 <sm[m]> lordcirth_: if you don't already understand the types clearly, a useful technique is to add lots of type annotations - replace X with (X :: SomeType)
2021-04-29 22:43:59 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-04-29 22:44:02 +0200__monty__(~toonn@unaffiliated/toonn)
2021-04-29 22:44:12 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net)
2021-04-29 22:45:07 +0200ADG1089(~aditya@171.76.29.233) (Remote host closed the connection)
2021-04-29 22:45:32 +0200 <lordcirth_> Yeah. So it seems that I need to get the width back where I construct the Widget.
2021-04-29 22:49:47 +0200danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds)
2021-04-29 22:50:35 +0200Guest31772(~mattl@185.204.1.185) (Remote host closed the connection)
2021-04-29 22:51:54 +0200juliagoda(~juliagoda@2a02:a31a:e13a:eb00:758f:d455:b475:46e4)
2021-04-29 22:52:27 +0200alx741(~alx741@181.196.68.89)
2021-04-29 22:52:46 +0200ChessGuevara(~chessguev@103.27.2.106) (Quit: Leaving)
2021-04-29 22:55:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-04-29 22:55:45 +0200mmfood_1(~mmfood@45.91.21.32)
2021-04-29 22:57:46 +0200ddellac__(~ddellacos@86.106.143.21)
2021-04-29 22:58:31 +0200mmfood(~mmfood@185.176.246.118) (Ping timeout: 260 seconds)
2021-04-29 23:00:53 +0200ddella___(~ddellacos@86.106.143.34)
2021-04-29 23:01:05 +0200Lycurgus(~niemand@98.4.118.65) (Quit: Exeunt)
2021-04-29 23:01:27 +0200 <int-e> lordcirth_: Well the widgets don't have any static size (not even the fixed width/height ones); it's all determined during rendering. *Maybe* limiting the width using https://hackage.haskell.org/package/brick-0.62/docs/Brick-Widgets-Core.html#v:hLimit and then puting a maximal padding inside will do the trick. If not, this looks like really unpleasant twiddling with internals.
2021-04-29 23:02:19 +0200rond_(5940206b@89-64-32-107.dynamic.chello.pl)
2021-04-29 23:02:33 +0200ddellac__(~ddellacos@86.106.143.21) (Ping timeout: 268 seconds)
2021-04-29 23:03:24 +0200 <int-e> (I found https://hackage.haskell.org/package/brick-0.62/docs/src/Brick.Widgets.Core.html#renderBox and decided to not try to understand things further)
2021-04-29 23:03:56 +0200 <int-e> (AIUI that function is responsible for vBox and hBox)
2021-04-29 23:04:05 +0200 <lordcirth_> Maybe I need to use a table, with each widget centered in a cell?
2021-04-29 23:04:41 +0200 <int-e> lordcirth_: Note that I've never used the library. Maybe somebody who has can help better.
2021-04-29 23:08:21 +0200cads(~cads@ip-64-72-99-232.lasvegas.net)
2021-04-29 23:08:21 +0200EricYuzo(~EricYuzo@195.140.213.38)
2021-04-29 23:09:12 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-04-29 23:11:13 +0200 <sm[m]> does brick support tables now ?
2021-04-29 23:11:45 +0200shailangsa(~shailangs@host217-35-224-169.range217-35.btcentralplus.com)
2021-04-29 23:12:12 +0200Tracis(aa4f23ab@170-79-35-171.wantel.net.br)
2021-04-29 23:12:17 +0200 <int-e> sm[m]: I saw that there is a Brick.Widgets.Table
2021-04-29 23:12:33 +0200 <sm[m]> great!
2021-04-29 23:12:54 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-04-29 23:13:12 +0200frozenErebus(~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
2021-04-29 23:13:42 +0200 <Tracis> First time here. Hi everyone
2021-04-29 23:13:58 +0200 <argento> Tracis: Hi, welcome
2021-04-29 23:16:20 +0200 <sm[m]> hi Tracis
2021-04-29 23:16:27 +0200untakenstupidnicINVALID_NICK
2021-04-29 23:16:46 +0200hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
2021-04-29 23:17:41 +0200INVALID_NICKUNTAKENSTUPIDNIC
2021-04-29 23:18:49 +0200mmfood_2(~mmfood@45.91.21.32)
2021-04-29 23:20:42 +0200mmfood_1(~mmfood@45.91.21.32) (Ping timeout: 260 seconds)
2021-04-29 23:20:51 +0200 <Tracis> maybe it would be rude to ask right after i enter the chat, but. Do you guys have any recommended tutorial to learn haskell? (sry if i say something wrong, i'm practicing)
2021-04-29 23:21:15 +0200 <int-e> sm[m]: The table rendering code contains `let paddedCells = ...`, maybe it's insane...
2021-04-29 23:21:50 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-04-29 23:21:53 +0200UNTAKENSTUPIDNIC____
2021-04-29 23:22:10 +0200 <sm[m]> Tracis: seems quite a reasonable, and frequent, question. Any particular style you like ? What's your background/experience level ?
2021-04-29 23:23:20 +0200 <sm[m]> I'm fond of
2021-04-29 23:23:21 +0200 <sm[m]> @where HTAC
2021-04-29 23:23:21 +0200 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
2021-04-29 23:25:03 +0200 <Tracis> sm[m]: html, css, js, react/react native, nodejs, c, c++, python3. But all in beginner level.
2021-04-29 23:25:29 +0200jamm_(~jamm@unaffiliated/jamm)
2021-04-29 23:25:31 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
2021-04-29 23:26:00 +0200mmfood_2(~mmfood@45.91.21.32) (Ping timeout: 268 seconds)
2021-04-29 23:26:16 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 23:26:22 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
2021-04-29 23:26:27 +0200 <argento> http://learnyouahaskell.com/ <- Tracis
2021-04-29 23:26:37 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)
2021-04-29 23:26:40 +0200jgt(~jgt@88.225.221.135)
2021-04-29 23:27:10 +0200Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2021-04-29 23:27:27 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f) (Remote host closed the connection)
2021-04-29 23:27:35 +0200 <Tracis> Ty, lambdabot and argento
2021-04-29 23:28:01 +0200 <Tracis> i'll take a look
2021-04-29 23:29:03 +0200 <int-e> @bot
2021-04-29 23:29:04 +0200 <lambdabot> :)
2021-04-29 23:29:48 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-04-29 23:29:53 +0200jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds)
2021-04-29 23:30:04 +0200 <DigitalKiwi> @where pih
2021-04-29 23:30:04 +0200 <lambdabot> "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html>
2021-04-29 23:30:49 +0200 <sm[m]> Tracis: also https://code.world and then https://code.world/haskell
2021-04-29 23:31:25 +0200heatsink(~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-04-29 23:31:31 +0200 <argento> @karma+ lambdabot
2021-04-29 23:31:32 +0200 <lambdabot> lambdabot's karma raised to 38.
2021-04-29 23:31:32 +0200jgt(~jgt@88.225.221.135) (Ping timeout: 268 seconds)
2021-04-29 23:31:39 +0200argentoit's only fair
2021-04-29 23:32:41 +0200 <DigitalKiwi> idk that we should be letting the bot give itself karma
2021-04-29 23:33:58 +0200 <DigitalKiwi> first you tell it to give itself karma and then the next thing you know it's doing it without being told!
2021-04-29 23:33:59 +0200Guest87676(~laudiacay@67.176.215.84)
2021-04-29 23:34:53 +0200michalz(~user@185.246.204.103) (Remote host closed the connection)
2021-04-29 23:35:34 +0200Tracis54(aa4f23ab@170-79-35-171.wantel.net.br)
2021-04-29 23:36:31 +0200Tracis(aa4f23ab@170-79-35-171.wantel.net.br) (Quit: Connection closed)
2021-04-29 23:37:17 +0200Tracis(aa4f23ab@170-79-35-171.wantel.net.br)
2021-04-29 23:37:41 +0200jpe90(~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-04-29 23:38:12 +0200Guest87676(~laudiacay@67.176.215.84) (Ping timeout: 240 seconds)
2021-04-29 23:39:09 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds)
2021-04-29 23:39:34 +0200stree(~stree@68.36.8.116) (Ping timeout: 252 seconds)
2021-04-29 23:39:43 +0200Tracis54(aa4f23ab@170-79-35-171.wantel.net.br) (Ping timeout: 240 seconds)
2021-04-29 23:41:37 +0200mikoto-chan(~mikoto-ch@gateway/tor-sasl/mikoto-chan)
2021-04-29 23:42:16 +0200Narinas(~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 260 seconds)
2021-04-29 23:43:06 +0200ddellac__(ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-04-29 23:46:21 +0200ddella___(~ddellacos@86.106.143.34) (Ping timeout: 260 seconds)
2021-04-29 23:46:23 +0200Tracis(aa4f23ab@170-79-35-171.wantel.net.br) (Ping timeout: 240 seconds)
2021-04-29 23:46:43 +0200cr3(~cr3@192.222.143.195) (Ping timeout: 252 seconds)
2021-04-29 23:47:23 +0200rj(~x@gateway/tor-sasl/rj) (Remote host closed the connection)
2021-04-29 23:47:42 +0200____untakenstupidnic
2021-04-29 23:47:50 +0200rj(~x@gateway/tor-sasl/rj)
2021-04-29 23:50:46 +0200Guest23245(~textual@zrcout.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-04-29 23:51:33 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:df5:3e62:d261:3647) (Ping timeout: 250 seconds)
2021-04-29 23:51:45 +0200ddellacosta(~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
2021-04-29 23:52:22 +0200 <sclv> @botsnack
2021-04-29 23:52:23 +0200 <lambdabot> :)
2021-04-29 23:52:25 +0200stree(~stree@68.36.8.116)
2021-04-29 23:54:29 +0200untakenstupidnic(~user@5.114.130.12) (Read error: Connection reset by peer)
2021-04-29 23:55:48 +0200danso(~dan@23-233-111-52.cpe.pppoe.ca)
2021-04-29 23:58:11 +0200shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:599c:a489:a3a:24f3)
2021-04-29 23:59:59 +0200nicholasbulka(~nicholasb@2601:900:4301:da0:f09e:8831:6f30:999f)