Home freenode/#haskell: Logs Calendar

Logs on 2021-02-09 (freenode/#haskell)

00:00:16 vicfred joins (~vicfred@unaffiliated/vicfred)
00:00:26 <ski> @ghc
00:00:26 <lambdabot> This is very gruesome indeed
00:01:06 <Axman6> is that just comments from the GHC source?
00:01:11 <koz_> For http://hackage.haskell.org/package/ring-buffers-0.2/docs/RingBuffers-Lifted.html, if I append to a full RingBuffer, what happens?
00:01:18 <koz_> Does it block, ignore it, some other thing?
00:01:30 <ski> Axman6 : error messages, at least some of them
00:01:41 <ski> (or parts of error messages, possibly)
00:01:48 <ski> @ghc
00:01:48 <lambdabot> deadlock: main thread blocked in a strange way
00:01:54 dumptruckman joins (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd)
00:02:15 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
00:02:40 <Axman6> koz_: looks like it overwrites to me
00:02:46 nineonine joins (~nineonine@50.216.62.2)
00:03:12 <Axman6> append calls write then advance
00:03:14 tunzal joins (uid486487@gateway/web/irccloud.com/x-jhuojzcxmrmtbbbo)
00:03:22 <tunzal> okay boys and girls please sit down and listen! my name is steve balag and im your math teacher for today. okay, who can tell me what 2+3 is? right, its 5, fucking 5, oh god i hate this fucking number i could fuck it all day. its like im counting to five until i get my hate orgasm because i hate the fucking fucker number 5 so much. i could smash your face with the number 5 all day. i wish i would be able to masturbate
00:03:22 <tunzal> 5 times at once...but thats a different topic. ok its time for pause, kids, i see you back in 15 minutes and then we will talk about the number 5 and what you like and not.
00:03:29 ChanServ sets mode +q *!*@gateway/web/irccloud.com/x-jhuojzcxmrmtbbbo
00:04:08 <Squarism> quite often (always?) the type inference machinery locks a function, wo a signature, to types of first invocation. Can you make it more smart - ie detect free parameters?
00:04:14 <koz_> Hmm, perhaps that's not what I'm after then.
00:04:49 <koz_> I basically need a fixed-size deque which blocks if full or empty on appropriate operations.
00:05:16 bennofs__ joins (~quassel@dslb-188-106-247-103.188.106.pools.vodafone-ip.de)
00:05:16 oisdk joins (~oisdk@2001:bb6:3329:d100:c8bf:7533:dd0b:697d)
00:05:47 × RusAlex quits (~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer)
00:06:06 <koz_> Do I want a bounded Chan of some kind then?
00:06:28 <koz_> Also, can we kill the spammer?
00:06:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:06:39 <Axman6> pretty sure that exists, and would work (though beibng backed by an array is kind of nice)
00:06:39 <koz_> I'm getting endless PMs.
00:06:47 <koz_> Axman6: Performance is secondary.
00:06:53 <Axman6> never!
00:07:04 <koz_> Axman6: Any good options for me that you know of?
00:07:11 RusAlex joins (~Chel@unaffiliated/rusalex)
00:07:18 <sm[m]> @ops
00:07:18 <lambdabot> Maybe you meant: pl oeis docs
00:07:44 <sm[m]> @where ops ?
00:07:44 <lambdabot> byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski
00:07:48 × deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
00:08:02 <Axman6> The number of those names which are no longer present in thic hannel makes me sad
00:08:10 <jess> whats going on
00:08:12 <Axman6> this channel*\
00:08:30 × tunzal quits (uid486487@gateway/web/irccloud.com/x-jhuojzcxmrmtbbbo) (K-Lined)
00:08:34 ChanServ sets mode +o dibblego
00:08:42 ChanServ sets mode -o dibblego
00:09:00 edwardk looks up
00:09:03 <edwardk> realizes they left
00:09:07 edwardk looks down
00:09:14 × bennofs_ quits (~quassel@dslb-094-222-059-121.094.222.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
00:09:19 <edwardk> we should do a pass to add more ops
00:09:21 <Axman6> Thank you for your service
00:09:24 <koz_> Yep!
00:09:32 <koz_> Axman6: I think TBQueue works for what I need.
00:09:34 <koz_> Thanks anyway.
00:09:50 <Axman6> sounds like the right name
00:09:53 colpea joins (uid486488@gateway/web/irccloud.com/x-scyvzqsocksscpsy)
00:09:56 <colpea> okay boys and girls please sit down and listen! my name is steve balag and im your math teacher for today. okay, who can tell me what 2+3 is? right, its 5, fucking 5, oh god i hate this fucking number i could fuck it all day. its like im counting to five until i get my hate orgasm because i hate the fucking fucker number 5 so much. i could smash your face with the number 5 all day. i wish i would be able to masturbate
00:09:56 <colpea> 5 times at once...but thats a different topic. ok its time for pause, kids, i see you back in 15 minutes and then we will talk about the number 5 and what you like and not.
00:09:56 <colpea> okay boys and girls please sit down and listen! my name is steve balag and im your math teacher for today. okay, who can tell me what 2+3 is? right, its 5, fucking 5, oh god i hate this fucking number i could fuck it all day. its like im counting to five until i get my hate orgasm because i hate the fucking fucker number 5 so much. i could smash your face with the number 5 all day. i wish i would be able to masturbate
00:09:56 <colpea> 5 times at once...but thats a different topic. ok its time for pause, kids, i see you back in 15 minutes and then we will talk about the number 5 and what you like and not.
00:09:56 <colpea> okay boys and girls please sit down and listen! my name is steve balag and im your math teacher for today. okay, who can tell me what 2+3 is? right, its 5, fucking 5, oh god i hate this fucking number i could fuck it all day. its like im counting to five until i get my hate orgasm because i hate the fucking fucker number 5 so much. i could smash your face with the number 5 all day. i wish i would be able to masturbate
00:09:56 <colpea> 5 times at once...but thats a different topic. ok its time for pause, kids, i see you back in 15 minutes and then we will talk about the number 5 and what you like and not.
00:09:56 <colpea> okay boys and girls please sit down and listen! my name is steve balag and im your math teacher for today. okay, who can tell me what 2+3 is? right, its 5, fucking 5, oh god i hate this fucking number i could fuck it all day. its like im counting to five until i get my hate orgasm because i hate the fucking fucker number 5 so much. i could smash your face with the number 5 all day. i wish i would be able to masturbate
00:09:56 × colpea quits (uid486488@gateway/web/irccloud.com/x-scyvzqsocksscpsy) (Killed (Sigyn (Spam is off topic on freenode.)))
00:10:09 <koz_> ....
00:10:18 <Axman6> it's going to be one of those days... need to set +R?
00:10:35 ChanServ sets mode +o glguy
00:10:35 glguy sets mode +zq $~a
00:11:17 <glguy> soft-warm: no, IRC doesn't have a way to remove the messages, we just watch them float away. There's no IRC history for them to get stuck in
00:11:37 clmg joins (~clmg@2601:1c2:200:720:aaae:788f:feaa:334f)
00:11:45 valliw joins (uid486489@gateway/web/irccloud.com/x-lrdhcnuvjjpubayv)
00:11:57 × valliw quits (uid486489@gateway/web/irccloud.com/x-lrdhcnuvjjpubayv) (Killed (Sigyn (Spam is off topic on freenode.)))
00:12:04 <clmg> I'm looking for an affordable serverless graph database solution. What do people here use?
00:12:25 × clmg quits (~clmg@2601:1c2:200:720:aaae:788f:feaa:334f) (Client Quit)
00:12:27 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
00:12:55 glguy sets mode -qq $~a *!?id4864??@gateway/web/irccloud.com/*
00:12:57 clmg joins (~clmg@2601:1c2:200:720:aaae:788f:feaa:334f)
00:13:18 <clmg> dc'd but i'm back
00:13:40 <Axman6> you picked a poor time to join, speak and leave I must say
00:13:47 × evanm quits (182c6bd4@ool-182c6bd4.dyn.optonline.net) (Quit: Ping timeout (120 seconds))
00:13:56 <Axman6> we're getting a fair amount of spam in the channel at the moment
00:14:12 <Axman6> clmg: can you elaborate more on what you're after?
00:14:37 <Axman6> I feel like I saw an article recently on using SQLite as a graph database...
00:14:40 <clmg> I need a graph database. Wondering what people use here.
00:14:56 <clmg> What's the difference between using an SQL db as a graph and using a real graph db?
00:15:09 <Axman6> no idea, I've never need a graph database
00:15:31 <sm[m]> pretty much what you'd expect - one is purpose built but more exotic
00:15:32 evanm joins (182c6bd4@ool-182c6bd4.dyn.optonline.net)
00:16:00 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
00:16:03 <clmg> what are downsides to using the less exotic one?
00:16:20 <koz_> clmg: Depending on what operations you want, they may be unavailable/inefficient.
00:16:36 <sm[m]> are you asking for something haskell related ?
00:16:41 <Axman6> your question really depends on what you want to do
00:16:50 <koz_> I think a better line of enquiry (both for getting answers as such and answers from us specifically) is asking 'why do you need this?'.
00:17:15 <koz_> 'i need X suggestions plz' almost never gets you anything good sans context.
00:17:27 tzlil joins (~tzlil@unaffiliated/tzlil)
00:17:48 lmw joins (95e09634@gateway/web/thelounge/ip.149.224.150.52)
00:18:21 <Axman6> You're essentially asking "What is the best car for driving on private roads". it's more specific than "what's the best car", but not enough to narrow down a helpful answer
00:18:40 <koz_> Axman6: The answer is, of course, 'your own'. :P
00:19:00 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
00:19:04 <lmw> Hi everyone.
00:19:05 <Axman6> no, the answer is _always_ "Someone else's" when it comes to what is the best car
00:19:49 <koz_> I dunno, I don't covet my neighbours' cars.
00:20:37 <lmw> If you mind me to post this :) -> https://devrant.com/rants/122207/i-used-haskell-today
00:22:27 <Axman6> clmg: you might find https://dbdb.io useful
00:23:02 <Axman6> probably won't include Haskell implementations but might point to some serverless software that has haskell bindings
00:23:42 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds)
00:25:07 <lmw> Hm, I'm a Haskell "idiot"... in what areas is Haskell used? And why?
00:26:00 <clmg> Axman6, thanks this is super helpful!
00:26:04 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:8dc5:2885:a349:760f:ef8c)
00:26:37 <dcoutts_> lmw: that's actually a very nice book :-)
00:26:42 dcoutts_ is now known as dcoutts
00:26:55 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
00:27:29 <lmw> dcoutts_: You know or have it?
00:27:39 <lmw> * dcoutts
00:28:24 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
00:29:35 <dcoutts> RIP Paul Hudak
00:30:00 <lmw> Who's that?
00:30:14 <dcoutts> the book author
00:30:33 <lmw> 01:27:29 <lmw> dcoutts_: You know or have it?
00:30:36 <lmw> I mean the book.
00:30:47 <dcoutts> I don't actually own a copy.
00:31:07 <lmw> oh
00:33:12 tomatoesarefruit joins (5fd3bbdf@95.211.187.223.adsl.inet-telecom.org)
00:33:54 <dcoutts> lmw: you'll not get a very helpful answer to what areas Haskell is used in, because it's used widely for so many things. It's not application specific at all.
00:34:19 <lmw> Hm, okay.
00:34:24 <dcoutts> Generally the answer is "Yes Haskell can do that", and more often than not "Yes Haskell is used for that".
00:34:31 <lmw> I'll study the Wikipedia article for a while :P
00:35:28 <dcoutts> The best answer I usually give for this kind of question is that it's best used for hard problems. That's when the language advantages show up the most.
00:35:59 <lmw> Sounds like a nice "rescue" feature before throwing your computer out of the window :)
00:36:09 <dcoutts> The advantages of sophisticated tools are much less clear for easy problems :-)
00:36:19 bitmagie joins (~Thunderbi@200116b806ee5f0075b06df4bf268b4a.dip.versatel-1u1.de)
00:36:41 ystael joins (~ystael@209.6.50.55)
00:37:58 conal joins (~conal@64.71.133.70)
00:40:31 × pengjiz quits (~user@cmu-secure-128-237-82-1.nat.cmu.net) (Quit: ERC (IRC client for Emacs 27.1))
00:40:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
00:43:03 nbloomf joins (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774)
00:44:51 × tomatoesarefruit quits (5fd3bbdf@95.211.187.223.adsl.inet-telecom.org) (K-Lined)
00:45:12 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
00:46:26 × lukelau quits (~lukelau@2a03:b0c0:1:d0::1bc:b001) (Quit: Bye)
00:46:36 lukelau joins (~lukelau@46.101.13.214)
00:48:34 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:49:02 × RusAlex quits (~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer)
00:50:00 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 272 seconds)
00:50:30 RusAlex joins (~Chel@unaffiliated/rusalex)
00:52:47 Tario joins (~Tario@201.192.165.173)
00:52:56 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
00:54:58 × bitmagie quits (~Thunderbi@200116b806ee5f0075b06df4bf268b4a.dip.versatel-1u1.de) (Quit: bitmagie)
00:55:43 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
00:56:17 × __minoru__shirae quits (~shiraeesh@77.94.25.221) (Ping timeout: 258 seconds)
00:56:18 jedws joins (~jedws@101.184.202.248)
00:58:33 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:01:53 ChanServ sets mode -q *!*@gateway/web/irccloud.com/x-jhuojzcxmrmtbbbo
01:02:28 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:02:36 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
01:03:38 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:8dc5:2885:a349:760f:ef8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:03:40 × xiinotulp quits (~q@node-upu.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
01:04:53 conal joins (~conal@64.71.133.70)
01:05:02 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:06:31 × denisse_ quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
01:06:51 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
01:09:33 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
01:11:23 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:12:04 × lmw quits (95e09634@gateway/web/thelounge/ip.149.224.150.52) (Quit: The Lounge - https://thelounge.chat)
01:12:57 conal joins (~conal@64.71.133.70)
01:13:03 × clmg quits (~clmg@2601:1c2:200:720:aaae:788f:feaa:334f) (Quit: Leaving)
01:14:46 da39a3ee5e6b4b0d joins (~da39a3ee5@49.228.238.55)
01:15:36 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:16:55 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:16:55 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
01:16:58 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
01:20:45 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
01:20:49 mozzarella joins (~sam@unaffiliated/sam113101)
01:21:29 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
01:24:34 nbloomf joins (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774)
01:25:46 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:26:07 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:29:32 Sonderblade joins (~helloman@94.191.152.155)
01:30:49 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
01:31:05 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:31:24 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
01:32:01 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
01:34:31 × gedda quits (~gedda@185.195.233.164) (Ping timeout: 256 seconds)
01:35:05 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
01:37:13 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
01:38:36 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds)
01:39:24 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:39:37 × clog quits (~nef@bespin.org) (Ping timeout: 265 seconds)
01:42:01 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:42:15 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
01:43:04 <olligobber> I wrote some magic functions... https://gist.github.com/olligobber/a2b48af361aa20d1751846924bb268c2
01:43:37 renzhi joins (~renzhi@2607:fa49:6500:6f00::1e43)
01:46:28 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
01:46:57 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
01:47:42 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
01:49:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:52:07 <monochrom> Nice.
01:53:10 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
01:54:24 × LKoen quits (~LKoen@252.248.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.”)
01:57:30 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 246 seconds)
01:58:00 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
01:58:48 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
02:02:06 toorevitimirp joins (~tooreviti@117.182.180.8)
02:05:56 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
02:06:17 gzj joins (~gzj@unaffiliated/gzj)
02:06:49 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-gcmzgmbzghudqqac) ()
02:11:07 × aveltras quits (uid364989@gateway/web/irccloud.com/x-vpbeizpksatuykjz) (Quit: Connection closed for inactivity)
02:13:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:14:37 × swarmcollective quits (~joseph@cpe-65-31-18-174.insight.res.rr.com) (Ping timeout: 276 seconds)
02:15:00 swarmcollective joins (~joseph@cpe-65-31-18-174.insight.res.rr.com)
02:16:24 × revprez_stg quits (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 246 seconds)
02:17:30 revprez_stg joins (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
02:18:16 <edwardk> :t let magicIf t a f = f (a <$ guard t) in magicIf
02:18:17 <lambdabot> Alternative f => Bool -> a -> (f a -> t) -> t
02:18:27 <edwardk> i mean i guess that is a generalization, hrmm.
02:18:32 <edwardk> :t let magicIf t a f = f (guard t *> Just a) in magicIf
02:18:33 <lambdabot> Bool -> b -> (Maybe b -> t) -> t
02:19:30 <edwardk> @pl \l i f -> f (i ++ [l])
02:19:30 <lambdabot> (flip id .) . flip (++) . return
02:19:38 <edwardk> definitely not clearer ;)
02:21:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
02:21:27 gzj joins (~gzj@unaffiliated/gzj)
02:22:09 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 258 seconds)
02:22:21 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
02:22:55 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
02:23:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
02:24:46 × xff0x quits (~xff0x@2001:1a81:52b3:3900:cb4:5433:f2ed:f9c3) (Ping timeout: 265 seconds)
02:26:31 xff0x joins (~xff0x@2001:1a81:52ef:4b00:26eb:2d4f:3068:b37d)
02:26:37 <olligobber> \l i -> ($ i ++ [l])
02:26:53 jedws joins (~jedws@101.184.202.248)
02:27:00 <olligobber> l and i are not good variable names to use together in hindsight
02:27:16 × oisdk quits (~oisdk@2001:bb6:3329:d100:c8bf:7533:dd0b:697d) (Quit: oisdk)
02:27:31 <MarcelineVQ> l is just an awful character in the first place
02:27:33 <ephemient> also I'd first associate i with an element and l with a list, but that's not the case here
02:27:34 <MarcelineVQ> l|I
02:27:48 <olligobber> i is init, l is last, that was my idea...
02:28:09 × renzhi quits (~renzhi@2607:fa49:6500:6f00::1e43) (Ping timeout: 265 seconds)
02:28:53 <olligobber> @pl \x xs -> ($ xs ++ [x])
02:28:53 <lambdabot> (flip id .) . flip (++) . return
02:28:58 <olligobber> oh
02:29:21 <koz_> PVP question: Suppose I have 'foo :: [Bar] -> Baz' in version 1.2.3. I then change this to 'foo :: (Foldable f) => f Bar -> Baz'. Is this a major or minor version bump?
02:29:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
02:30:13 <MarcelineVQ> major
02:31:33 <koz_> Thanks MarcelineVQ!
02:32:09 × epicte7us quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
02:33:27 × m0rphism1 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds)
02:36:22 × carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection)
02:37:00 carlomagno joins (~cararell@148.87.23.9)
02:40:05 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:41:27 Tario joins (~Tario@201.192.165.173)
02:41:32 mulling joins (~user@186.194.157.32)
02:42:00 Jd007 joins (~Jd007@162.156.11.151)
02:43:37 forgottenone joins (~forgotten@176.42.26.20)
02:44:48 rajivr joins (uid269651@gateway/web/irccloud.com/x-kfucijxmjxjyljmg)
02:45:01 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
02:49:47 × mulling quits (~user@186.194.157.32) (Quit: rcirc on GNU Emacs 28.0.50)
02:50:19 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
03:03:11 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
03:05:11 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
03:06:29 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:06:45 × theDon quits (~td@muedsl-82-207-238-056.citykom.de) (Ping timeout: 240 seconds)
03:08:53 theDon joins (~td@muedsl-82-207-238-061.citykom.de)
03:09:43 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:14:15 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
03:15:30 × kupi quits (uid212005@gateway/web/irccloud.com/x-lnwjfsxfkmuhgawv) (Quit: Connection closed for inactivity)
03:16:51 × zebrag quits (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr) (Quit: Konversation terminated!)
03:21:20 jamm_ joins (~jamm@unaffiliated/jamm)
03:22:24 × pfurla_ quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer)
03:23:03 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
03:24:19 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Client Quit)
03:25:47 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
03:26:31 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 2.9)
03:26:44 × howdoi quits (uid224@gateway/web/irccloud.com/x-ebpbnruvsddtxhef) (Ping timeout: 240 seconds)
03:27:02 × rajivr quits (uid269651@gateway/web/irccloud.com/x-kfucijxmjxjyljmg) (Ping timeout: 264 seconds)
03:27:02 × parseval quits (sid239098@gateway/web/irccloud.com/x-dnbmmypfjhrpwoxh) (Ping timeout: 264 seconds)
03:27:07 × gluegadget quits (sid22336@gateway/web/irccloud.com/x-qjbluzdbuorvzudp) (Ping timeout: 265 seconds)
03:27:12 × grfn quits (sid449115@gateway/web/irccloud.com/x-hctgciewtxceqjko) (Ping timeout: 260 seconds)
03:27:12 × mpickering quits (sid78412@gateway/web/irccloud.com/x-xelwhybptughywoo) (Ping timeout: 260 seconds)
03:27:20 × edwinb quits (sid69486@gateway/web/irccloud.com/x-wuubrztvpsnjnuei) (Read error: Connection reset by peer)
03:27:21 × simony quits (sid226116@gateway/web/irccloud.com/x-ejnjfzwgswvvieym) (Read error: Connection reset by peer)
03:27:21 × nick_h quits (sid319833@gateway/web/irccloud.com/x-atuwgaabpofalart) (Write error: Connection reset by peer)
03:27:21 × AndreasK quits (uid320732@gateway/web/irccloud.com/x-qrlsubapxkxzdsjt) (Read error: Connection reset by peer)
03:27:21 × acertain quits (sid470584@gateway/web/irccloud.com/x-qcnlnbxhzvnipgcz) (Read error: Connection reset by peer)
03:27:21 × hamishmack quits (sid389057@gateway/web/irccloud.com/x-qlqfspwjizfnonak) (Read error: Connection reset by peer)
03:27:21 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Ping timeout (120 seconds))
03:27:22 × alinab quits (sid468903@gateway/web/irccloud.com/x-ltdpydikdkyvrcjz) (Read error: Connection reset by peer)
03:27:22 × feepo quits (sid28508@gateway/web/irccloud.com/x-uerbayotvyknkvja) (Write error: Connection reset by peer)
03:27:22 × lightandlight quits (sid135476@gateway/web/irccloud.com/x-oslhfaatabpxvggg) (Write error: Connection reset by peer)
03:27:23 × adius quits (sid321344@gateway/web/irccloud.com/x-kwlpvjxqhtlpzjdi) (Read error: Connection reset by peer)
03:27:27 × affinespaces quits (sid327561@gateway/web/irccloud.com/x-wbdcwgjqxceequcr) (Read error: Connection reset by peer)
03:27:27 × average quits (uid473595@gateway/web/irccloud.com/x-omlghjlbhsfyrzeu) (Read error: Connection reset by peer)
03:27:27 × Tritlo quits (sid58727@gateway/web/irccloud.com/x-jeeiupynltcnjasv) (Read error: Connection reset by peer)
03:27:28 × stylewarning quits (stylewarni@gateway/web/irccloud.com/x-zrlvptgjnsxqjtur) (Read error: Connection reset by peer)
03:27:35 × dmj` quits (sid72307@gateway/web/irccloud.com/x-aqmrvywgtdyaqozj) (Read error: Connection reset by peer)
03:27:42 × PoliticsII______ quits (sid193551@gateway/web/irccloud.com/x-fxhaiatgclungiqp) (Ping timeout: 258 seconds)
03:27:42 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-ottrjnvqaulpzikt) (Ping timeout: 258 seconds)
03:28:09 × forgottenone quits (~forgotten@176.42.26.20) (Ping timeout: 264 seconds)
03:28:28 × SanchayanMaity quits (sid478177@gateway/web/irccloud.com/x-msjuulylbdlmdffr) (Ping timeout: 258 seconds)
03:28:52 AndreasK joins (uid320732@gateway/web/irccloud.com/x-ugrwknjbmnzopvub)
03:28:54 soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
03:28:55 rajivr joins (uid269651@gateway/web/irccloud.com/x-zoxcuochfajdlgrd)
03:28:55 adius joins (sid321344@gateway/web/irccloud.com/x-vxeeagpalrycwjvn)
03:28:57 nick_h joins (sid319833@gateway/web/irccloud.com/x-nwjrbiqfbqoprvab)
03:29:02 PoliticsII______ joins (sid193551@gateway/web/irccloud.com/x-tuajvxnrjmjfwqlj)
03:29:04 average joins (uid473595@gateway/web/irccloud.com/x-eeiwltpbokhvzvds)
03:29:09 stylewarning joins (stylewarni@gateway/web/irccloud.com/x-vjbhxeqbpgjkkzbc)
03:29:10 feepo joins (sid28508@gateway/web/irccloud.com/x-fanioyfrdmdbgsac)
03:29:11 affinespaces joins (sid327561@gateway/web/irccloud.com/x-sxzeebbbphyfonci)
03:29:26 howdoi joins (uid224@gateway/web/irccloud.com/x-rjjcnumbqqduqhsh)
03:30:06 parseval joins (sid239098@gateway/web/irccloud.com/x-zcxrpphqnxvkvszg)
03:30:17 dyeplexer joins (~lol@unaffiliated/terpin)
03:31:11 dmj` joins (sid72307@gateway/web/irccloud.com/x-daobeunxmbntdyfz)
03:31:29 grfn joins (sid449115@gateway/web/irccloud.com/x-itpsiegdpgfcmhuq)
03:31:29 alinab joins (sid468903@gateway/web/irccloud.com/x-ytvgxbjmkrrwylme)
03:31:32 hamishmack joins (sid389057@gateway/web/irccloud.com/x-jurbicwybttzswiw)
03:31:38 SanchayanMaity joins (sid478177@gateway/web/irccloud.com/x-emqjrggggxtjzmmc)
03:31:38 mpickering joins (sid78412@gateway/web/irccloud.com/x-bsdzbkbcztjjpkbi)
03:31:43 simony joins (sid226116@gateway/web/irccloud.com/x-phjoyqzngtkshyaz)
03:31:43 gluegadget joins (sid22336@gateway/web/irccloud.com/x-opabcmycnurblfgm)
03:31:46 lightandlight joins (sid135476@gateway/web/irccloud.com/x-mibnuuqzjpebbkzx)
03:32:39 × howdoi quits (uid224@gateway/web/irccloud.com/x-rjjcnumbqqduqhsh) (Client Quit)
03:33:10 acertain joins (sid470584@gateway/web/irccloud.com/x-pfvaigabdrzptrjm)
03:33:11 edwinb joins (sid69486@gateway/web/irccloud.com/x-ahfrajgjspekgwex)
03:33:14 Tritlo joins (sid58727@gateway/web/irccloud.com/x-rusoqdxjmfhofwqb)
03:34:08 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:34:08 finn_elija is now known as Guest55219
03:34:08 FinnElija is now known as finn_elija
03:34:42 plutoniix joins (~q@184.82.199.91)
03:35:15 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-lomqqqsulghgkwxd)
03:37:49 × Guest55219 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
03:38:01 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
03:38:36 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
03:39:28 × jdt_ quits (~jdt@208.85.233.130) (Ping timeout: 260 seconds)
03:40:49 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
03:41:05 <olligobber> @pl \b x y -> if b then x else y
03:41:05 <lambdabot> if'
03:41:24 <olligobber> huh, hoogle is down
03:42:30 jdt joins (~jdt@208.85.233.130)
03:43:08 infinity0 joins (~infinity0@freenet/developer/infinity0)
03:44:01 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
03:45:04 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
03:45:24 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:45:24 FinnElija is now known as finn_elija
03:56:53 × jdt quits (~jdt@208.85.233.130) (Ping timeout: 265 seconds)
03:58:49 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:02:11 jdt joins (~jdt@208.85.233.130)
04:02:22 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
04:02:43 × evanm quits (182c6bd4@ool-182c6bd4.dyn.optonline.net) (Quit: Connection closed)
04:03:41 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:04:49 × justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 265 seconds)
04:04:50 <koala_man> any thoughts on the best way to build macos binaries on linux?
04:05:25 × da39a3ee5e6b4b0d quits (~da39a3ee5@49.228.238.55) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:05:36 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds)
04:07:45 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
04:09:16 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
04:09:53 RusAlex_ joins (~Chel@APN-123-249-121-gprs.simobil.net)
04:10:36 deviantfero joins (~deviantfe@190.150.27.58)
04:12:39 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 272 seconds)
04:14:30 slack1256 joins (~slack1256@pc-251-226-215-201.cm.vtr.net)
04:14:31 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
04:15:45 × jdt quits (~jdt@208.85.233.130) (Ping timeout: 240 seconds)
04:18:31 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
04:20:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:26:40 jdt joins (~jdt@208.85.233.130)
04:40:50 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 264 seconds)
04:45:26 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:46:53 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
04:47:38 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds)
04:49:08 × alx741_ quits (~alx741@186.178.110.217) (Quit: alx741_)
04:50:32 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
04:54:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:55:47 ixaxaar joins (~ixaxaar@49.207.210.215)
04:57:32 × Sonderblade quits (~helloman@94.191.152.155) (Quit: Konversation terminated!)
04:57:55 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
05:01:41 × slack1256 quits (~slack1256@pc-251-226-215-201.cm.vtr.net) (Remote host closed the connection)
05:02:37 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
05:05:11 <dmj`> koala_man: travis CI supports mac osx builds
05:07:58 utdemir[m] joins (utdemirmat@gateway/shell/matrix.org/x-yopopecqjcrhmdog)
05:11:02 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
05:11:09 CMCDragonkai1 joins (~Thunderbi@110.175.213.142)
05:11:50 <dsal> So does github... sometimes.
05:11:59 <koala_man> dmj`: that's what I've been doing for the past several years, but now they're starting to charge for it and it's generally a pain because I can't build locally
05:12:42 × vikid1 quits (~vikid@bba139233.alshamil.net.ae) (Remote host closed the connection)
05:13:53 <dmj`> koala_man: well maybe circle ci has it
05:16:44 × carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection)
05:17:27 <koala_man> I'm trying to avoid renting a zoo full of server and just build everything on x86_64 linux. so far I have armv6hf and x86_64 windows via emulation, and aarch64 via cross-compilation
05:17:38 carlomagno joins (~cararell@148.87.23.9)
05:18:26 <koala_man> optimally I'd add ppc64 and s390x but those are even harder to get hardware for
05:24:43 <dmj`> koala_man: what do you need to target all these platforms for?
05:25:42 hirc joins (3dded63f@61-222-214-63.HINET-IP.hinet.net)
05:26:55 <koala_man> I mostly care about shellcheck's key platforms: window, linux and macos x86_64, and rpi, but if it's easy to add another arch then sure
05:28:06 <koala_man> things were ok-ish while travisci did its thing, though it was pretty frustrating to try to debug builds and do releases. Now that they're pivoting I'm hoping to get rid of all these crazy platform deps
05:30:27 vikid joins (~vikid@bba139233.alshamil.net.ae)
05:31:11 <dmj`> koala_man: oh! shellcheck is great btw, use it on every build at work.
05:31:30 <koala_man> aww, so glad you're finding it useful!
05:32:22 vikid1 joins (~vikid@bba139233.alshamil.net.ae)
05:33:48 <dmj`> koala_man: ya know, I bet if you made a nix derivation for shellcheck that had multiple platforms supported, you'd get some builds for free with hydra. I think you can target Darwin, the problem is that you need the XCode derivation, and I don't think that would exist on hydra ... but you can definitely cross compile to Windows.
05:34:41 <koala_man> what's hydra? I'm getting weird google reuslts
05:34:45 × vikid quits (~vikid@bba139233.alshamil.net.ae) (Ping timeout: 240 seconds)
05:36:35 frozenErebus joins (~frozenEre@94.128.81.133)
05:36:37 × Wuzzy quits (~Wuzzy@p57a2f980.dip0.t-ipconnect.de) (Quit: Wuzzy)
05:36:44 <dmj`> koala_man: https://hydra.nixos.org/ its a giant build farm, it clones the nixpkgs repo (which has a bunch of haskell build recipes in it), then farms out the recipes to its workers and populates a binary cache that people can consume
05:36:57 <dibblego> koala_man: it's a CI, with good nix support
05:37:12 <koala_man> dibblego!!
05:37:28 <dibblego> koala_man!!!
05:38:00 <dmj`> koala_man: if shellcheck had a derivation with a hydra_build_inputs section, it would act like a download page. You'd probably want to statically link everything though (and Darwin doesn't support static linking afaik)
05:39:01 <DigitalKiwi> https://github.com/adisbladis/macOS-Simple-KVM i use this to build for macos with nix distributed builds
05:39:39 <DigitalKiwi> "distributed" ; you can can run locally or on a server
05:40:40 <DigitalKiwi> https://gist.github.com/Kiwi/b1e8ac7d6540df1b9988864e0bc552db
05:41:01 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
05:41:07 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
05:41:30 × frozenErebus quits (~frozenEre@94.128.81.133) (Quit: leaving)
05:42:45 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
05:43:02 <koala_man> I'll give these a go if I can't get a x86_64 linux build going in some way or another
05:45:48 <DigitalKiwi> what do you mean
05:46:17 <DigitalKiwi> like cross compiling or
05:47:07 <dmj`> koala_man: are you on OSX ?
05:48:02 <koala_man> I'm on x86_64 linux normally, and that's the also the most available target for travisci, circleci, and github
05:49:05 <koala_man> I'd like to be able to build macos binaries without a macos machine
05:49:15 <DigitalKiwi> that runs on nixos
05:50:18 <DigitalKiwi> my macbook pro runs nixos which runs a vm of macos which runs a nix-daemon that i can compile software for by running one command from my nixos >.>
05:50:30 <DigitalKiwi> *magic*
05:50:55 <DigitalKiwi> works for aarch64-linux too
05:51:32 <koala_man> could that conceivably run on non-macbooks and build macos binaries?
05:51:38 <DigitalKiwi> yes
05:51:50 <DigitalKiwi> i run it on digitalocean
05:51:55 <koala_man> via a vm you say?
05:51:59 <DigitalKiwi> yes
05:52:01 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
05:52:17 <DigitalKiwi> i run a vm of macos on a vm of nixos on digitalocean lol
05:52:32 <DigitalKiwi> which was originally an ubuntu droplet
05:52:53 <DigitalKiwi> https://github.com/elitak/nixos-infect
05:53:10 <dmj`> hackintosh :)
05:53:12 <DigitalKiwi> run that and *boom* your server is now running nixos
05:53:53 <dmj`> koala_man: shellcheck is a pretty high profile project, maybe sponsors could pay the OSX build fees on travis CI ?
05:53:55 frozenErebus joins (~frozenEre@94.128.81.133)
05:54:22 <koala_man> I'm fine with emulation but I'm not sure how much I can rely on copies of macos
05:55:44 × frozenErebus quits (~frozenEre@94.128.81.133) (Client Quit)
05:55:56 <DigitalKiwi> copies?
05:56:02 frozenErebus joins (~frozenEre@94.128.81.133)
05:56:02 Codaraxis__ joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
05:56:19 <koala_man> licensing wise
05:56:22 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
05:56:44 <DigitalKiwi> it downloads it from apple
05:56:56 <dmj`> ^ yea I'm not sure the Apple EULA allows building macOS binaries in a VM, not using Apple hardware
05:58:04 <DigitalKiwi> yeah :(
05:58:25 <DigitalKiwi> i won't tell them ;)
05:59:26 <koala_man> maybe I'll cross-compile it all to javascript and run it with node since that appears to be the future
05:59:27 × CMCDragonkai1 quits (~Thunderbi@110.175.213.142) (Quit: CMCDragonkai1)
05:59:51 × Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 265 seconds)
06:01:08 <DigitalKiwi> Plz don't
06:02:35 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
06:04:53 tribble2 joins (~tribble2@unaffiliated/tribble2)
06:07:23 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 265 seconds)
06:10:29 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
06:12:08 <DigitalKiwi> anyway don't tell apple but
06:12:09 <DigitalKiwi> kiwi@mvp-nixos nixpkgs [master]$ nix-build . -A shellcheck --argstr system x86_64-darwin
06:12:12 <DigitalKiwi> /nix/store/r1lk5kp9i1h8a0v43dclh0n82s8ah3yh-shellcheck-0.7.1-bin
06:12:15 × mozzarella quits (~sam@unaffiliated/sam113101) (Remote host closed the connection)
06:13:11 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:13:37 mozzarella joins (~sam@unaffiliated/sam113101)
06:13:38 <DigitalKiwi> kiwi@mvp-nixos nixpkgs [master]$ nix-build . -A shellcheck --argstr system aarch64-linux
06:13:41 <DigitalKiwi> /nix/store/bzzskdy484d6f66skpgwcjb5q3rajw97-shellcheck-0.7.1-bin
06:13:46 × RusAlex_ quits (~Chel@APN-123-249-121-gprs.simobil.net) (Read error: Connection reset by peer)
06:13:52 <DigitalKiwi> kiwi@mvp-nixos nixpkgs [master]$ nix-build . -A shellcheck --argstr system x86_64-linux
06:13:54 <DigitalKiwi> /nix/store/akvjh8jjpnvs3bpw72lx06j87q105r9p-shellcheck-0.7.1-bin
06:14:43 <koala_man> nice
06:15:10 RusAlex_ joins (~Chel@APN-123-249-121-gprs.simobil.net)
06:17:07 <koz_> Does anyone know how I can spell that I want the 'cabal-store' output inside a ${{ ... }} for a Github Actions config?
06:17:22 <koz_> From here: https://github.com/haskell/actions/tree/main/setup#outputs
06:19:30 <koz_> Never mind think I have it.
06:19:31 <DigitalKiwi> koala_man: https://gist.github.com/Kiwi/d0b942867d63ea04cf94f8f68024a90b `nix-build-regular shellcheck` :D
06:21:31 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
06:23:25 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-lpvldgsjalhpetnc)
06:24:52 glguy sets mode -zo glguy
06:25:13 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:25:36 acidjnk_new joins (~acidjnk@p200300d0c722c425a01c61b5fca3f214.dip0.t-ipconnect.de)
06:31:27 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:32:32 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:8dc5:9d83:6704:36aa:723f)
06:34:21 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
06:35:37 jedws joins (~jedws@101.184.202.248)
06:35:47 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
06:38:25 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
06:41:05 × RusAlex_ quits (~Chel@APN-123-249-121-gprs.simobil.net) (Read error: Connection reset by peer)
06:42:29 RusAlex_ joins (~Chel@APN-123-249-121-gprs.simobil.net)
06:44:51 bitmagie joins (~Thunderbi@200116b8062cd500b8e38d3564dffed2.dip.versatel-1u1.de)
06:46:02 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:46:23 d3od joins (~nickmeno3@78-1-73-216.adsl.net.t-com.hr)
06:46:28 × d3od quits (~nickmeno3@78-1-73-216.adsl.net.t-com.hr) (Excess Flood)
06:46:32 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:46:43 d3od joins (~nickmeno3@78-1-73-216.adsl.net.t-com.hr)
06:49:35 × d3od quits (~nickmeno3@78-1-73-216.adsl.net.t-com.hr) (Remote host closed the connection)
06:50:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:50:16 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
06:50:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:51:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
06:52:01 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
06:54:33 knupfer joins (~Thunderbi@200116b82c0d9300cc7153fffe3a1b34.dip.versatel-1u1.de)
06:54:37 thc202 joins (~thc202@unaffiliated/thc202)
06:54:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
06:55:31 × knupfer quits (~Thunderbi@200116b82c0d9300cc7153fffe3a1b34.dip.versatel-1u1.de) (Remote host closed the connection)
06:55:39 knupfer joins (~Thunderbi@200116b82c0d9300b9b30cbff35a1bf6.dip.versatel-1u1.de)
06:55:46 × hirc quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Ping timeout (120 seconds))
06:56:20 × urdh quits (~urdh@unaffiliated/urdh) (Quit: Boom!)
07:01:28 mrlazos joins (~mrlazos@46-18-189.adsl.cyta.gr)
07:02:42 × sqrt2 quits (~ben@unaffiliated/sqrt2) (Quit: ZNC - http://znc.in)
07:02:54 sqrt2 joins (~ben@unaffiliated/sqrt2)
07:03:09 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:03:36 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
07:03:40 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
07:03:51 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
07:04:18 frozenErebus joins (~frozenEre@94.128.81.133)
07:04:32 raym joins (~ray@45.64.220.217)
07:05:05 Lowl3v3l joins (~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de)
07:05:05 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:05:51 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 246 seconds)
07:06:00 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
07:06:06 urdh joins (~urdh@unaffiliated/urdh)
07:07:09 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
07:11:11 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:11:55 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:16:01 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:16:09 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
07:16:20 gedda joins (~gedda@185.195.233.164)
07:17:45 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:20:53 hirc joins (3dded63f@61-222-214-63.HINET-IP.hinet.net)
07:24:12 Graf_Blutwurst joins (~grafblutw@2001:171b:226e:adc0:594f:a254:e4f0:4085)
07:25:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
07:26:56 × vikid1 quits (~vikid@bba139233.alshamil.net.ae) (Remote host closed the connection)
07:27:26 vikid1 joins (~vikid@bba139233.alshamil.net.ae)
07:31:35 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
07:32:10 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
07:40:31 jedws joins (~jedws@101.184.202.248)
07:42:47 × jrqc quits (~rofl@96.78.87.197) (Quit: Leaving)
07:43:56 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
07:44:36 × hirc quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Connection closed)
07:45:39 Varis joins (~Tadas@unaffiliated/varis)
07:47:36 phaul parts (~phaul@ruby/staff/phaul) ("WeeChat 2.8")
07:47:36 × kini quits (~kini@unaffiliated/kini) (Remote host closed the connection)
07:48:54 kini joins (~kini@unaffiliated/kini)
07:50:45 × jedws quits (~jedws@101.184.202.248) (Quit: Textual IRC Client: www.textualapp.com)
07:55:57 jedws joins (~jedws@101.184.202.248)
07:56:27 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
07:57:14 kritzefitz joins (~kritzefit@fw-front.credativ.com)
07:58:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:02:08 hirc joins (3dded63f@61-222-214-63.HINET-IP.hinet.net)
08:03:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
08:06:36 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 240 seconds)
08:08:02 × chrisdotcode quits (~chrisdotc@unaffiliated/chrisdotcode) (Quit: self-rip)
08:09:39 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
08:12:22 × carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection)
08:12:49 carlomagno joins (~cararell@148.87.23.9)
08:12:57 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:14:15 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
08:20:03 kritzefitz joins (~kritzefit@212.86.56.80)
08:20:43 Aquazi joins (uid312403@gateway/web/irccloud.com/x-tdiieczmrvrhsmbp)
08:23:10 totoro2023 joins (~t@unaffiliated/totoro2021)
08:24:23 × tribble2 quits (~tribble2@unaffiliated/tribble2) (Read error: Connection reset by peer)
08:25:04 × vikid1 quits (~vikid@bba139233.alshamil.net.ae) (Remote host closed the connection)
08:26:06 × totoro2022 quits (~t@unaffiliated/totoro2021) (Ping timeout: 265 seconds)
08:27:31 × mrlazos quits (~mrlazos@46-18-189.adsl.cyta.gr) (Quit: ChatingID IRC Client + Radio Stream V1.0.1 Download at http://apps.chating.id)
08:29:15 j2t joins (~j2t@84.122.202.215.dyn.user.ono.com)
08:29:27 chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de)
08:32:29 × rotaerk quits (rotaerk@2600:3c02::f03c:91ff:fe70:4a45) (Ping timeout: 246 seconds)
08:33:22 × jedws quits (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:35:38 ubert joins (~Thunderbi@p200300ecdf25d98ee6b318fffe838f33.dip0.t-ipconnect.de)
08:36:04 dandart joins (~Thunderbi@home.dandart.co.uk)
08:36:34 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
08:36:35 × vanaltj1 quits (~vanaltj@185.163.110.108) (Remote host closed the connection)
08:36:46 × j2t quits (~j2t@84.122.202.215.dyn.user.ono.com) (Remote host closed the connection)
08:37:46 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
08:38:52 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
08:39:45 mouseghost joins (~draco@wikipedia/desperek)
08:42:05 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
08:43:40 borne joins (~fritjof@200116b8646dd3007eece5d071d7bcc1.dip.versatel-1u1.de)
08:45:09 oish joins (~charlie@228.25.169.217.in-addr.arpa)
08:45:21 × dandart quits (~Thunderbi@home.dandart.co.uk) (Quit: dandart)
08:46:08 × swater quits (bouhier200@perso.iiens.net) (Ping timeout: 246 seconds)
08:47:36 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
08:47:38 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:47:59 swater joins (bouhier200@perso.iiens.net)
08:50:42 _vaibhavingale_ joins (~Adium@203.188.228.9)
08:51:54 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
08:52:16 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
08:52:54 Guest38639 joins (~uptime@195.140.213.38)
08:53:09 pera joins (pera@gateway/vpn/mullvad/pera)
08:57:04 × ubert quits (~Thunderbi@p200300ecdf25d98ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
08:58:53 kuribas joins (~user@ptr-25vy0i6svrvzmuie26v.18120a2.ip6.access.telenet.be)
09:00:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:00:12 ubert joins (~Thunderbi@p200300ecdf25d98ee6b318fffe838f33.dip0.t-ipconnect.de)
09:03:19 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:03:53 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 272 seconds)
09:06:12 __minoru__shirae joins (~shiraeesh@5.101.59.249)
09:06:42 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 265 seconds)
09:07:01 × gedda quits (~gedda@185.195.233.164) (Quit: leaving)
09:09:08 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
09:12:23 m1dnight1 is now known as m1dnight_
09:12:37 ph88^ joins (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
09:16:34 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:4da6:ad42:6417:64a1) (Ping timeout: 265 seconds)
09:18:18 kritzefitz joins (~kritzefit@fw-front.credativ.com)
09:19:09 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Remote host closed the connection)
09:22:04 × __minoru__shirae quits (~shiraeesh@5.101.59.249) (Ping timeout: 256 seconds)
09:22:38 × ubert quits (~Thunderbi@p200300ecdf25d98ee6b318fffe838f33.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
09:24:00 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
09:26:21 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 264 seconds)
09:28:41 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
09:32:37 jamm_ joins (~jamm@unaffiliated/jamm)
09:32:38 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
09:33:21 × grol_ quits (~quassel@2620:11e:1000:2:250:56ff:fea4:7) (Quit: No Ping reply in 180 seconds.)
09:34:15 × hekkaidekapus{ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
09:35:49 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
09:36:10 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:37:29 grol joins (~quassel@216.130.192.4)
09:40:54 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
09:42:13 ClaudiusMaximus joins (~claude@191.123.199.146.dyn.plus.net)
09:42:21 × ClaudiusMaximus quits (~claude@191.123.199.146.dyn.plus.net) (Changing host)
09:42:21 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
09:42:27 × hirc quits (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Connection closed)
09:45:49 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
09:51:36 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
09:52:41 × quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
09:52:47 jrqc joins (~rofl@96.78.87.197)
09:54:46 clog joins (~nef@bespin.org)
09:58:28 oish joins (~charlie@228.25.169.217.in-addr.arpa)
10:00:56 fendor joins (~fendor@77.119.130.235.wireless.dyn.drei.com)
10:01:16 × andrybak quits (andrybak@gateway/vpn/privateinternetaccess/andrybak) (Ping timeout: 240 seconds)
10:01:49 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
10:03:53 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:04:42 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
10:05:03 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:05:12 p_____ joins (~lol@unaffiliated/terpin)
10:05:22 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
10:06:16 × dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 256 seconds)
10:06:35 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
10:07:25 __minoru__shirae joins (~shiraeesh@77.94.25.226)
10:07:35 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:07:59 oish joins (~charlie@228.25.169.217.in-addr.arpa)
10:09:26 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-lomqqqsulghgkwxd) (Quit: Connection closed for inactivity)
10:09:37 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 256 seconds)
10:10:09 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
10:11:05 m0rphism1 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
10:13:34 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
10:14:19 andrybak joins (andrybak@gateway/vpn/privateinternetaccess/andrybak)
10:14:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:16:06 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
10:16:47 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
10:16:53 p_____ is now known as dyeplexer
10:19:59 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
10:21:43 raichoo joins (~raichoo@94.31.87.253)
10:23:09 hekkaidekapus{ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
10:23:30 viluon joins (uid453725@gateway/web/irccloud.com/x-beapsmmrxnkkpenj)
10:23:56 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
10:24:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 264 seconds)
10:25:12 <ph88^> is there something like a hashmap that supports lookup but is ordered ?
10:25:55 <Taneb> Like Data.Mao?
10:25:58 <Taneb> *Data.Map
10:26:01 <Taneb> In containers
10:26:18 <Taneb> What exactly do you mean by ordered, here?
10:27:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
10:27:21 Rudd0 joins (~Rudd0@185.189.115.108)
10:28:01 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
10:28:39 <ph88^> that you get back the elements in an order when you go over them one by one
10:29:21 <ph88^> and also that you can insert them in an order .. otherwise you still have no control
10:29:39 <ph88^> push , append those kinds of functions
10:29:47 <ph88^> but also with key lookup like hashmap
10:30:38 <lortabac> @hackage ordered-containers
10:30:38 <lambdabot> https://hackage.haskell.org/package/ordered-containers
10:31:01 <lortabac> this? ^
10:31:05 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer)
10:32:00 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
10:32:24 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
10:34:45 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
10:35:08 sord937 joins (~sord937@gateway/tor-sasl/sord937)
10:36:45 <fendor> ph88^, psqueues could also be interesting
10:36:56 <ph88^> thanks
10:37:08 <fendor> https://hackage.haskell.org/package/psqueues
10:37:41 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
10:39:08 Feuermagier joins (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6)
10:40:20 toorevitimirp joins (~tooreviti@117.182.180.8)
10:47:17 albert_42 joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
10:48:03 frozenErebus joins (~frozenEre@94.128.81.133)
10:48:28 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
10:48:34 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
10:49:20 vikid joins (~vikid@bba139233.alshamil.net.ae)
10:51:09 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
10:51:19 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
10:52:37 toorevitimirp joins (~tooreviti@117.182.180.8)
10:53:21 × pera quits (pera@gateway/vpn/mullvad/pera) (Ping timeout: 264 seconds)
10:53:57 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
10:56:36 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
10:57:19 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
10:58:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
10:58:05 fendor_ joins (~fendor@91.141.1.179.wireless.dyn.drei.com)
10:59:30 <kuribas> also http://hackage.haskell.org/package/insert-ordered-containers-0.2.3.1
11:00:34 toorevitimirp joins (~tooreviti@117.182.180.8)
11:00:40 × fendor quits (~fendor@77.119.130.235.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
11:02:26 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
11:02:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
11:03:59 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
11:04:35 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
11:04:59 Tops2 joins (~Tobias@dyndsl-095-033-094-020.ewe-ip-backbone.de)
11:07:00 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:8dc5:9d83:6704:36aa:723f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:08:39 toorevitimirp joins (~tooreviti@117.182.180.8)
11:08:47 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Remote host closed the connection)
11:09:06 Franciman joins (~francesco@host-82-49-79-189.retail.telecomitalia.it)
11:09:37 × MasseR quits (~MasseR@51.15.143.128) (Quit: Ping timeout (120 seconds))
11:10:25 × banjiewen__ quits (sid115913@gateway/web/irccloud.com/x-vtlzkyyghwyhkbwc) (Ping timeout: 240 seconds)
11:10:25 × ibloom quits (sid350277@gateway/web/irccloud.com/x-ndvbvjfgaljsbyrm) (Ping timeout: 240 seconds)
11:10:25 × integral quits (sid296274@p3m/member/integral) (Ping timeout: 240 seconds)
11:10:25 × joshmeredith quits (sid387798@gateway/web/irccloud.com/x-ifflaxbyesjewlaq) (Ping timeout: 240 seconds)
11:10:25 × kip quits (sid71464@gateway/web/irccloud.com/x-ageigeiymvztsnun) (Ping timeout: 240 seconds)
11:10:25 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-ganznysfpzosetlx) (Ping timeout: 240 seconds)
11:10:25 × jlpeters quits (sid25606@gateway/web/irccloud.com/x-qwttawzojebpxywa) (Ping timeout: 240 seconds)
11:10:29 × nick_h quits (sid319833@gateway/web/irccloud.com/x-nwjrbiqfbqoprvab) (Read error: Connection reset by peer)
11:10:29 × ajmcmiddlin quits (sid284402@gateway/web/irccloud.com/x-jictbuqowhrlaect) (Read error: Connection reset by peer)
11:10:36 j2t joins (~user@84.122.202.215.dyn.user.ono.com)
11:10:39 nick_h joins (sid319833@gateway/web/irccloud.com/x-vpptgldbvhteshps)
11:10:39 ajmcmiddlin joins (sid284402@gateway/web/irccloud.com/x-nwftkoodizyfvmfs)
11:10:39 joshmeredith joins (sid387798@gateway/web/irccloud.com/x-xntvmzgslenqbals)
11:10:45 × AndreasK quits (uid320732@gateway/web/irccloud.com/x-ugrwknjbmnzopvub) (Ping timeout: 240 seconds)
11:10:45 × moobar quits (sid171730@gateway/web/irccloud.com/x-slpcxtjzdcvucznv) (Ping timeout: 240 seconds)
11:11:04 × alinab quits (sid468903@gateway/web/irccloud.com/x-ytvgxbjmkrrwylme) (Read error: Connection reset by peer)
11:11:05 × gluegadget quits (sid22336@gateway/web/irccloud.com/x-opabcmycnurblfgm) (Ping timeout: 240 seconds)
11:11:05 × sz0 quits (uid110435@gateway/web/irccloud.com/x-ptxphydsalwponaw) (Ping timeout: 240 seconds)
11:11:06 × parseval quits (sid239098@gateway/web/irccloud.com/x-zcxrpphqnxvkvszg) (Read error: Connection reset by peer)
11:11:14 ibloom joins (sid350277@gateway/web/irccloud.com/x-vbswahxvhdgaxpik)
11:11:14 alinab joins (sid468903@gateway/web/irccloud.com/x-iwyiwpojowylhkjn)
11:11:15 AndreasK joins (uid320732@gateway/web/irccloud.com/x-astomoqfjfgqevql)
11:11:16 parseval joins (sid239098@gateway/web/irccloud.com/x-xusvdlhyuktsxodh)
11:11:17 × drupol quits (sid117588@gateway/web/irccloud.com/x-nwoufuotrwgcosww) (Read error: Connection reset by peer)
11:11:17 × JSharp quits (sid4580@wikia/JSharp) (Read error: Connection reset by peer)
11:11:17 × SrPx quits (sid108780@gateway/web/irccloud.com/x-tkumtvhlagwjxupu) (Read error: Connection reset by peer)
11:11:23 × pent quits (sid313808@gateway/web/irccloud.com/x-sndfmweosegssohp) (Read error: Connection reset by peer)
11:11:23 × average quits (uid473595@gateway/web/irccloud.com/x-eeiwltpbokhvzvds) (Read error: Connection reset by peer)
11:11:27 moobar joins (sid171730@gateway/web/irccloud.com/x-ocvhawznpftxbprp)
11:11:27 kip joins (sid71464@gateway/web/irccloud.com/x-ofcjhlittwfuaooz)
11:11:28 gluegadget joins (sid22336@gateway/web/irccloud.com/x-fhtidetffynznfcq)
11:11:30 integral joins (sid296274@p3m/member/integral)
11:11:32 jlpeters joins (sid25606@gateway/web/irccloud.com/x-mpzxbznvanzdovdc)
11:11:33 drupol joins (sid117588@gateway/web/irccloud.com/x-wrbeohrfldcrlcky)
11:11:37 × xintron quits (~xintron@unaffiliated/xintron) (Quit: Ping timeout (120 seconds))
11:11:37 banjiewen__ joins (sid115913@gateway/web/irccloud.com/x-pkbtnhpigsweipmo)
11:11:38 pent joins (sid313808@gateway/web/irccloud.com/x-ljznbdewtzbmwqqi)
11:11:38 average joins (uid473595@gateway/web/irccloud.com/x-mobopqlpemssivwa)
11:11:40 JSharp joins (sid4580@wikia/JSharp)
11:11:46 betawaffle joins (sid2730@gateway/web/irccloud.com/x-yqgmyyrldtcqypof)
11:11:53 SrPx joins (sid108780@gateway/web/irccloud.com/x-oyqdxdztzkyivpnw)
11:11:56 CMCDragonkai1 joins (~Thunderbi@124.19.3.250)
11:12:03 xintron joins (~xintron@unaffiliated/xintron)
11:12:12 sz0 joins (uid110435@gateway/web/irccloud.com/x-gkmcfhxczsfbwxsj)
11:12:38 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
11:12:39 MasseR joins (~MasseR@51.15.143.128)
11:12:44 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
11:13:06 toorevitimirp joins (~tooreviti@117.182.180.8)
11:14:46 × CMCDragonkai1 quits (~Thunderbi@124.19.3.250) (Client Quit)
11:17:04 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
11:17:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:17:28 __monty__ joins (~toonn@unaffiliated/toonn)
11:18:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:19:23 rotaerk joins (rotaerk@2600:3c02::f03c:91ff:fe70:4a45)
11:20:59 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
11:23:34 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:8dc5:9d83:6704:36aa:723f)
11:25:04 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 240 seconds)
11:26:30 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
11:27:15 toorevitimirp joins (~tooreviti@117.182.180.8)
11:28:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
11:31:14 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
11:33:04 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-lpvldgsjalhpetnc) (Quit: Connection closed for inactivity)
11:33:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
11:34:06 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
11:34:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:34:56 × pako quits (~pako@dynamic-089-014-134-077.89.14.pool.telefonica.de) (Ping timeout: 240 seconds)
11:34:57 pako8128 joins (~pako@dynamic-078-055-055-045.78.55.pool.telefonica.de)
11:36:20 × LKoen quits (~LKoen@252.248.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.”)
11:37:53 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
11:38:44 × MarcelineVQ quits (~anja@198.254.199.42) (Read error: Connection reset by peer)
11:39:24 MarcelineVQ joins (~anja@198.254.199.42)
11:39:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
11:40:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:41:58 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
11:42:40 CMCDragonkai1 joins (~Thunderbi@124.19.3.250)
11:44:14 jamm_ joins (~jamm@unaffiliated/jamm)
11:44:17 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
11:45:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
11:46:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:46:24 son0p joins (~son0p@181.58.39.182)
11:49:27 × acidjnk_new quits (~acidjnk@p200300d0c722c425a01c61b5fca3f214.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:51:01 <nshepperd2> https://hackage.haskell.org/package/bimap can be used as a sort of priority search queue with a very general interface where everything is O(log n)
11:51:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
11:51:29 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
11:52:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:53:24 toorevitimirp joins (~tooreviti@117.182.180.8)
11:54:30 <nshepperd2> (with Bimap k (p, k) if you expect to get different keys with the same priority)
11:55:33 Tops21 joins (~Tobias@dyndsl-095-033-094-020.ewe-ip-backbone.de)
11:56:09 × kiltzman quits (~k1ltzman@195.189.99.96) (Ping timeout: 256 seconds)
11:57:24 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
11:57:56 toorevitimirp joins (~tooreviti@117.182.180.8)
11:58:59 × Tops2 quits (~Tobias@dyndsl-095-033-094-020.ewe-ip-backbone.de) (Ping timeout: 256 seconds)
11:59:36 × RusAlex_ quits (~Chel@APN-123-249-121-gprs.simobil.net) (Ping timeout: 256 seconds)
11:59:50 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 258 seconds)
12:00:58 × CMCDragonkai1 quits (~Thunderbi@124.19.3.250) (Quit: CMCDragonkai1)
12:01:55 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
12:02:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
12:02:44 kiltzman joins (~k1ltzman@5.206.224.243)
12:03:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:03:57 × plutoniix quits (~q@184.82.199.91) (Quit: Leaving)
12:03:58 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
12:05:16 pera joins (~pera@unaffiliated/pera)
12:08:17 × AndreasK quits (uid320732@gateway/web/irccloud.com/x-astomoqfjfgqevql) (Read error: Connection reset by peer)
12:08:17 × joshmeredith quits (sid387798@gateway/web/irccloud.com/x-xntvmzgslenqbals) (Read error: Connection reset by peer)
12:08:17 × alinab quits (sid468903@gateway/web/irccloud.com/x-iwyiwpojowylhkjn) (Read error: Connection reset by peer)
12:08:19 × parseval quits (sid239098@gateway/web/irccloud.com/x-xusvdlhyuktsxodh) (Read error: Connection reset by peer)
12:08:19 × ajmcmiddlin quits (sid284402@gateway/web/irccloud.com/x-nwftkoodizyfvmfs) (Read error: Connection reset by peer)
12:08:19 × nick_h quits (sid319833@gateway/web/irccloud.com/x-vpptgldbvhteshps) (Read error: Connection reset by peer)
12:08:19 × gluegadget quits (sid22336@gateway/web/irccloud.com/x-fhtidetffynznfcq) (Read error: Connection reset by peer)
12:08:33 × ibloom quits (sid350277@gateway/web/irccloud.com/x-vbswahxvhdgaxpik) (Read error: Connection reset by peer)
12:08:38 × jlpeters quits (sid25606@gateway/web/irccloud.com/x-mpzxbznvanzdovdc) (Ping timeout: 265 seconds)
12:08:47 × viluon quits (uid453725@gateway/web/irccloud.com/x-beapsmmrxnkkpenj) (Read error: Connection reset by peer)
12:08:49 × Aquazi quits (uid312403@gateway/web/irccloud.com/x-tdiieczmrvrhsmbp) (Ping timeout: 272 seconds)
12:08:50 × banjiewen__ quits (sid115913@gateway/web/irccloud.com/x-pkbtnhpigsweipmo) (Read error: Connection reset by peer)
12:08:54 × moobar quits (sid171730@gateway/web/irccloud.com/x-ocvhawznpftxbprp) (Read error: Connection reset by peer)
12:08:56 × JSharp quits (sid4580@wikia/JSharp) (Read error: Connection reset by peer)
12:08:58 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-yqgmyyrldtcqypof) (Read error: Connection reset by peer)
12:09:00 × kip quits (sid71464@gateway/web/irccloud.com/x-ofcjhlittwfuaooz) (Read error: Connection reset by peer)
12:09:00 × integral quits (sid296274@p3m/member/integral) (Read error: Connection reset by peer)
12:09:04 × drupol quits (sid117588@gateway/web/irccloud.com/x-wrbeohrfldcrlcky) (Read error: Connection reset by peer)
12:09:05 × average quits (uid473595@gateway/web/irccloud.com/x-mobopqlpemssivwa) (Read error: Connection reset by peer)
12:09:08 × pent quits (sid313808@gateway/web/irccloud.com/x-ljznbdewtzbmwqqi) (Read error: Connection reset by peer)
12:09:09 × sz0 quits (uid110435@gateway/web/irccloud.com/x-gkmcfhxczsfbwxsj) (Read error: Connection reset by peer)
12:09:13 × SrPx quits (sid108780@gateway/web/irccloud.com/x-oyqdxdztzkyivpnw) (Read error: Connection reset by peer)
12:09:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting)
12:09:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:09:47 parseval joins (sid239098@gateway/web/irccloud.com/x-weqnsqkpfnrvdrff)
12:09:48 joshmeredith joins (sid387798@gateway/web/irccloud.com/x-lldrrdcotjmdutbt)
12:09:48 AndreasK joins (uid320732@gateway/web/irccloud.com/x-hnvqnywdvovvyrlx)
12:09:49 alinab joins (sid468903@gateway/web/irccloud.com/x-pnysahqquupbvvmz)
12:09:50 ajmcmiddlin joins (sid284402@gateway/web/irccloud.com/x-jwmpjrkspajvogem)
12:09:53 gluegadget joins (sid22336@gateway/web/irccloud.com/x-evznraaxgeebxlfq)
12:09:55 nick_h joins (sid319833@gateway/web/irccloud.com/x-llzjpkeahelgxkum)
12:10:06 ibloom joins (sid350277@gateway/web/irccloud.com/x-teixkoeowtnjnhtx)
12:10:20 viluon joins (uid453725@gateway/web/irccloud.com/x-zmqkoqenbdmcwree)
12:10:21 moobar joins (sid171730@gateway/web/irccloud.com/x-frdbmxzesbedehug)
12:10:23 jlpeters joins (sid25606@gateway/web/irccloud.com/x-zpgsgjbfsrljtrrq)
12:10:35 kip joins (sid71464@gateway/web/irccloud.com/x-tfvbswgodgxcvsru)
12:10:40 JSharp joins (sid4580@wikia/JSharp)
12:10:42 average joins (uid473595@gateway/web/irccloud.com/x-ivwqjzfyrxxehqwh)
12:10:46 pent joins (sid313808@gateway/web/irccloud.com/x-gnnpwsdgtfefuwbh)
12:10:49 betawaffle joins (sid2730@gateway/web/irccloud.com/x-bgkptvfjzqwocqqf)
12:10:58 Aquazi joins (uid312403@gateway/web/irccloud.com/x-gflzulzoexgyhpxa)
12:11:39 banjiewen__ joins (sid115913@gateway/web/irccloud.com/x-rxizbwtjjnuzayjr)
12:11:50 integral joins (sid296274@p3m/member/integral)
12:11:51 drupol joins (sid117588@gateway/web/irccloud.com/x-jhrbzuwayhhchgel)
12:12:01 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 256 seconds)
12:12:07 toorevitimirp joins (~tooreviti@117.182.180.8)
12:12:23 SrPx joins (sid108780@gateway/web/irccloud.com/x-opkcxtlcwwtxbdlk)
12:12:36 sz0 joins (uid110435@gateway/web/irccloud.com/x-qrgmlzrbtxtcmxsq)
12:13:38 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
12:16:06 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
12:16:39 toorevitimirp joins (~tooreviti@117.182.180.8)
12:16:50 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:17:12 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:17:36 × bitmagie quits (~Thunderbi@200116b8062cd500b8e38d3564dffed2.dip.versatel-1u1.de) (Quit: bitmagie)
12:18:27 mputz joins (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
12:18:49 zebrag joins (~inkbottle@aaubervilliers-654-1-112-148.w86-198.abo.wanadoo.fr)
12:20:06 × knupfer quits (~Thunderbi@200116b82c0d9300b9b30cbff35a1bf6.dip.versatel-1u1.de) (Remote host closed the connection)
12:20:21 knupfer joins (~Thunderbi@200116b82c0d930015862ef9beb02c87.dip.versatel-1u1.de)
12:21:43 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
12:23:50 edge563 joins (~edge563@gateway/tor-sasl/edge563)
12:25:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: leaving)
12:25:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:25:55 × edge563 quits (~edge563@gateway/tor-sasl/edge563) (Client Quit)
12:26:04 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
12:26:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 264 seconds)
12:26:31 edge563 joins (~edge563@gateway/tor-sasl/edge563)
12:28:17 CMCDragonkai1 joins (~Thunderbi@124.19.3.250)
12:34:35 × CMCDragonkai1 quits (~Thunderbi@124.19.3.250) (Quit: CMCDragonkai1)
12:34:58 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
12:35:24 toorevitimirp joins (~tooreviti@117.182.180.8)
12:37:32 Guest_60 joins (d98ac16a@217.138.193.106)
12:37:37 <Guest_60> hey everyoine
12:37:51 × Guest_60 quits (d98ac16a@217.138.193.106) (Client Quit)
12:39:16 × edge563 quits (~edge563@gateway/tor-sasl/edge563) (Quit: edge563)
12:41:22 <frozenErebus> hello
12:44:55 × vikid quits (~vikid@bba139233.alshamil.net.ae) (Remote host closed the connection)
12:46:52 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
12:48:36 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
12:48:54 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
12:49:08 toorevitimirp joins (~tooreviti@117.182.180.8)
12:53:08 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
12:53:30 × raym quits (~ray@45.64.220.217) (Quit: leaving)
12:53:47 hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube)
12:53:52 kjak joins (~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
12:55:42 × LKoen quits (~LKoen@252.248.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.”)
12:55:45 toorevitimirp joins (~tooreviti@117.182.180.8)
12:56:16 × lawid quits (~quassel@ipservice-092-209-135-235.092.209.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
12:57:08 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
12:58:11 × parseval quits (sid239098@gateway/web/irccloud.com/x-weqnsqkpfnrvdrff) (Read error: Connection reset by peer)
12:58:11 lawid joins (~quassel@dslb-178-000-142-195.178.000.pools.vodafone-ip.de)
12:58:11 × viluon quits (uid453725@gateway/web/irccloud.com/x-zmqkoqenbdmcwree) (Read error: Connection reset by peer)
12:58:13 × feepo quits (sid28508@gateway/web/irccloud.com/x-fanioyfrdmdbgsac) (Read error: Connection reset by peer)
12:58:16 × stylewarning quits (stylewarni@gateway/web/irccloud.com/x-vjbhxeqbpgjkkzbc) (Ping timeout: 240 seconds)
12:59:39 parseval joins (sid239098@gateway/web/irccloud.com/x-vmeipwrsztvrmmhr)
13:00:39 Tario joins (~Tario@201.192.165.173)
13:01:33 × troydm quits (~troydm@unaffiliated/troydm) (Ping timeout: 258 seconds)
13:01:43 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:8dc5:9d83:6704:36aa:723f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:02:18 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
13:02:34 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
13:02:53 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
13:03:15 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
13:03:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:03:30 stylewarning joins (stylewarni@gateway/web/irccloud.com/x-xytuvgxkxgyavseq)
13:03:56 feepo joins (sid28508@gateway/web/irccloud.com/x-pdtrfecihbdlivyv)
13:05:17 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
13:06:20 geekosaur joins (82650c7a@130.101.12.122)
13:07:31 × raichoo quits (~raichoo@94.31.87.253) (Quit: Lost terminal)
13:07:35 viluon joins (uid453725@gateway/web/irccloud.com/x-drkyubrfndbftqpp)
13:07:37 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 260 seconds)
13:08:15 berberman_ joins (~berberman@unaffiliated/berberman)
13:08:34 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
13:08:59 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
13:09:13 raym joins (~ray@45.64.220.151)
13:09:31 toorevitimirp joins (~tooreviti@117.182.180.8)
13:11:34 alx741 joins (~alx741@186.178.110.217)
13:13:16 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
13:13:30 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
13:13:37 leonardys joins (~leonard@118.136.193.138)
13:13:53 acidjnk_new joins (~acidjnk@p200300d0c722c4250563aaf4e4b49ebb.dip0.t-ipconnect.de)
13:17:26 hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
13:17:47 Wuzzy joins (~Wuzzy@p57a2f980.dip0.t-ipconnect.de)
13:18:04 toorevitimirp joins (~tooreviti@117.182.180.8)
13:18:15 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
13:18:28 <dminuoso> Say I have a data type `data T = T Int Float String`, and some `data Sub = Sub Int Float`, now I could write a `Lens' T Sub`. Is there a way to obtain some primitive from which I can sort of do the opposite of `view`?
13:19:17 × knupfer quits (~Thunderbi@200116b82c0d930015862ef9beb02c87.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
13:19:29 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
13:19:46 <dminuoso> The closest thing I found so far is `smash` from generic-lens, but that requires me to have an entire `T` already, Id rather be able to talk about "the whole with a hole" in a way that I can fill the hole with something.
13:19:52 <wz1000> how do I write `fmap (view foo) . view bar` with lens?
13:19:57 × hekkaidekapus{ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
13:21:24 <dminuoso> wz1000: `view (fmap foo . bar)` ?
13:21:49 <dminuoso> or.. I guess you have to flip those around
13:21:54 <dminuoso> so `view (bar . fmap foo)`
13:22:11 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
13:22:14 <dminuoso> or wait heh
13:22:17 <dminuoso> nevermind me
13:22:17 <geekosaur> or use & instead of .?
13:22:22 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:8dc5:9d83:6704:36aa:723f)
13:22:28 <geekosaur> oh, no, started with .
13:22:38 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
13:22:54 <dminuoso> wz1000: Which data type are you fmapping through?
13:23:00 <wz1000> Maybe
13:23:05 × puke quits (~vroom@217.138.252.197) (Ping timeout: 240 seconds)
13:23:08 <dminuoso> wz1000: Then you can use _Just
13:23:23 <dminuoso> so `view (bar . _Just . foo)`
13:23:26 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
13:23:48 <dminuoso> Do note, that this is no longer a lens if you do this
13:23:58 <dminuoso> It's a (affine) traversal now.
13:24:35 <wz1000> that doesn't seem to work
13:25:22 <dminuoso> % (1, Just ("foo", 2)) ^. _2 . _Just . _1 -- wz1000
13:25:23 <yahb> dminuoso: "foo"
13:26:11 <wz1000> % (1, Nothing) ^. _2 . _Just . _1
13:26:11 <yahb> wz1000: ; <interactive>:121:1: error:; * Could not deduce (Field1 a0 a0 b b); from the context: (Monoid b, Field1 a a b b); bound by the inferred type for `it':; forall b a. (Monoid b, Field1 a a b b) => b; at <interactive>:121:1-31; The type variable `a0' is ambiguous; * In the ambiguity check for the inferred type for `it'; To defer the ambiguity check
13:26:21 <dminuoso> Though note, that (^.) is a bit misbehaved here
13:26:29 <dminuoso> % (1, Nothing :: Maybe (String, Int)) ^. _2 . _Just . _1
13:26:29 <yahb> dminuoso: ""
13:26:31 <dminuoso> You probably want
13:26:35 <dminuoso> % (1, Nothing :: Maybe (String, Int)) ^.. _2 . _Just . _1
13:26:35 <yahb> dminuoso: []
13:26:35 × dxld quits (~dxld@rush.pub.dxld.at) (Remote host closed the connection)
13:26:47 <dminuoso> % (1, Just ("foo", 2)) ^.. _2 . _Just . _1 -- wz1000
13:26:48 <yahb> dminuoso: ["foo"]
13:26:51 troydm joins (~troydm@unaffiliated/troydm)
13:27:05 <wz1000> I want a Maybe in the end
13:27:10 <dminuoso> then use preview
13:27:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 258 seconds)
13:27:33 <dminuoso> % (1, Just ("foo", 2)) ^? _2 . _Just . _1 -- wz1000
13:27:34 <yahb> dminuoso: Just "foo"
13:27:38 <wz1000> thanks, that worked
13:27:39 <dminuoso> % (1, Nothing :: Maybe (String, Int)) ^? _2 . _Just . _1
13:27:39 <yahb> dminuoso: Nothing
13:28:15 <dminuoso> wz1000: Hence my statement, this is an (affine) traversal now. :)
13:28:29 <dminuoso> Because its a prism composed with a lens
13:28:52 fendor_ is now known as fendor
13:30:33 <dminuoso> dolio: That reminds me, you were arguing that affine traversals were useless, right?
13:30:45 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
13:33:19 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:33:42 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:33:42 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
13:35:38 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
13:38:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
13:39:47 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
13:39:52 pako joins (~pako@dynamic-077-011-056-217.77.11.pool.telefonica.de)
13:39:53 ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
13:39:56 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Ping timeout: 240 seconds)
13:41:05 × pako8128 quits (~pako@dynamic-078-055-055-045.78.55.pool.telefonica.de) (Ping timeout: 240 seconds)
13:47:07 urodna joins (~urodna@unaffiliated/urodna)
13:49:06 geekosaur joins (82650c7a@130.101.12.122)
13:49:30 × hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
13:49:48 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:49:50 hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
13:50:49 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:8dc5:9d83:6704:36aa:723f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:50:57 _bo joins (~bo@178.150.122.153)
13:53:57 carlomagno1 joins (~cararell@148.87.23.11)
13:54:08 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
13:54:26 × leonardys quits (~leonard@118.136.193.138) (Quit: WeeChat 3.0)
13:56:24 × carlomagno quits (~cararell@148.87.23.9) (Ping timeout: 246 seconds)
14:00:13 × hexfive quits (~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
14:00:15 vicfred joins (~vicfred@unaffiliated/vicfred)
14:00:40 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:02:41 hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
14:02:55 × j2t quits (~user@84.122.202.215.dyn.user.ono.com) (Ping timeout: 272 seconds)
14:06:15 aggin joins (~ecm@103.88.87.30)
14:08:45 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
14:08:50 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
14:10:42 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
14:10:54 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
14:10:54 × srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
14:10:58 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
14:11:11 hexo joins (~hexo@gateway/tor-sasl/hexo)
14:11:13 srk joins (~sorki@gateway/tor-sasl/sorki)
14:11:19 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:12:44 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
14:13:04 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 240 seconds)
14:13:10 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
14:14:25 mouseghost joins (~draco@wikipedia/desperek)
14:15:20 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
14:15:33 × raym quits (~ray@45.64.220.151) (Quit: leaving)
14:15:45 <kuribas> dminuoso: what's wrong with a manual written lens?
14:15:45 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
14:16:05 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
14:16:05 <maralorn> Is there a general way to get a getter over a functor. i.e. I have a (Lens' t a) can I get a getter (Functor f => Getter (f t) (f a)) out of that?
14:16:23 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
14:16:39 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-ynahtdsvesgrjyig)
14:17:06 deviantfero joins (~deviantfe@190.150.27.58)
14:17:38 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
14:18:49 edge563 joins (~edge563@gateway/tor-sasl/edge563)
14:20:36 nbloomf joins (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774)
14:21:29 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774) (Client Quit)
14:21:33 × Rudd0 quits (~Rudd0@185.189.115.108) (Read error: Connection reset by peer)
14:21:49 × Vaxu quits (~vaxaren@melkki.cs.helsinki.fi) (Remote host closed the connection)
14:21:49 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-ynahtdsvesgrjyig) (Ping timeout: 272 seconds)
14:22:47 <kuribas> I don't think so.
14:23:21 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
14:23:25 knupfer joins (~Thunderbi@i5E86B4E7.versanet.de)
14:23:53 <kuribas> but you have a Lens' ?
14:23:59 <kuribas> a Lens' is a Getter...
14:26:11 <kuribas> well, to (map (view l)) I suppose?
14:26:24 <kuribas> :t \l -> to (map (view l))
14:26:25 <lambdabot> (Contravariant f, Profunctor p) => Getting b s b -> Optic' p f [s] [b]
14:27:00 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
14:27:05 × son0p quits (~son0p@181.58.39.182) (Quit: Lost terminal)
14:27:30 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) (Remote host closed the connection)
14:27:33 frozenErebus joins (~frozenEre@94.128.81.133)
14:27:40 <kuribas> :t \l -> to (fmap (view l))
14:27:41 <lambdabot> (Functor f1, Contravariant f2, Profunctor p) => Getting b s b -> Optic' p f2 (f1 s) (f1 b)
14:27:59 × aggin quits (~ecm@103.88.87.30) (Quit: WeeChat 3.0)
14:28:07 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 260 seconds)
14:28:22 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
14:28:46 aggin joins (~ecm@103.88.87.30)
14:29:23 usr25 joins (~usr25@unaffiliated/usr25)
14:29:24 <kuribas> :t \l -> to (fmap (view l)) :: Functor f => Lens' t a -> Getter (f t) (f a)
14:29:25 <lambdabot> error:
14:29:25 <lambdabot> • Couldn't match type ‘f3’ with ‘(->) (f2 a1)’
14:29:25 <lambdabot> ‘f3’ is a rigid type variable bound by
14:29:55 <kuribas> hmmm
14:30:35 Sheilong joins (uid293653@gateway/web/irccloud.com/x-rmqlmapjlqmrixrd)
14:31:23 <kuribas> :t \l -> to (fmap (view l)) :: Functor f => Lens' t a -> Getting (f t) (f a)
14:31:24 <lambdabot> error:
14:31:24 <lambdabot> • Expecting one more argument to ‘Getting (f t) (f a)’
14:31:24 <lambdabot> Expected a type, but ‘Getting (f t) (f a)’ has kind ‘* -> *’
14:31:48 <kuribas> :t \l -> to (fmap (view l)) :: Functor f => Lens' t a -> Getting r (f t) (f a)
14:31:49 <lambdabot> error:
14:31:49 <lambdabot> • Couldn't match type ‘Const r1 (f1 t1)’
14:31:49 <lambdabot> with ‘f1 a1 -> Const r1 (f1 a1)’
14:32:30 BrainZero joins (~BrainZero@117.151.212.190)
14:32:32 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
14:33:33 × Graf_Blutwurst quits (~grafblutw@2001:171b:226e:adc0:594f:a254:e4f0:4085) (Ping timeout: 258 seconds)
14:33:46 <maralorn> I think I found what I was looking for.
14:33:51 <ph88^> does anyone know a good method to print haskell source code ? i would like to generate a bunch of code based on a json file
14:33:59 <ph88^> pretty print *
14:34:05 <kuribas> ph88^: template haskell
14:34:06 <maralorn> :t mapping
14:34:07 <lambdabot> (Profunctor p, Functor f1, Functor g, Functor f2) => AnIso s t a b -> p (f1 a) (f2 (g b)) -> p (f1 s) (f2 (g t))
14:34:14 <dminuoso> ph88^: Do you want to generate entire modules, or just code fragments?
14:34:27 × LKoen quits (~LKoen@252.248.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.”)
14:34:45 <ph88^> dminuoso, entire modules i think
14:34:53 <dminuoso> ph88^: haskell-src-exts then.
14:34:56 <dminuoso> There aren't any other options.
14:35:02 <dminuoso> Aside from manually pretty printing, of coruse.
14:35:18 <dminuoso> ph88^: Also note, haskell-src-exts-simple and haskell-src-exts-qq as useful helper libraries.
14:35:20 <ph88^> ah thanks :)
14:35:33 Graf_Blutwurst joins (~grafblutw@adsl-178-38-234-220.adslplus.ch)
14:35:53 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-wgfcuzmvwlfenrsp)
14:36:12 <dminuoso> Sadly, you cant neatly generate haddock documentation with this. :(
14:36:21 <dminuoso> But oh well, it's a start.
14:36:55 <ph88^> i heard ghc-lib is now better to use that haskell-src-exts what do you think dminuoso ?
14:37:44 knupfer1 joins (~Thunderbi@200116b82c0d930089762818f39946b5.dip.versatel-1u1.de)
14:37:54 <dminuoso> ph88^: For parsing, yes. For generating, no.
14:38:03 <ph88^> but ok .. main point is that these libs seem to be the only option
14:38:11 <ph88^> how come it doesn't generte ?
14:38:15 BrainZero8 joins (~BrainZero@117.151.212.190)
14:38:37 <dminuoso> ghc-lib is, as the name suggests, just API exposed by GHC itself. So it wasn't designed with ergonomics for code generation in mind.
14:38:46 <geekosaur> why would it? ghc isn';t about generating haskell source
14:38:57 <geekosaur> (it does do splices but those generate AST nodes, not source)
14:38:57 <ph88^> do you know if i can write the haskell code as it would be generated first ... and then from there somehow get the expressions from haskell-src-exts that would generate them ?
14:39:16 <dminuoso> ph88^: Yes. You can use haskell-src-exts-qq for exactly that.
14:39:24 Anthaas joins (~Anthaas@unaffiliated/anthaas)
14:39:26 <dminuoso> In fact, I use these quasiquoters even directly in source code
14:39:28 <ph88^> super :)
14:39:35 <dminuoso> They even allow splicing, making it very comfortable
14:39:38 × BrainZero quits (~BrainZero@117.151.212.190) (Ping timeout: 264 seconds)
14:39:40 <ph88^> what do you use them for ?
14:39:48 <ph88^> generate modules ?
14:40:03 <ph88^> do you have a simple example of haskell-src-exts-qq ?
14:40:10 <dminuoso> There's a technical specification for a network protocol. So I use the above packages to generate serializers/deserializers from it
14:40:32 × knupfer quits (~Thunderbi@i5E86B4E7.versanet.de) (Ping timeout: 256 seconds)
14:40:33 knupfer1 is now known as knupfer
14:40:34 <dminuoso> https://hackage.haskell.org/package/haskell-src-exts-qq-0.7/docs/Language-Haskell-Exts-QQ.html
14:40:37 <dminuoso> Shows some simple examples
14:41:14 <dminuoso> And since haskell-src-exts-simple is just pattern synonyms, these three packages fit together seamlessly.
14:41:20 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:41:36 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
14:41:51 <ph88^> what technical specification of network protocol ?
14:42:03 <dminuoso> It's for a RADIUS implementation
14:42:30 <dminuoso> It'll be released when I have something in a working and stable condition. :)
14:42:49 <ph88^> you're into accounting ?
14:43:12 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
14:43:40 <ph88^> never heard about this, no idea what it is for
14:43:47 <dminuoso> So in our company we use RADIUS in various spots, it's a commonly spoken protocol in networking gear, usually for authentication
14:43:57 <ph88^> oh ok
14:44:32 <ph88^> i would like to generate some api's from OpenAPI 3.0
14:44:34 <dminuoso> But we twist the usage. Rather than taking say freeRADIUS, we have custom written RADIUS servers. That allows us to programmatically control the interaction for blackbox devices
14:44:38 × aggin quits (~ecm@103.88.87.30) (Remote host closed the connection)
14:45:07 <ph88^> i saw there are already implementations for OpenAPI 2.0 and swagger 2 and then i could use a converter and safe myself the effort . but then i would also miss out on the fun :P
14:45:12 aggin joins (~ecm@103.88.87.30)
14:46:16 <dminuoso> One future use we have, is that ISC KEA DHCP allows deferring DHCP requests to RADIUS. So this would give us programmatic control how to answer DHCP requests, by writing a custom server that speaks RADIUS on one side, and then does whatever internally
14:46:48 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds)
14:46:58 <dminuoso> DHCP is something you definitely dont want to implement yourself, and existing implementations only work with static databases, with very poor programmatic interfaces
14:47:21 × aggin quits (~ecm@103.88.87.30) (Remote host closed the connection)
14:48:11 <dminuoso> But since KEA has that RADIUS interface... all you now need is a programmable RADIUS server. And that
14:48:12 <maralorn> Hm, I can write this code "lookupTasksM ^. mapping (mapping (mapping (mapping #description)))" the question is if I should.^^
14:48:16 cgadski joins (~cgadski@a95-95-106-208.cpe.netcabo.pt)
14:48:20 <dminuoso> is what we already have libraries for
14:48:25 <maralorn> It’s really funny how I apply a lens here 4 functors deep.
14:49:04 aggin joins (~ecm@103.88.87.30)
14:49:06 <dminuoso> ph88^: So the RADIUS code genrator is just an automation to replace our handcrafted RADIUS library (which misses many attributes)
14:50:56 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 240 seconds)
14:53:07 <ph88^> that's nice :)
14:57:39 × deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
14:57:51 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
14:58:09 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
14:58:36 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
14:59:14 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
15:00:46 × knupfer quits (~Thunderbi@200116b82c0d930089762818f39946b5.dip.versatel-1u1.de) (Quit: knupfer)
15:00:54 knupfer joins (~Thunderbi@200116b82c0d9300e5f40a4056dc7b94.dip.versatel-1u1.de)
15:01:05 × edge563 quits (~edge563@gateway/tor-sasl/edge563) (Ping timeout: 268 seconds)
15:01:05 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 268 seconds)
15:02:46 × xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
15:03:36 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
15:04:28 <wz1000> is it possible to get the CallStack while catching an exception?
15:05:08 <merijn> Partially, I think?
15:06:21 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:06:36 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
15:06:56 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
15:08:00 <wz1000> how?
15:08:13 Guest_39 joins (57443851@87.68.56.81.cable.012.net.il)
15:08:55 <wz1000> printf debuggging has given me the answer for now, but it would be good to know for next time
15:09:58 <merijn> wz1000: You gotta capture it with the exception/throw, I thought there was already some work on that, but maybe not yet: https://gitlab.haskell.org/ghc/ghc/-/issues/12096
15:11:57 <Guest_39> Hello :)
15:11:58 <Guest_39> Does anyone here know how to get the Haskell extension to work on VS Code with Windows? I'm getting the error "haskell-language-server 0.9.0 for GHC 8.10.4 is not available on Windows_NT". Do I have to downgrade GHC or is this fixable?
15:11:58 <Guest_39> Also, if this isn't the right place to ask, please let me know and I'll ask somewhere else.
15:12:22 <merijn> 8.10.4 has only been out for...2-3 days?
15:12:30 <merijn> I expect no one made binaries yet
15:12:47 <Guest_39> I see, I only started learning Haskell yesterday haha
15:12:53 <Guest_39> Thanks!
15:13:14 <merijn> I just checked, it was released 3 days ago, yeah
15:13:27 bitmagie joins (~Thunderbi@200116b8062cd500b8e38d3564dffed2.dip.versatel-1u1.de)
15:13:43 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
15:13:45 <merijn> There's a #haskell-language-server channel iirc, they might now if and how soon binaries may be available
15:14:02 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 265 seconds)
15:14:05 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
15:14:14 <Guest_39> Great, thank you
15:14:25 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:15:11 Guest_39 is now known as boolean_coercion
15:15:53 <swarmcollective> Guest_39, If it suites your environment, you can run a vscode devcontainer, I have this working with the latest release version of the Haskell docker image (GHC 8.10.2) and the HLS.
15:16:30 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
15:16:47 <boolean_coercion> I don't think I'm familiar with that, I'll look it up :p
15:17:20 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Remote host closed the connection)
15:17:46 <swarmcollective> boolean_coercion see also: https://github.com/calledtoconstruct/haskell-hls-devcontainer
15:17:47 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
15:18:07 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
15:18:33 <boolean_coercion> Thank you :D
15:19:21 <swarmcollective> Automate all the things!
15:22:26 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Ping timeout: 240 seconds)
15:23:08 × aggin quits (~ecm@103.88.87.30) (Quit: WeeChat 3.0)
15:23:27 aggin joins (~ecm@103.88.87.30)
15:24:18 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
15:25:05 <maralorn> I have masters degree in optics and still finding the right lens for every job is so hard …
15:26:57 × bitmagie quits (~Thunderbi@200116b8062cd500b8e38d3564dffed2.dip.versatel-1u1.de) (Quit: bitmagie)
15:28:45 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 258 seconds)
15:29:10 <dminuoso> "masters degree in optics"
15:29:12 <dminuoso> heh
15:29:31 <merijn> I have a masters in not using lens :p
15:29:45 Jd007 joins (~Jd007@162.156.11.151)
15:30:27 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
15:32:42 <siraben> this is voodoo https://oleg.fi/gists/posts/2017-04-18-glassery.html
15:33:26 × toorevitimirp quits (~tooreviti@117.182.180.8) (Remote host closed the connection)
15:34:21 zaquest joins (~notzaques@5.128.210.178)
15:35:39 × BrainZero8 quits (~BrainZero@117.151.212.190) (Quit: The Lounge - https://thelounge.chat)
15:35:56 <merijn> "oleg", "voodoo" <- duh
15:36:04 <merijn> Ah, wait, wrong Oleg :p
15:36:06 <maralorn> Why is filtered in Optics.AffineFold only defined for AffineFold? Why is it not defined for any Fold?
15:39:38 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:8be8:9a09:6ec5:6271) (Ping timeout: 264 seconds)
15:39:57 LKoen joins (~LKoen@252.248.88.92.rev.sfr.net)
15:40:16 × boolean_coercion quits (57443851@87.68.56.81.cable.012.net.il) (Quit: Connection closed)
15:41:35 <dminuoso> maralorn: Do take a look at the signature, it should reveal it.
15:41:43 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds)
15:41:56 <dminuoso> filtered :: (a -> Bool) -> AffineFold a a
15:42:16 <dminuoso> Note `AffineFold a a`
15:42:35 <dminuoso> It's a sort of "predicate optic"
15:43:40 <dminuoso> You can compose it with another optic, and then you have a regular fold
15:43:42 <dminuoso> say
15:43:47 <dminuoso> folded % filtered even
15:44:40 <maralorn> dminuoso: aaah
15:45:20 <maralorn> I thought Fold % AffineFold -> AffineFold, but it's Fold % AffineFold -> Fold
15:46:07 <maralorn> dminuoso: I just read an AffineFold contains at most one item and was like, no I want to fold more than one …
15:46:11 <dminuoso> maralorn: Right. composition gives you the least upper bound (in terms of supertypes) between the optics.
15:46:13 edge563 joins (~edge563@gateway/tor-sasl/edge563)
15:46:24 <dminuoso> maralorn: In fact, if you stare at the diagram, there's no other way.
15:46:39 <maralorn> dminuoso: Yeah, true.
15:47:03 <dminuoso> https://hackage.haskell.org/package/optics-0.3/docs/diagrams/optics.png
15:48:05 <maralorn> dminuoso: I have in fact been staring at that 10 minutes ago. I just didn‘t connect the dots.
15:48:27 × orion quits (~orion@unaffiliated/orion) (Quit: "")
15:48:32 <dminuoso> maralorn: Here'a few things perhaps to consider, to burn it deeper into mind:
15:48:52 <dminuoso> If your assumption was right, everything had to be an Iso!
15:49:05 <dminuoso> (that is, everything would gracefully degrade into an iso)
15:49:18 <dminuoso> and it should be equally obvious that composing a lens with a prism doesnt magically give you an iso
15:51:06 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
15:51:20 <dminuoso> You can always "upcast" an optic to a supertype
15:51:25 st8less joins (~st8less@2603:a060:11fd:0:3efe:606d:10d6:2ef7)
15:51:48 <dminuoso> (via castOptic)
15:54:26 <maralorn> Is there a neater way to write "has _a x && has _b x"?
15:55:17 <maralorn> As in is there an f so that I can write "has (f _a _b) x"?
15:55:39 dandart joins (~Thunderbi@home.dandart.co.uk)
15:55:50 <dminuoso> maralorn: Do you need this to scale out further? Or do you only need two optics?
15:56:44 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Ping timeout: 258 seconds)
15:57:53 <dminuoso> Such a thing would look similar to `choosing` from `lens` I guess
15:58:03 <Zemyla> Does lambdabot support LinearTypes yet?
15:58:07 <merijn> lol
15:58:12 deviantfero joins (~deviantfe@190.150.27.58)
15:58:30 <merijn> I don't think lambdabot even uses GHC 8.10, let alone a few day old 9.0
15:59:07 <dminuoso> maralorn: Mmm, I guess alongside is that thing.
15:59:47 <dminuoso> But it only works for Lens
15:59:49 <Zemyla> Also, is there a Comonoid class in 9.10?
16:00:04 × sajith[m] quits (sajithmatr@gateway/shell/matrix.org/x-ztroytevzeorgtwr) (Quit: Idle for 30+ days)
16:00:22 <dminuoso> Comonoid?
16:00:31 <dminuoso> What methods would you expect it to have?
16:00:57 <dminuoso> Just `class Comonoid w where split :: w -> (w, w)` ?
16:01:03 <Zemyla> class Comonoid a where { delete :: a %1 -> (); dup :: a %1 -> (a, a) }
16:01:10 <dminuoso> Well, `delete` is redundant in haskell
16:01:11 <Taneb> Ah, linear comonoid? I don't think so
16:01:15 <dminuoso> So this would, at best, be Cosemigroup
16:01:16 <Taneb> dminuoso: it's not with linear types
16:01:18 <dminuoso> Oh
16:01:29 <dminuoso> Taneb: Ah, because it consumes a thing?
16:01:35 <Taneb> Yeah
16:01:38 <dminuoso> (sort of proof of destroying it?)
16:01:42 <Zemyla> instance Comonoid Bool where { delete x = if x then () else (); dup x = if x then (True, True) else (False, False) }
16:01:42 <Taneb> Like closing a file I guess maybe
16:01:45 <dminuoso> I see
16:01:51 × jlamothe quits (~jlamothe@198.251.55.207) (Quit: leaving)
16:02:37 <maralorn> dminuoso: That is the function I am obessing about to make "even lensier". https://paste.linuxlounge.net/A3CAM
16:02:41 × viluon quits (uid453725@gateway/web/irccloud.com/x-drkyubrfndbftqpp) (Quit: Connection closed for inactivity)
16:03:55 <lortabac> Zemyla: I am not familiar with linear types, but AFAIK this is the reference library https://github.com/tweag/linear-base
16:04:11 <Zemyla> instance (Comonoid a, Comonoid b) => Comonoid (Either a b) where { delete (Left a) = delete a; delete (Right b) = delete b; dup (Left a) = case dup a of (al, ar) -> (Left al, Left ar); dup (Right b) = case dup b of (bl, br) -> (Right bl, Right br) }
16:04:18 Rudd0 joins (~Rudd0@185.189.115.103)
16:04:34 <Taneb> maralorn: why "not . any (`notElem` xs)" rather than "all (`elem` xs)"? I think that's equivalent
16:05:12 <Zemyla> And then similar for (Comonoid a, Comonoid b) => Comonoid (a, b), and you can build things such as Comonoid a => Comonoid [a] from that.
16:05:21 <dminuoso> maralorn: I see, you could use `failing` perhaps. But Im not sure whether that improves things.
16:08:01 nbloomf joins (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774)
16:10:33 × cgadski quits (~cgadski@a95-95-106-208.cpe.netcabo.pt) ()
16:12:45 × alx741 quits (~alx741@186.178.110.217) (Ping timeout: 240 seconds)
16:12:48 jlamothe joins (~jlamothe@198.251.55.207)
16:15:57 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
16:16:39 frozenErebus joins (~frozenEre@94.128.81.133)
16:16:45 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
16:17:47 × Guest38639 quits (~uptime@195.140.213.38) (Remote host closed the connection)
16:18:16 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
16:20:54 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:22:27 mjuker joins (2fe3e53b@047-227-229-059.res.spectrum.com)
16:22:44 <mjuker> why is haskell's type system so powerful (explaining to a layperson not in fp)?
16:23:37 <merijn> That's not really an answerable question
16:23:45 <merijn> What does "powerful type system" even mean?
16:23:58 <mjuker> i'm not sure, one of the appeals of haskell seems to be the type system
16:24:11 <mjuker> actually i am not haskell or functional programmer :)
16:24:23 <dminuoso> Yes. We have an "expressive" type system. What that means is a bit difficult to explain, if you have not experienced such type systems before.
16:24:23 <mjuker> but i tried haskell for a while and it definitely seemed.. awkward
16:24:31 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
16:24:33 <dminuoso> mjuker: Perhaps, I could show you a motivating example?
16:24:36 <mjuker> sure!
16:25:04 nhs joins (~nhs@c-24-20-87-79.hsd1.or.comcast.net)
16:25:15 guest7682358928 joins (c9dbeab6@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.182)
16:25:33 <dminuoso> So we can define a data type `data Maybe a = Just a | Nothing`. This reads a bit strange, but means "We can have values of `Just x` (for some value of `x`) or `Nothing` that are of type `Maybe t` (for some type of 't').
16:25:41 <dminuoso> This lets us say something like
16:25:52 × acidjnk_new quits (~acidjnk@p200300d0c722c4250563aaf4e4b49ebb.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
16:25:57 × xff0x quits (~xff0x@2001:1a81:52ef:4b00:26eb:2d4f:3068:b37d) (Ping timeout: 272 seconds)
16:26:03 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
16:26:07 <dminuoso> `f :: Int -> Maybe Char` (f is a function taking an Int, and returns a Maybe Char)
16:26:20 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-wgfcuzmvwlfenrsp) (Quit: Connection closed for inactivity)
16:26:26 <mjuker> ok, right, actually i have about 2 months experience so i'm not completely new and have seen maybe types before :)
16:26:38 <dminuoso> Oh well, that makes things simpler then.
16:26:44 xff0x joins (~xff0x@2001:1a81:52ef:4b00:7f05:4372:d82:2cde)
16:26:46 <dminuoso> Maybe itself lets us tag in the type system where values might be missing.
16:26:53 <dminuoso> It avoids all the annoyance and problems that `null` has
16:27:11 <dminuoso> It forces us to deal with Nothing (since the only way to access the value inside a Maybe is by pattern matching)
16:27:35 <mjuker> do you have other motivating examples? :P
16:27:38 <dminuoso> So with this simple parametrized data type, we have ruled out a huge class of bugs.
16:28:47 <mjuker> for example it feels like functors are doing something imperative languages can't do, but i can't pinpoint what exactly
16:28:48 jamm_ joins (~jamm@unaffiliated/jamm)
16:29:21 <dminuoso> Well so the special thing about Functor, is that we can talk about higher kinded types in typeclasses.
16:29:26 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Ping timeout: 264 seconds)
16:29:29 × aggin quits (~ecm@103.88.87.30) (Quit: WeeChat 3.0)
16:29:37 <dminuoso> Taking the above example `Maybe` itself is a valid type-level entity.
16:29:43 × dandart quits (~Thunderbi@home.dandart.co.uk) (Quit: dandart)
16:30:05 <dminuoso> (That is, not just `Maybe Char`, but just the plain `Maybe`. It acts like a function, but on the type level. Our typeclass system lets us describe interfaces for such types
16:30:46 <dminuoso> `class Functor (f :: * -> *) where fmap :: (a -> b) -> f a -> f b` is a typeclass, whose members/instances are type functions of kind * -> *
16:31:19 <dminuoso> We sort of lift the expressivitivity of functions and their abstraction to the type system
16:31:49 <dminuoso> Just like we can pass functions as first-class entities in the value level, we can talk about "function types" as first-class entities in the type level
16:32:16 <dminuoso> Most languages cant even talk about higher kinded things, which is why they are not expressible in many languages reasonably
16:33:06 <mjuker> but why is this useful?
16:33:38 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
16:33:40 <mjuker> i mean, i see what it can do, but in my work in industry using haskell i don't think i ever used functors to do something i can't normally do with a language like java
16:34:13 <mjuker> (though i only have 2 months experience so maybe i just haven't seen much)
16:34:31 <merijn> mjuker: You can do basically anything in any language
16:34:32 <raehik> Haskell gives you more power to reuse concepts like functors, across way more things
16:34:37 <merijn> The question is "how hard is it?"
16:34:48 <mjuker> yeah, i guess i'm asking for things functors make really easy that is hard in other languages
16:35:04 ubert joins (~Thunderbi@p200300ecdf25d98ec503597832e79f8c.dip0.t-ipconnect.de)
16:35:30 <raehik> oh, mapping over data then
16:35:37 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
16:35:52 <raehik> that's easier in other languages nowadays, but you may be quite limited in flexibility vs. Haskell
16:36:08 <mjuker> could you elaborate?
16:36:22 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
16:37:41 <dsal> elm has functors, but it doesn't have type classes, so anything you might want to do with a functor has to be written for the specific type you want to do it with. You don't get to reuse functionality nearly enough.
16:37:57 <lortabac> mjuker: one random example: 'data Tree a = Leaf a | Branch (Tree a) (Tree a) deriving (Functor, Foldable, Traversable)' and you get mapping, folding, flattening, traversing etc. for free
16:38:37 <raehik> yeah, I was trying to think of an example using lists
16:39:00 <raehik> but where Haskell shines where other langs don't, is operations over tree-likes (not just lists)
16:39:10 jamm_ joins (~jamm@unaffiliated/jamm)
16:39:38 <dsal> functors aren't all collections. Maybe is one of the first I think of. Or monads.
16:40:08 <tdammers> or ->
16:40:29 × mud quits (~mud@unaffiliated/kadoban) (Read error: Connection reset by peer)
16:40:36 <tdammers> also: lack of typeclasses is one of the top things I hate about Elm
16:41:10 <dsal> > succ <$> Just 1 -- this is a thing you do in many languages, but without functors, it's either boilerplate or a bug.
16:41:12 <lambdabot> Just 2
16:41:52 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
16:42:18 <raehik> much of Java's powerful type abstractions came over from functional programming, squished into a Java shape
16:42:19 Deide joins (~Deide@217.155.19.23)
16:42:20 <ephemient> Maybe is a 0/1-size collection and ((->) a) is an |a|-size collection ;)
16:42:45 <tdammers> fwiw, modelling dictionaries as functions is sometimes convenient / useful
16:42:46 <raehik> Java-shaped things are pretty nice to use in Java, since there's no required purity and so on
16:42:55 <dsal> I disagree with that ^
16:43:08 <raehik> (oh, sorry, who)
16:43:19 <dsal> Oh, I just don't find anything nice to use in java.
16:43:27 <raehik> lol
16:43:30 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
16:43:34 <tdammers> insert k v f = \x -> if x == k then v else f x
16:43:48 <raehik> I meant that many functional concepts really work OK in Java and Python now. but it was due to langs like Haskell existing for years beforehand
16:44:02 <raehik> and the squishing that took place meant an awful lot of generality lost
16:44:35 <dsal> Yeah, makes sense. But it always works like, "this is the part of the balloon we won't poke holes in."
16:45:18 jamm_ joins (~jamm@unaffiliated/jamm)
16:45:20 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
16:46:43 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Remote host closed the connection)
16:46:49 × tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
16:47:31 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
16:48:45 hiroaki joins (~hiroaki@2a02:908:4b18:8c40::e69c)
16:50:25 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:52:14 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Ping timeout: 264 seconds)
16:52:37 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
16:53:04 × dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing)
16:53:23 dexterlb joins (~dexterlb@2a01:9e40:2:2::2)
16:54:02 bo_ joins (~bo@178.150.122.153)
16:54:44 × mjuker quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Quit: Connection closed)
16:55:25 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Remote host closed the connection)
16:57:00 todda7 joins (~torstein@athedsl-258913.home.otenet.gr)
16:57:06 × _bo quits (~bo@178.150.122.153) (Ping timeout: 256 seconds)
17:00:37 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
17:01:20 × knupfer quits (~Thunderbi@200116b82c0d9300e5f40a4056dc7b94.dip.versatel-1u1.de) (Remote host closed the connection)
17:01:28 knupfer joins (~Thunderbi@200116b82c0d930058e1c1800888edf9.dip.versatel-1u1.de)
17:02:42 <Logio> yeah, I've tried using functor-like generalizations in Python, but they tend to fail since there's no purity enforcement
17:02:48 m4v1 joins (~m4v@185.204.1.185)
17:02:50 geekosaur joins (82650c7a@130.101.12.122)
17:02:58 × andrybak quits (andrybak@gateway/vpn/privateinternetaccess/andrybak) (Quit: I have to go now)
17:03:03 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
17:03:37 <Logio> there's always some code that doesn't keep the structure intact and screws up everything
17:06:16 fmesqg joins (4d3669c0@77.54.105.192)
17:06:24 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-llhqfmqnlvacscpp)
17:10:09 alx741 joins (~alx741@186.178.110.250)
17:15:08 × kuribas quits (~user@ptr-25vy0i6svrvzmuie26v.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
17:15:16 × deviantfero quits (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
17:15:17 × kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
17:16:45 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds)
17:17:23 × edge563 quits (~edge563@gateway/tor-sasl/edge563) (Quit: edge563)
17:20:38 tomsmeding joins (~tomsmedin@2a03:b0c0:0:1010::767:3001)
17:20:52 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
17:22:18 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
17:23:45 × hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Disconnected by services)
17:23:45 hyperisco_ joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
17:26:16 conal joins (~conal@64.71.133.70)
17:26:41 <danza> tdammers, interesting, how would you use that @insert@?
17:27:00 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
17:27:23 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
17:29:45 conal_ joins (~conal@66.115.157.19)
17:30:15 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
17:31:18 × conal quits (~conal@64.71.133.70) (Ping timeout: 265 seconds)
17:32:34 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Ping timeout: 258 seconds)
17:32:57 × ubert quits (~Thunderbi@p200300ecdf25d98ec503597832e79f8c.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
17:36:17 × archaephyrryx quits (~archaephy@straasha.imrryr.org) ()
17:37:58 hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
17:39:31 × hyperisco_ quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 265 seconds)
17:41:47 ciobul joins (~cb@86.107.75.45)
17:42:34 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:43:16 × hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
17:43:35 × danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 265 seconds)
17:43:40 <__minoru__shirae> danza: something like this maybe? let dict = insert 1 "one" $ insert 2 "two" $ insert 3 "tree" $ \_ -> "default value"
17:44:13 danso joins (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
17:45:24 ozkutuk joins (~ozkutuk@176.240.173.98)
17:45:41 hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
17:47:08 <__minoru__shirae> dict 1
17:47:11 <danza> thanks __minoru__shirae, that's indeed a way. I think he meant it as a way to add special cases to existing functions
17:47:27 <__minoru__shirae> dict <$> [1..5]
17:47:42 nineonine joins (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f)
17:48:02 <danza> like insert 0 Nothing (\x->Just 1/x), but this won't typecheck
17:49:37 <__minoru__shirae> sounds like python's thing, forgot the name, when you label a function with another function
17:49:55 pako8128 joins (~pako@dynamic-078-054-253-137.78.54.pool.telefonica.de)
17:50:14 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
17:50:32 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
17:50:47 <danza> decorators, they are similar to higher-order functions
17:51:05 <__minoru__shirae> yeah, that's it, decorators
17:51:15 × pako quits (~pako@dynamic-077-011-056-217.77.11.pool.telefonica.de) (Ping timeout: 246 seconds)
17:51:22 <__minoru__shirae> I wonder if they're popular in python world
17:52:03 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
17:52:12 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
17:53:08 <danza> probably among pythonistas you can find many school of thoughts in favor or against decorators... :) i think that they are quite popular also outside python though
17:53:32 × nineonine quits (~nineonine@2604:3d08:7785:9600:6936:ff86:ddf8:5a0f) (Remote host closed the connection)
17:53:43 <__minoru__shirae> what do you mean outside python?
17:54:01 × ciobul quits (~cb@86.107.75.45) (Ping timeout: 265 seconds)
17:54:09 nineonine joins (~nineonine@50.216.62.2)
17:54:22 <__minoru__shirae> seems like python's decorators are halfway between higher order functions and java's annotations
17:55:29 <__minoru__shirae> I didn't like Java's annotations, I don't know why
17:56:30 <__minoru__shirae> probably because using annotations doesn't feel like programming
17:56:57 <__minoru__shirae> or rather, reading about annotations is not fun
17:57:35 <__minoru__shirae> those listings of all the parameters
17:58:34 × chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
18:01:10 chrisdotcode joins (~chrisdotc@unaffiliated/chrisdotcode)
18:03:56 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
18:04:33 <__minoru__shirae> for those who don't like to chain $'s: dict2 = (insert 1 "one" . insert 2 "two" . insert 3 "tree") $ \_ -> "default value"
18:05:31 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
18:06:47 × danso quits (~dan@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 265 seconds)
18:06:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:06:50 ciobul joins (~cb@86.107.75.45)
18:08:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:11:42 × fmesqg quits (4d3669c0@77.54.105.192) (Ping timeout: 240 seconds)
18:11:43 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds)
18:12:04 <ezzieyguywuf> I'm looking for advice - which of these two methods would you use/recommend for this "chain" data type? https://dpaste.com/8A6HP5HNP
18:14:38 <opqdonut> either will work, it all depends on what type of functions you write
18:14:56 <opqdonut> I think I'd prefer the first one, if all things are equal
18:15:00 <monochrom> It depends on how often you really care about the distinction between open and closed.
18:15:15 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
18:15:20 <opqdonut> yeah if you have lots of code that handles open & closed the same way, the second is better
18:15:25 <ezzieyguywuf> hm, I guess my answer to "how often" would be...not often.
18:15:27 <opqdonut> if you want to make sure you never mix them up, the first one is better
18:15:47 <monochrom> E.g., if you care 1% of the time, this means the other 99% of the time, the 1st version is annoying to use.
18:16:04 <ezzieyguywuf> yea I think I prefer the second, because e.g. `breakChain :: Chain -> [Int]` (or something) doesn't care if the Chain is open or closed
18:16:16 ezzieyguywuf nods
18:16:17 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
18:16:25 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:16:27 <ezzieyguywuf> I was thinking along the same lines, but just wanted to bounce it off of some folks
18:16:30 <ezzieyguywuf> thanks :)
18:16:34 × hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
18:16:53 hekkaidekapus} joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
18:17:13 <monochrom> Actually, maybe not. data Chain = OpenChain{getIndices :: [Int]} | ClosedChain{getIndices :: [Int]} may be the best of both worlds.
18:17:35 edge563 joins (~edge563@gateway/tor-sasl/edge563)
18:17:38 <monochrom> Yes you can have the same field name across different constructors!
18:17:51 <ezzieyguywuf> monochrom: yes, I've considered this too.
18:17:58 <ezzieyguywuf> but also...it *feels* wrong.
18:18:00 <ezzieyguywuf> i.e. prone to error
18:18:14 <ezzieyguywuf> just a gut feeling though.
18:18:17 × knupfer quits (~Thunderbi@200116b82c0d930058e1c1800888edf9.dip.versatel-1u1.de) (Remote host closed the connection)
18:18:28 knupfer joins (~Thunderbi@200116b82c0d93006c6f5a099be9de07.dip.versatel-1u1.de)
18:18:47 × ozkutuk quits (~ozkutuk@176.240.173.98) (Quit: Leaving)
18:19:51 <opqdonut> yea I was about to mention that you can just implement a getIndices :: Chain -> [Int] for the first case manually
18:19:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
18:19:59 <opqdonut> the only distinction then is that you can't talk about _just_ the type of a chain
18:20:08 <opqdonut> since you lack the Open|Closed enum
18:20:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:21:06 <ezzieyguywuf> so my key takeaway is that any of these three are valid, and neither are considered inherently "wrong" or "poor coding practice"
18:21:13 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 272 seconds)
18:21:18 <ezzieyguywuf> which is the type of takeaway I was hoping to....take away.
18:21:30 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 268 seconds)
18:23:31 danso joins (~dan@d67-193-121-2.home3.cgocable.net)
18:25:02 dandart joins (~Thunderbi@home.dandart.co.uk)
18:25:10 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
18:25:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:25:58 <dminuoso> 17:42:45 tdammers | fwiw, modelling dictionaries as functions is sometimes convenient / useful
18:26:13 <dminuoso> The one thing I dislike about explicit dictionary passing, is that you suddenly lose the guaranteed coherence
18:26:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:26:39 <monochrom> I don't think they meant that kind of dictionary.
18:26:53 <monochrom> They meant key-value stores.
18:27:31 <monochrom> Although, I would s/model/interface/
18:28:20 <tdammers> model/implement/whatever
18:28:22 <dminuoso> Ah.
18:28:36 <tdammers> it's not so much about the interface to me, as the interface I gave is pretty much the same as for, say Data.Map
18:28:47 <monochrom> implement is downright dumb. apart from being theoretically cute in mathematics
18:29:06 <monochrom> worse than [(Key,Value)] list.
18:30:38 <opqdonut> i thought it'd be ok for e.g. a small enum to small enum mapping
18:30:49 <opqdonut> e.g. `not`
18:31:04 <monochrom> To be sure it is theoretically mathematically cute in the sense that if you have barebone lambda calculus without any data structure whatsoever you can still build data structures from scratch.
18:31:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:31:44 <monochrom> In the same sense as "modeling the natural numbers as functions is sometimes <whatever adjectives you were using>"
18:32:08 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving)
18:32:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:32:34 <monochrom> opqdonut: No contention there. Along the same time, bubble sort for 3 items is fine.
18:32:59 × dandart quits (~Thunderbi@home.dandart.co.uk) (Quit: dandart)
18:33:07 <monochrom> I am also known for using a quadratic-time algorithm on a list of 200 students.
18:33:40 <monochrom> err, two such lists. I'm doing a relational join.
18:33:54 frozenErebus joins (~frozenEre@94.128.81.133)
18:34:16 <shapr> __minoru__shirae: have you thought up a project to build?
18:34:50 × danso quits (~dan@d67-193-121-2.home3.cgocable.net) (Ping timeout: 264 seconds)
18:36:06 danso joins (~dan@d67-193-121-2.home3.cgocable.net)
18:36:11 × Graf_Blutwurst quits (~grafblutw@adsl-178-38-234-220.adslplus.ch) (Quit: WeeChat 3.0)
18:37:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
18:37:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:37:47 <__minoru__shirae> shapr: I got interested in a question that was asked in this chat about inter-thread communication via IORef in lambdabot, then I got an idea to reproduce that pattern.
18:38:45 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
18:38:55 <__minoru__shirae> I think maybe playing with patterns would be interesting and more productive than searching for an idea of an app
18:39:26 <shapr> sounds good to me
18:39:43 <shapr> I've used channels from Control.Concurrent to talk to different threads.
18:41:36 <__minoru__shirae> it's interesting to see how you would talk to another thread from the bottom of a monad stack
18:42:02 × rajivr quits (uid269651@gateway/web/irccloud.com/x-zoxcuochfajdlgrd) (Quit: Connection closed for inactivity)
18:42:53 <__minoru__shirae> ideally I would separate the pattern into a minimal example
18:43:02 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
18:43:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
18:43:16 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
18:43:28 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
18:43:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:43:33 <__minoru__shirae> so that's the idea
18:47:36 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
18:51:38 × borne quits (~fritjof@200116b8646dd3007eece5d071d7bcc1.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
18:53:21 soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
18:53:28 × ciobul quits (~cb@86.107.75.45) (Ping timeout: 265 seconds)
18:54:13 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
18:55:04 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
18:57:18 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
18:57:32 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
19:00:14 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Client Quit)
19:00:19 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Remote host closed the connection)
19:00:28 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
19:01:11 jamm_ joins (~jamm@unaffiliated/jamm)
19:01:13 <__minoru__shirae> I said "it's interesting to see how you would talk to another thread from the bottom of a monad stack"
19:02:09 <shapr> __minoru__shirae: I like it!
19:02:14 <__minoru__shirae> but come to think of it, it seems like not much different from a regular monad stack
19:02:32 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:02:37 <__minoru__shirae> talking to another thread is just an IO-action, so the stack becomes IO-based, right?
19:02:45 <monochrom> Yeah, it's just a "liftIO readChan" or something.
19:02:50 <__minoru__shirae> but I want to see it in action
19:03:06 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:03:09 <shapr> __minoru__shirae: write a tiny chat server?
19:03:29 berberman joins (~berberman@unaffiliated/berberman)
19:03:38 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:04:00 <monochrom> I don't consider "talking to another thread" as so different from "talking to whatever it is on the other side of stdin and stdout"
19:04:00 <__minoru__shirae> shapr: and where would threads talk to each other?
19:04:10 Tario joins (~Tario@201.192.165.173)
19:04:11 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
19:04:24 <shapr> hm, maybe a chat server isn't the best way to demonstrate threads talking to each other
19:04:29 <monochrom> If you can "liftIO getChar" then you can "liftIO readChan"
19:04:44 <shapr> although, the read and write sides could each be their own thread?
19:04:46 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Client Quit)
19:04:47 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
19:04:54 <ph88^> how can i write a parser and a grammar definition and keep them in sync ?
19:05:02 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
19:05:02 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
19:05:12 electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
19:05:37 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
19:05:43 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds)
19:05:57 <__minoru__shirae> the thing is: I'm familiar with the concept of using channels for inter-thread communication, but using IORef? I wanted to see how that works.
19:06:39 hiptobecubic joins (~john@unaffiliated/hiptobecubic)
19:07:37 <monochrom> ph88^: I probably write the parser and hope that I can read the grammar out of it.
19:07:54 <monochrom> Sometimes I add comments to remind myself.
19:08:15 <monochrom> How do I keep comments and code in sync? The same way I keep any comments and any code in sync.
19:10:10 <ph88^> how can that be tested though ?
19:10:29 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
19:10:50 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
19:13:01 <monochrom> I write test inputs.
19:13:05 × Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 240 seconds)
19:14:29 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
19:14:40 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
19:15:01 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
19:15:54 <__minoru__shirae> shapr: "although, the read and write sides could each be their own thread?" What do you mean?
19:16:19 Tario joins (~Tario@201.192.165.173)
19:16:24 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:44db:e41f:74ac:6bd3)
19:16:34 <__minoru__shirae> I think maybe a mini-game would work as a demonstration
19:16:47 <__minoru__shirae> or mini-database
19:17:22 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
19:17:33 × danza quits (~francesco@151.53.74.130) (Quit: Leaving)
19:17:53 Steve74 joins (6207eccf@cpe-98-7-236-207.nyc.res.rr.com)
19:18:22 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
19:18:23 <__minoru__shirae> what other kind of application does allow to play with concurrency?
19:19:15 jb55 joins (~jb55@gateway/tor-sasl/jb55)
19:19:30 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
19:19:33 <merijn> __minoru__shirae: The "problem" with IORef is that you don't know when/if the IORef was updated
19:19:43 <merijn> __minoru__shirae: Whether that's a problem, depends on what you wanna do
19:19:53 × albert_42 quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) (Remote host closed the connection)
19:20:22 <merijn> __minoru__shirae: IORef is basically variables in all other languages are. A named, mutable piece of memory and anyone with the name can write to/read from it
19:21:12 albert_42 joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
19:21:51 × Steve74 quits (6207eccf@cpe-98-7-236-207.nyc.res.rr.com) (Client Quit)
19:22:03 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
19:22:24 tremon joins (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl)
19:22:39 × albert_42 quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) (Remote host closed the connection)
19:22:46 albert_42 joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
19:23:08 × knupfer quits (~Thunderbi@200116b82c0d93006c6f5a099be9de07.dip.versatel-1u1.de) (Remote host closed the connection)
19:23:32 <__minoru__shirae> merjin: good to know. Sounds like it's a "last resort" kind of solution, right?
19:23:54 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
19:24:24 soft-warm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
19:24:33 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
19:24:35 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
19:24:52 <merijn> Yes, no, maybe. They have their uses, but as you probably noticed you don't really need mutable variables as much as you thought before you started learning Haskell ;)
19:25:40 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
19:26:23 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
19:26:40 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
19:26:54 <merijn> I don't really like casting "IO" based code as "last resort". You should write what's easiest to maintain. And beginners should just write code, because nothing teaches you as much as actually doing. I think someone learning Haskell who writes code by having *everything* in IO will probably get a hang of things quicker then someone who spends days worrying about how to do something without IO, instead of
19:27:00 <merijn> implementing what they wanted to implement
19:27:35 <sm[m]> +1
19:28:33 <sm[m]> though, I don't remember as a beginner situations where doing it all in IO would have helped a lot
19:28:45 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds)
19:28:59 <sm[m]> my challenges were more about just understanding and lining up types
19:30:24 <merijn> I'm not saying "doing it all in IO" helps, just saying then "doing" helps more than "analysis paralysis and worrying about your use of IO"
19:30:56 <merijn> Haskell + tons of IO is still much nicer to work in than many/most other languages, so I don't see any point in pretending "IO == bad"
19:32:08 × hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Remote host closed the connection)
19:34:20 <koz_> Is there a way, at runtime, to determine the value of the -N rtsopt?
19:34:39 geekosaur joins (82650c7a@130.101.12.122)
19:34:54 <merijn> getNumCapabilities
19:35:00 <koz_> Thanks!
19:35:25 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
19:36:15 tvrsky joins (~tvrsky@2804:108c:c989:8901:d844:7f99:9fe0:d997)
19:36:31 <monochrom> I don't avoid IO. But I avoid avoiding advoiding IO.
19:37:07 <monochrom> In layperson terms, I avoid <getting IO involved for no particular reason>.
19:37:39 <monochrom> But that's just a special case of my general tenet avoiding <having no particular reason>.
19:37:51 × st8less quits (~st8less@2603:a060:11fd:0:3efe:606d:10d6:2ef7) (Ping timeout: 272 seconds)
19:37:53 <merijn> monochrom: Sure, but I'd argue that that is not as important for beginners as "just writing code" is :)
19:38:01 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
19:38:18 <merijn> Like, that's a good goal IFF it's not stopping you from doing something
19:38:35 × alx741 quits (~alx741@186.178.110.250) (Ping timeout: 272 seconds)
19:38:42 oish joins (~charlie@228.25.169.217.in-addr.arpa)
19:38:42 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Client Quit)
19:39:08 <monochrom> Well, in my ideal, everyone should be already avoiding <having no particular reason> as a common substrate, so the IO case shouldn't even be a big fuzz.
19:39:38 st8less joins (~st8less@inet-167-224-197-181.isp.ozarksgo.net)
19:40:17 <monochrom> But sadly most programmers prefer cargo-culting and rule-of-thumbing and best-practicing. (All euphemisms for "don't use brain".)
19:41:54 <monochrom> OK, you probably see more people paralyzing than getting things done recklessly.
19:42:31 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 258 seconds)
19:42:42 <monochrom> What I see more is more people getting things done recklessly, then cite the excuse "I have to start from somewhere", but that excuse is used to refuse to grow.
19:43:09 <merijn> monochrom: On average I tend to see more beginners here get stuck over analysing and/or throwing themselves into the Hasochism tarpit then I see people overusing IO :p
19:43:36 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
19:43:40 <__minoru__shirae> merjin: "Like, that's a good goal IFF it's not stopping you from doing something" - you see, doing something is IO-action, but they prefer pure thoughts in their heads
19:43:42 × frozenErebus quits (~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
19:44:01 <__minoru__shirae> just joking
19:45:18 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
19:45:21 <monochrom> I see my share of people who over-analyze. But not on <to IO or not to IO>. More like (\x -> x+y) vs (+ y).
19:45:46 <monochrom> And two spaces vs four.
19:46:00 <merijn> monochrom: Or lens :p
19:46:34 <merijn> The right answer is clearly 4 for blocks and 2 for continuations unless it looks more readable differently :p
19:47:00 merijn burns an auto-formatter in effigy
19:47:36 <monochrom> I still count those over-analyses as not using brain though.
19:47:57 <monochrom> If you use your brain, you see that you should just toss a coin and move on.
19:48:18 × Feuermagier quits (~Feuermagi@2a02:2488:4211:3400:246e:bf09:8453:9d6) (Remote host closed the connection)
19:49:05 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
19:49:12 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
19:49:43 <monochrom> Over-analysis is cargo-culting proper analysis
19:49:45 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
19:50:37 × ixaxaar quits (~ixaxaar@49.207.210.215) (Ping timeout: 272 seconds)
19:51:11 <monochrom> I don't actually see beginners doing "f :: Int -> IO Int; f x = return (x+1)" though.
19:51:46 <monochrom> What I see is the subtler kind I describe in http://www.vex.net/~trebla/haskell/IO.xhtml#organization
19:52:01 <monochrom> But that kind is unforgivable in even C++.
19:53:56 <monochrom> But you can chalk it up as "you need a refactoring after you're done"
19:54:43 <monochrom> But like I said, people don't, people say "I have to start somewhere" ironically after they are done, not before.
19:56:26 <monochrom> More generally, sometimes "knowing just a little can be more dangerous than not knowing at all" applies.
19:56:42 acidjnk_new joins (~acidjnk@p200300d0c722c4250563aaf4e4b49ebb.dip0.t-ipconnect.de)
19:57:09 <__minoru__shirae> monochrom: did you hear a rule: "if it works - don't touch it"
19:57:28 <monochrom> Yes. That rule is for production systems only.
19:57:57 <monochrom> In this context, one is learning, one is supposed to break things and tear apart and put together in a different way to learn.
19:58:09 × Ranhir quits (~Ranhir@157.97.53.139) (Ping timeout: 264 seconds)
19:58:13 <monochrom> So here a new rule
19:58:20 <monochrom> If you don't touch it, you learn nothing.
19:58:21 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
19:58:39 <__minoru__shirae> as a side-note, I think people should do that to production systems too. I mean experiment with them.
19:58:48 <monochrom> That's how I learn anyway.
19:59:02 <average> monochrom: if that rule were strictly respected, we would only ever see the first version of all products in prod
19:59:21 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
19:59:27 <average> but we know from experience that this is not the case. every product needs new versions (for various reasons)
19:59:42 Ranhir joins (~Ranhir@157.97.53.139)
20:00:02 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
20:00:17 <swarmcollective> When I began to attempt Haskell programming, several people kept throwing "you could reduce <expr> to <expr>" and it made it very difficult. Now that I have a stable environment with HLS and have spent time on projects of my own, it is starting to make sense.
20:00:45 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
20:00:55 <swarmcollective> Optimizations that the Language Server recommends, I accept readily (except for enabling language features).
20:00:55 <average> monochrom: "Learning" in this context can also mean being aggressively scolded and even fired or other disciplinary measures tho..
20:01:07 <average> "Learning" could mean anything. I actually don't know the right definition for it
20:02:03 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
20:02:28 <monochrom> swarmcollective: I am a bit not understanding. So far it looks like you're just replacing someone on IRC by someone in your editor.
20:02:39 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Client Quit)
20:02:43 <average> swarmcollective: that quote you wrote has so many forms. "You can use <X> IDE instead of vim" , "Why don't you use Chrome instead of Firefox?" , "I don't use vim, I use nano, I suggest you switch so we can align" , "I use tabs not spaces, please align with me so we can be on the same page"
20:02:56 <monochrom> The Turing-test POV being why are the two even different.
20:03:00 <swarmcollective> At the same time, I'm not paid for the Haskell I write, so I don't have to answer to anyone for the choices I make. I wouldn't mind having that constraint, but right now, I'm just happy to learn the language and ecosystem.
20:03:04 × Moyst quits (~moyst@212-149-213-144.bb.dnainternet.fi) (Remote host closed the connection)
20:03:34 <monochrom> Put it this way. s/on IRC/in your IRC client/
20:04:07 <swarmcollective> average, exactly. We, for some reason, are not building and using tools that elliminate all of that, so we can focus on getting stuff done.
20:05:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Ping timeout: 264 seconds)
20:05:33 <average> swarmcollective: even GTD has perverted interpretations. to some, GTD might mean setting up a meeting in order to "align"
20:05:33 × arw quits (~arw@impulse.informatik.uni-erlangen.de) (Quit: Lost terminal)
20:05:34 <swarmcollective> monochrom, to some degree, yes, HLS does suggest refactorings, but they tend to be small changes that are easily understood.
20:06:06 arw joins (~arw@impulse.informatik.uni-erlangen.de)
20:06:17 <swarmcollective> And I can turn HLS hints off without too much concern that HLS will be angry. :D
20:08:03 <monochrom> I agree that a lot of regulars here, but not me, go overboard in shovel advanced technques down people's throats.
20:08:05 <swarmcollective> And to clarify, my experience on irc / #Haskell has been very positive.
20:09:35 <swarmcollective> AND, I freely admit that I tend towards verbose source. I prefer to let the compiler do more work and desire the code to be easily understood by a wide audience.
20:09:53 <merijn> Verbosity isn't correlated with compiler work tbh
20:10:03 <swarmcollective> Unfortunately, that tends to make the code less readable by an experienced Haskeller.
20:10:11 <dolio> It's also not necessarily easier to understand.
20:10:22 <swarmcollective> dolio, exactly.
20:10:22 <merijn> dolio: It depends what you mean by verbose
20:10:29 <merijn> dolio: 30 character names? No
20:10:34 <monochrom> Perhaps s/verbose/elementary/
20:10:51 <merijn> dolio: Grouping things more spaciously with whitespace, adding signatures to all bindings, etc. can also be considered "more verbose"
20:11:01 <swarmcollective> I'm told that I over-use `let-in` and `where` :D
20:11:11 <merijn> tbh, there's a bunch of "expert" haskeller who should use more bloody whitespace and signatures on where blocks
20:11:14 <merijn> swarmcollective: Right
20:11:21 <merijn> swarmcollective: The correct amount of let-in is none >.>
20:11:28 <merijn> It looks ugly as sin
20:11:36 <koz_> Does anyone know why PropertyT from Hedgehog lacks a MonadMask instance?
20:11:37 <merijn> The solution is "more where blocks"
20:12:04 <swarmcollective> At this stage, I prefer to name things. Thus `let-in` allows me to do that.
20:12:13 <merijn> swarmcollective: So does where :p
20:12:25 <dolio> let-in is not always bad.
20:12:57 <merijn> dolio: I find the circumstance in where let-in is better than either "more named bindings using where" is very slim
20:13:10 × __minoru__shirae quits (~shiraeesh@77.94.25.226) (Ping timeout: 256 seconds)
20:13:13 × guest7682358928 quits (c9dbeab6@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.182) (Ping timeout: 265 seconds)
20:13:17 <swarmcollective> merijn, which is funny to me because some people said "don't use `where`, `let-in` is cleaner". Is this purely a matter of preference? :D (Just kidding)
20:13:24 <merijn> I'll use let in do-blocks occasionally for definition using previously monadically bound values
20:13:30 <dolio> It's not that common, but it's not never.
20:13:31 <merijn> swarmcollective: I've never seen anyone say that :p
20:13:53 <merijn> swarmcollective: I'm pretty confident in saying 80-90% of people here prefer where over let-in
20:14:10 <monochrom> This is why you take syntactic aethetic advise from no one.
20:14:41 × Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007)
20:14:47 <merijn> No, everyone should take syntactic aesthetic advice from *me* >.<
20:14:57 <swarmcollective> This is making me think that a HLS refactoring hint that allows one to toggle between `let-in` and `where` would be handy. :D
20:15:16 <merijn> swarmcollective: Do you have an example of using let-in?
20:15:26 <swarmcollective> Oh, and then the pattern matching versus guards, etc...
20:15:41 <monochrom> I sometimes use let-in when I anticipate that my students want to see definitions before use sites.
20:15:50 geekosaur uses it pretty heavily in one (not of much interest to anyone else) project, to build up a complicated computation in stages
20:15:53 <merijn> I don't see as guards and pattern matching as alternatives, tbh >.>
20:16:01 <monochrom> It is always about who's reading it
20:16:04 <geekosaur> precisely to show definitions before use sites
20:16:23 <swarmcollective> merijn, I'll see if I can find an example or two.
20:16:36 × dcoutts__ quits (~duncan@85.186.125.91.dyn.plus.net) (Ping timeout: 265 seconds)
20:16:38 __minoru__shirae joins (~shiraeesh@109.166.58.250)
20:16:40 <dolio> Pattern guards can supplement normal pattern matching well sometimes.
20:18:37 <swarmcollective> merijn, https://github.com/calledtoconstruct/lambdabot/blob/patches/lambdabot-term-plugins/src/Lambdabot/Plugin/Term/Logic.hs
20:19:39 <merijn> swarmcollective: FYI on line 74 and 75 the let is redundant
20:19:49 <merijn> you can define blocks of bindings with one let in do notation
20:20:29 howdoi joins (uid224@gateway/web/irccloud.com/x-yfncngfrscfyesxs)
20:20:34 alx741 joins (~alx741@186.178.110.250)
20:20:55 <swarmcollective> I think that makes sense.
20:21:02 <merijn> Although I'd still move those to where anyway
20:21:07 <monochrom> devil's advocate (I am not serious): but multiple let's reminds the human that this is not a mutually-recursive group. >:)
20:22:29 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
20:22:54 <swarmcollective> For instance, around line 19, StateChangeResult could be replaced with a tuple. However, having the names make it more explicit.
20:23:13 <monochrom> That one we all agree.
20:23:15 <swarmcollective> But, they then clutter the namespace. :/
20:24:18 <merijn> swarmcollective: tbh, I'm increasingly convinced that types like StateChangeResult instead of tuple is a "Great Idea, Actually"
20:25:22 <geekosaur> "clutter the namespace" that's what namespace is there for
20:25:37 <swarmcollective> merijn, was it you that suggested naming the constructor something different than the type? MkStateChangeResult? I tried that in the next plugin, and it makes sense to me.
20:25:41 <merijn> tbh, my main objection to let-in is that it is almost impossible to layout that is both correct (i.e. parses) *and* looks good is readable
20:26:25 <merijn> In fact, my main gripe with essentially all mainstream programming language is that no one seems to have put any though in how constructs can be line-wrapped/layouted nicely
20:26:56 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
20:27:10 <merijn> Hot take: Everyon arguing that Haskell should use ':' for type annotations instead of '::' is wrong, because ':' doesn't align with => and -> >.<
20:27:26 <monochrom> haha
20:27:32 <merijn> I'm not even joking
20:27:42 <__monty__> Then why don't lambdas start with \\?
20:27:43 <swarmcollective> ^^^ Yes! I really would like to get to the point where source code is written to disk and stored in source control with nearly zero formatting and the editor / plugin displays the code in a way that suites the developer. *sigh*
20:27:46 <merijn> If I could I'd change the '.' after forall to something with two symbols
20:28:04 <merijn> swarmcollective: https://www.lamdu.org/
20:28:07 <__monty__> I vote for `=` to become `===` in the interest of aligning nicely with <$> and <*>.
20:28:11 <monochrom> Lamport's TLA is the only language at all that has put thought in line breaks
20:28:19 <ski> putting the separators at start-of-code, rather than end-of-code, for each line, makes sense to me
20:28:28 <glguy> swarmcollective: that seems like putting paintings into paint cans and leaving it to galleries to assemble it in a nice way :)
20:28:40 <merijn> ski: You're free to be wrong >.<
20:28:41 <ski> __monty__ : just indent it "hanging"
20:28:44 <monochrom> Here is an example. You have "x + y + z" and you want to spread it over 3 lines because x, y, z are each long.
20:28:48 <tomsmeding> merijn: this 'let' layout is not acceptable to you? https://github.com/tomsmeding/pastebin-haskell/blob/master/Main.hs#L121
20:28:51 <monochrom> In TLA it goes:
20:28:52 <monochrom> + x
20:28:54 <monochrom> + y
20:28:55 <monochrom> + z
20:29:09 <ski> merijn : hehe, i was actually concurring with the aligning of `::',`=>',`->' :)
20:29:31 <merijn> ski: Oh, wait, I misparsed
20:29:32 <monochrom> So the "+" doubles as "the bullet in your bulletized list". And it is fully symmetric.
20:29:41 <__monty__> ski: I usually align the > with =.
20:30:04 <ski> __monty__ : yes, that's what i mean. ditto for `||',`&&',&c.
20:30:09 <merijn> tomsmeding: It's ok, but I see no advantage over moving those down two lines into the where
20:30:30 <__monty__> monochrom: Doesn't work well with minus though?
20:30:36 <tomsmeding> I guess
20:30:37 <merijn> monochrom: The awkwardness of module import/export lists is also galling
20:30:45 <__monty__> Or do you use + x - y - z?
20:31:09 <ski> i would like to be able to state signatures, in import lists
20:31:14 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
20:31:54 <monochrom> __monty__, I used + for example, but the utmostly dominating occurences are with ∧, ∨, and other associative logical connectives.
20:31:58 <tomsmeding> merijn: ImportQualifiedPost?
20:32:21 <merijn> tomsmeding: That doesn't help with import lists at all
20:32:43 <ski> monochrom : i often do that, when writing math formulae (except i don't have the initial one)
20:33:06 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
20:33:28 <tomsmeding> oh import _lists_, I misunderstood, yes those get terribly unwieldy when long
20:33:34 <monochrom> The ingenuity here is actually putting back the initial one.
20:33:46 <monochrom> It now reads like a bullet list.
20:34:06 <merijn> tomsmeding: 1 per line is ok if you have a lot of imports, but takes up lots of space, but linewrapping them to multiple per line always looks hella awkward
20:34:11 <ski> i wonder whether there's an SRFI for something like that
20:34:11 <monochrom> And when the operator is ∧ or ∨, it is a bullet list.
20:34:20 <exarkun> what happen :( https://gist.github.com/exarkun/9fc7f8d6c4e50832ee556db3d0728693
20:34:30 Moyst joins (~moyst@85-76-64-21-nat.elisa-mobile.fi)
20:34:43 <monochrom> Hell, with any associative operator at all.
20:35:26 <monochrom> Because conceptually you are saying "I specify mconcat over the following items: <bullet list of items>"
20:36:04 <tomsmeding> exarkun: update your stack?
20:36:29 ski . o O ( ⌜∧ ∷ Bool → All⌝ )
20:36:39 <maralorn> dminuoso: I think to get two prisms to work with alongside I can use `re (alongside (re _a) (re _b))`^^
20:36:43 <exarkun> I just upgraded nixos to 20.09 :/ it worked before that
20:36:48 <maralorn> I don‘t think any of this is going to increase readability.
20:37:23 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:232:1d4d:af33:aa7c) (Ping timeout: 272 seconds)
20:37:25 Jd007 joins (~Jd007@162.156.11.151)
20:38:12 × mozzarella quits (~sam@unaffiliated/sam113101) (Remote host closed the connection)
20:38:39 <dexterfoo> there was a gist posted awhile ago with a technique for doing records. anyone have the link?
20:39:02 <monochrom> exarkun: You have a "//" in "/fpco/lts-haskell/master//lts-16.27.yaml". Are you sure it is right?
20:39:32 mozzarella joins (~sam@unaffiliated/sam113101)
20:40:17 <exarkun> monochrom: I'm not sure, no. But I didn't put it there.
20:40:23 guest7682358928 joins (c9dbeac6@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.198)
20:40:28 × electrostat quits (~dag@unaffiliated/electrostat) (Quit: uwotm8)
20:40:33 × ArsenArsen quits (~Arsen@fsf/member/ArsenArsen) (Quit: bye)
20:40:46 ArsenArsen joins (~Arsen@fsf/member/ArsenArsen)
20:40:47 electrostat joins (~dag@unaffiliated/electrostat)
20:40:53 <tomsmeding> this repo, which is what that url points to, doesn't contain any lts beyond 14.9
20:40:54 × comboy quits (~quassel@tesuji.pl) (Quit: No Ping reply in 180 seconds.)
20:40:54 <tomsmeding> https://github.com/commercialhaskell/lts-haskell
20:41:01 × zhulikas quits (~derp@hmm.wantstofly.org) (Quit: No Ping reply in 180 seconds.)
20:41:34 <geekosaur> sounds indeed like stack is out of date then
20:41:55 <tomsmeding> with a fresh stack I don't get the error :p
20:42:07 zhulikas joins (~derp@hmm.wantstofly.org)
20:43:10 comboy joins (~quassel@tesuji.pl)
20:43:46 borne joins (~fritjof@200116b8646dd3007eece5d071d7bcc1.dip.versatel-1u1.de)
20:45:17 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
20:45:21 puke joins (~vroom@217.138.252.187)
20:46:04 <exarkun> is it just a coincidence that https://github.com/commercialhaskell/lts-haskell changed a few days after I upgraded my system, then? this version of stack worked last week
20:46:10 <exarkun> (as far as I can tell)
20:46:18 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:46:41 <geekosaur> I thought that repo had been discontinued several months ago tbh
20:47:28 <geekosaur> wonder if your (locally upgraded) stack got overwritten with an older NixOS-provided one somehow
20:47:36 <geekosaur> or $PATH changed
20:48:38 <Uniaika> 9
20:48:50 <exarkun> cannot rule any of those out, I guess, and not _exactly_ sure what version of stack I had before
20:49:04 <exarkun> tempted to reboot into the old configuration and see if it starts working, but not tempted _enough_
20:49:15 <exarkun> I'll try harder to get a newer stack, I guess
20:50:02 son0p joins (~son0p@181.136.122.143)
20:51:37 dcoutts__ joins (~duncan@85.186.125.91.dyn.plus.net)
20:51:57 <tomsmeding> '$ stack upgrade' if you want the nuke option :p
20:52:08 <tomsmeding> probably doesn't play well with your system
20:53:41 × heatsink quits (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483) (Remote host closed the connection)
20:55:15 is_null joins (~jpic@pdpc/supporter/professional/is-null)
20:57:23 ciobul joins (~cb@86.107.75.45)
20:57:33 lambdaman joins (~lambdaman@d50-98-131-111.bchsia.telus.net)
21:00:19 <Tritlo> `(_foldl (-) 0) :: [Int] -> Int` infers the type `(Integer -> Integer -> Integer) -> Integer -> [Int] -> Int` for the hole `_foldl`... why?
21:01:16 <merijn> Tritlo: In ghci?
21:01:23 <__minoru__shirae> dexterfoo: you mean this one? https://dpaste.com/8A6HP5HNP
21:01:45 <Tritlo> Shouldn't it be `(Num a, Num b) => (a -> a -> a) -> b -> [Int] -> Int`? In both GHCi 8.10 and when I compile a module
21:01:55 jlamothe_ joins (~jlamothe@198.251.55.207)
21:02:07 <merijn> Tritlo: Are you using -Wall?
21:02:21 <merijn> I smell a defaulting warning :)
21:03:21 <lambdaman> Conundrum... I have a type, which is basically a function producing a db persistable entity record (with Persistent)
21:03:21 <lambdaman> type MapperFunc = forall record . (PersistEntity record, PersistEntityBackend record ~ SqlBackend) => (ContributionId -> M.Map Text CSVField -> record)
21:03:21 <lambdaman> How do I create a map collection (or association list) where items of type MapperFunc are keyed by a Text name? Of course, this is a heterogenous collection, but contained per the MapperFunc constraints.
21:03:23 <Tritlo> -Wall doesn't give anything beyond the hole error
21:03:25 × jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 240 seconds)
21:03:32 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:03:46 <lambdaman> *constrained
21:04:23 <merijn> Tritlo: Anyway, it looks like a combination of typed hole + defaulting
21:05:16 <merijn> Tritlo: Basically, when you try to actually *use* the "0 :: Num a => a" it needs to pick what 'a' *actually* is
21:05:18 <Tritlo> merijn: Yeah, but I thought that was only in GHCi, not in compiled modules
21:05:38 × conal_ quits (~conal@66.115.157.19) (Quit: Computer has gone to sleep.)
21:05:45 <merijn> Tritlo: No, compiled modules also get defaulted, but ghci has *extended* default rules (i.e. they trigger more often)
21:06:07 <merijn> Tritlo: The only ones in compilation are that Num defaults to Integer and Fractional defaults to Double
21:06:16 <Tritlo> merijn: any way to turn off defaulting?
21:06:35 <merijn> Not really, you can turn the warning into an error, but that doesn't help this case
21:06:42 <merijn> :t (^)
21:06:43 <lambdabot> (Integral b, Num a) => a -> b -> a
21:06:52 × alx741 quits (~alx741@186.178.110.250) (Quit: alx741)
21:06:55 <merijn> The problem is that without defaulting something simple like "2^4" wouldn't compile
21:06:56 heatsink joins (~heatsink@2600:1700:bef1:5e10:d581:1bcd:84fc:c483)
21:07:04 <merijn> Because there's no way to tell what type 'b' is
21:07:26 <merijn> You'd always have to type "2^(4 :: Int)" or something
21:07:32 <tomsmeding> whereas with defaulting, it does compile, but with a warning
21:07:35 <Tritlo> merijn: for sure, but I'm working with the holes and not the expressions
21:07:52 <tomsmeding> which is not a lot better IMO :p
21:07:52 <Tritlo> i.e. I don't need a type at that point, I want to see the most general one
21:08:16 <merijn> Tritlo: I'm just guessing there's an interaction between the inference for holes and defaulting
21:08:19 oisdk joins (~oisdk@2001:bb6:3329:d100:d9ba:7830:f8a2:783c)
21:08:27 <merijn> I'm not sure that's easy to fix either
21:08:49 <tomsmeding> Tritlo: put 'default ()' in your file
21:09:02 <merijn> You could check the GHC bug checker if someone has run into it before, but it seems like the kinda thing that'd be a PITA to fix for fairly little gain
21:09:05 <tomsmeding> seems to fix it for this particular case
21:09:21 × LKoen quits (~LKoen@252.248.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.”)
21:09:26 geekosaur is pretty sure he's run into that interaction as well
21:09:29 <geekosaur> come to think of it
21:09:56 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
21:09:57 <exarkun> Okay stack 2.3.3 works fine, and that number looks kinda familiar, maybe I did have it before somehow and got downgraded
21:10:13 <Tritlo> tomsmeding: thanks!
21:10:21 <tomsmeding> lambdaman: what issue is there with just... using a Map?
21:10:39 <tomsmeding> you'll have to wrap the MapperFunc in a newtype though
21:11:15 ericsagn1 joins (~ericsagne@2405:6580:0:5100:a2d2:896d:399a:a417)
21:11:41 <dexterfoo> __minoru__shirae: no. i think i saw it in reddit. it was a secret technique for using OverloadedRecordFields extension
21:11:51 <Uniaika> shapr: turns out the last guardian of the temple is Howard Golden
21:12:11 <shapr> Uniaika: wow, I have never heard that name before
21:12:26 <Uniaika> and I'm certain he's never heard yours as well
21:12:40 <Uniaika> fuck, imagine if he died tomrrow
21:14:45 × borne quits (~fritjof@200116b8646dd3007eece5d071d7bcc1.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
21:16:19 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
21:17:35 <lambdaman> tomsmeding: GHC doesn't yet support impredicative polymorphism (when I try to use a (new)type to make an assoc list or Map)
21:17:58 × _vaibhavingale_ quits (~Adium@203.188.228.9) (Quit: Leaving.)
21:18:17 _vaibhavingale_ joins (~Adium@203.188.228.9)
21:19:45 × ciobul quits (~cb@86.107.75.45) (Ping timeout: 264 seconds)
21:20:37 conal joins (~conal@64.71.133.70)
21:21:12 borne joins (~fritjof@200116b8646dd3007eece5d071d7bcc1.dip.versatel-1u1.de)
21:21:17 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
21:21:34 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
21:22:21 Guest_14 joins (d8ab2615@host-38-21.kybggab.bowlinggreen.ky.us.clients.pavlovmedia.net)
21:22:25 × _vaibhavingale_ quits (~Adium@203.188.228.9) (Ping timeout: 240 seconds)
21:22:49 <Guest_14> How M1 Mac install Haskell?
21:22:54 × soft-warm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Quit: Connection closed)
21:23:31 <maerwald> Guest_14: https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/101#note_319402
21:23:31 <nshepperd> lambdaman: you don't need impredicative polymorphism. just wrap your MapperFunc in a newtype
21:25:23 <nshepperd> then put the newtype in the Map
21:25:27 <merijn> Uniaika: At least you'd get to start with a clean slate wiki, then :p
21:25:51 <merijn> nshepperd: Can you have existential newtypes, though?
21:25:54 <Uniaika> merijn: eh :)
21:26:09 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
21:26:17 <nshepperd> this would be a rank-2 newtype constructor
21:26:21 <merijn> hmm
21:26:57 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
21:30:19 Tops2 joins (~Tobias@dyndsl-095-033-094-020.ewe-ip-backbone.de)
21:30:39 frozenErebus joins (~frozenEre@94.128.81.133)
21:32:35 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
21:32:48 × Tops21 quits (~Tobias@dyndsl-095-033-094-020.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
21:35:14 × Guest_14 quits (d8ab2615@host-38-21.kybggab.bowlinggreen.ky.us.clients.pavlovmedia.net) (Quit: Connection closed)
21:36:06 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
21:36:28 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
21:37:45 mud joins (~mud@unaffiliated/kadoban)
21:38:02 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
21:38:59 <dolio> You cannot have existential newtypes.
21:39:23 PtxDK joins (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
21:40:01 <topos> newtype Yolo = forall a. (Yolo a)
21:41:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
21:41:59 <lambdaman> nshepperd: Just newtype Foo = Foo MapperFunc ??
21:42:22 hexfive joins (~hexfive@50.35.83.177)
21:42:29 <nshepperd> lambdaman: yep
21:42:48 <lambdaman> Could not deduce: record ~ TheRecord
21:42:48 <lambdaman> from the context: (PersistEntity record,
21:42:48 <lambdaman> PersistEntityBackend record ~ SqlBackend)
21:42:50 <lambdaman> bound by a type expected by the context:
21:42:52 <lambdaman> MapperFunc
21:42:54 <lambdaman> at src/Jobs.hs:112:34-42
21:42:56 <lambdaman> ‘record’ is a rigid type variable bound by
21:42:58 <lambdaman> a type expected by the context:
21:43:00 <lambdaman> MapperFunc
21:43:02 <lambdaman> at src/Jobs.hs:112:34-42
21:43:04 <lambdaman> Expected type: ContributionId -> Map Text CSVField -> record
21:43:06 <lambdaman> Actual type: ContributionId
21:43:08 <lambdaman> -> Map Text CSVField -> TheRecord
21:43:10 <lambdaman> Could not deduce: record ~ TheRecord
21:43:12 <lambdaman> from the context: (PersistEntity record,
21:43:14 <lambdaman> PersistEntityBackend record ~ SqlBackend)
21:43:16 <lambdaman> bound by a type expected by the context:
21:43:16 × lambdaman quits (~lambdaman@d50-98-131-111.bchsia.telus.net) (Killed (Sigyn (Spam is off topic on freenode.)))
21:43:30 <nshepperd> whoops
21:43:34 epicte7us joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
21:46:45 × ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 264 seconds)
21:47:37 ChanServ sets mode +o ski
21:47:54 lambdaman joins (~lambdaman@d50-98-131-111.bchsia.telus.net)
21:47:54 ChanServ sets mode -o ski
21:48:24 <ski> lambdaman : please don't paste many lines into the channel, all at the same time
21:50:42 quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
21:52:01 <geekosaur> @where paste
21:52:01 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
21:52:05 × Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 240 seconds)
21:52:57 <Uniaika> lambdabot: topic, please
21:53:48 ChanServ sets topic to "https://www.haskell.org | https://wiki.haskell.org/IRC_channel | Paste code/errors: https://paste.tomsmeding.com | Logs: http://tunes.org/~nef/logs/haskell/?C=M;O=D | https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org"
21:54:00 × Uma quits (~uma@umazalakain.info) (Ping timeout: 258 seconds)
21:54:35 seneca joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
21:55:12 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Ping timeout: 246 seconds)
21:55:16 × clog quits (~nef@bespin.org) (Ping timeout: 240 seconds)
21:56:07 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
21:56:25 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
21:57:33 × epicte7us quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 264 seconds)
21:58:14 × albert_42 quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) (Remote host closed the connection)
21:58:24 <ph88^> how can i write a parser and a grammar definition and keep them in sync ?
21:58:40 albert_42 joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
21:58:46 <jess> lambdaman: any time
22:00:15 <Uniaika> ph88^: write golden tests
22:00:17 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
22:00:49 <ph88^> what will that do ?
22:00:57 × lambdaman quits (~lambdaman@d50-98-131-111.bchsia.telus.net) (Quit: Leaving...)
22:01:12 maroloccio__ joins (~marolocci@pousada3ja.mma.com.br)
22:01:25 × darjeeling_ quits (~darjeelin@122.245.216.78) (Ping timeout: 240 seconds)
22:01:38 <Uniaika> ph88^: basically, you write tests that are reflecting the expected result of parsing your grammar. If the parser passes the tests, yay, otherwise change the parser
22:01:41 × frozenErebus quits (~frozenEre@94.128.81.133) (Quit: leaving)
22:02:27 <ph88^> i don't have a parser to parse the grammar ... you recommend i build one ?
22:02:34 <ph88^> like an ebnf parser or so ?
22:03:20 <Uniaika> what do you mean by "you recommend i build one ?"? Didn't you say that you wanted to write a parser, earlier?
22:03:23 <monochrom> IMO s/golden// # there is no need for an extra adjective.
22:03:33 <Uniaika> yeah, thanks monochrom
22:03:38 × albert_42 quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) (Ping timeout: 264 seconds)
22:04:39 <ph88^> Uniaika, i have a parser for some source code .. and then i have seperate some notes on how the grammar looks at the moment
22:04:42 × maroloccio__ quits (~marolocci@pousada3ja.mma.com.br) (Client Quit)
22:05:04 <ph88^> like simple documentation
22:05:33 <Uniaika> you should produce a complete grammar, first
22:05:35 <monochrom> What was the background that led to people starting to say "golden tests" by the way?
22:06:02 <ph88^> Uniaika, ok im trying to produce the grammar and the parser for them ... just my question is how to keep the two of them in sync
22:06:20 <Uniaika> monochrom: I actually don't know, I've just picked its use to mean "tests that describe the truth"
22:06:20 <ph88^> so that the description of the grammar is actually what the parser is parsing
22:06:38 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 264 seconds)
22:06:40 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:06:41 linux_addict joins (b03ac089@adsl-137.176.58.192.tellas.gr)
22:07:54 <Uniaika> ph88^: I guess that would be the job of a parser generator. A tool to whom you feed a grammar, and which will produce an adequate parser for this grammar
22:08:04 <Uniaika> in Haskell, Alex is the most famous parser generator
22:08:30 <monochrom> Happy
22:08:40 <ph88^> Uniaika, i have already an implementation in megaparsec which i don't want to throw away
22:08:45 <monochrom> Alex is for the regexp-based tokenization stage.
22:08:54 alx741 joins (~alx741@186.178.110.250)
22:08:57 <monochrom> To be sure, in all likelihood, you may need both.
22:09:17 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds)
22:09:21 <monochrom> So use Happy to generate megaparsec code?
22:09:30 coot_ joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
22:09:31 <Uniaika> monochrom: oh yes, thanks
22:09:36 <ph88^> is that possible even ??
22:09:41 <monochrom> I don't know.
22:09:46 <nshepperd> i understand 'golden' tests to be a specific kind of test where you have checked in to source control 'expected' results of a function, often automatically generated by running the function, and when the function (intentionally) changes behaviour you validate the new output by diffing
22:10:12 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:10:35 × linux_addict quits (b03ac089@adsl-137.176.58.192.tellas.gr) (K-Lined)
22:11:46 <sm[m]> something to do with golden meaning good, or with some physical product's master template being made of gold , I thought. https://en.wikipedia.org/wiki/Characterization_test was interesting but didn't explain, maybe Michael Feathers' book does
22:11:47 <ph88^> does alex/happy generate everything including data structures ?
22:11:47 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
22:12:45 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
22:12:45 coot_ is now known as coot
22:13:21 nshepperd . o O ( ebnf :: Parser (Parser ParseTree) )
22:14:06 <monochrom> How often are you changing either your grammar or your parser, really?
22:14:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:14:56 <ph88^> for a few more months i would expect
22:14:57 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
22:15:12 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
22:15:15 <monochrom> No, how often.
22:15:30 <sm[m]> "A related term I'm familiar with is 'golden data'. This refers to test data that doesn't change. This input is expected to produce the same (or very similar output) when used in a regression test. The term 'golden' probably comes from the fact that gold is a stable substance."
22:15:33 <monochrom> Once every hour? Once every minute? How many hertz?
22:15:39 <ph88^> can't say yet exactly how many times per week
22:16:59 darjeeling_ joins (~darjeelin@122.245.216.78)
22:17:00 <monochrom> OK so if the grammar changes then the test cases have to change too, not golden :)
22:17:22 ezrakilty joins (~ezrakilty@75-172-120-225.tukw.qwest.net)
22:17:55 <ph88^> ye the gramming is work in progress .. so is the parser
22:18:02 Tario joins (~Tario@200.119.184.99)
22:19:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
22:21:42 <ph88^> some answers here too https://softwareengineering.stackexchange.com/questions/399519/how-to-keep-parser-code-and-grammar-definition-in-sync seems complicated
22:21:45 × ezrakilty quits (~ezrakilty@75-172-120-225.tukw.qwest.net) (Ping timeout: 240 seconds)
22:22:00 <monochrom> Yes it's complicated.
22:22:37 <monochrom> Even more complicated when you also keep grammar and tests in sync, which you should, even more so than keeping grammar and code in sync.
22:23:11 <Uniaika> ph88^: basically, complexity has to live somewhere: Either you bear this complexity on your own shoulders, or you offload it to something else, like "complex code"
22:23:24 × edge563 quits (~edge563@gateway/tor-sasl/edge563) (Quit: edge563)
22:24:00 <monochrom> And what about parser output? In all likelihood, parser output is an ADT you define. How about keeping that ADT in sync with all three of the above?
22:24:57 <monochrom> It's rabbit hole. This is why I would lay back and just not worry.
22:24:58 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
22:25:27 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
22:26:11 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
22:26:14 <ph88^> i have the tendency to go into rabbit holes
22:26:51 <monochrom> That's only a symptom.
22:27:18 <monochrom> The root disease is perfection OCD especially when you are not ready for it.
22:27:55 <ph88^> you think so ?
22:28:15 <monochrom> It's safe to bet so. It's very common disease.
22:29:33 <nshepperd> i think generating random positive (should-parse) test cases from ebnf would be somewhat practical at least. validStrings :: Parser (RuleName -> Gen Text)
22:30:24 <nshepperd> negative test cases, though? i dunno
22:30:50 <monochrom> Microsoft invented "fuzzing" for random negative test cases.
22:31:11 <monochrom> tl;dr positive test cases with random mutations
22:31:50 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:12a:56ab:3dc4:a774) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:32:40 <monochrom> caught a lot of parser security vulnerabilites (glorified bugs) with it. Perhaps more about how bad it is when people code in C.
22:33:50 <nshepperd> but then, if you're writing ebnf in your documentation, why not accompany it with examples and test those
22:33:52 × Tario quits (~Tario@200.119.184.99) (Read error: Connection reset by peer)
22:34:35 Tario joins (~Tario@201.192.165.173)
22:34:39 <nshepperd> personally i always find examples more useful than ebnf for figuring out syntax anyway
22:35:52 <monochrom> Yes I would handwrite good examples too.
22:38:09 usr25 joins (~usr25@unaffiliated/usr25)
22:39:09 × fendor quits (~fendor@91.141.1.179.wireless.dyn.drei.com) (Remote host closed the connection)
22:40:42 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
22:42:45 × oisdk quits (~oisdk@2001:bb6:3329:d100:d9ba:7830:f8a2:783c) (Quit: oisdk)
22:42:47 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
22:46:37 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
22:52:04 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
22:54:40 × guest7682358928 quits (c9dbeac6@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.198) (Ping timeout: 256 seconds)
22:55:07 <monochrom> "Exercise": Write a quasiquoter that maps a grammar to an ADT and a parser.
22:56:00 dansho joins (~dansho@ec2-99-79-37-120.ca-central-1.compute.amazonaws.com)
22:56:40 <monochrom> "Part 2": also map to a pretty printer. Then a Gen instance for the ADT and the pretty printer form the basis of automatic random test generation.
22:58:35 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
22:58:43 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
22:58:53 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
22:59:10 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds)
22:59:14 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:00:28 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
23:01:05 × acidjnk_new quits (~acidjnk@p200300d0c722c4250563aaf4e4b49ebb.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
23:03:24 Moyst_ joins (~moyst@212-149-213-144.bb.dnainternet.fi)
23:04:18 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
23:04:49 × Moyst quits (~moyst@85-76-64-21-nat.elisa-mobile.fi) (Ping timeout: 256 seconds)
23:08:14 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
23:08:36 × Aleksejs quits (~Aleksejs@haskell.lv) (Ping timeout: 240 seconds)
23:09:22 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:12:38 viluon joins (uid453725@gateway/web/irccloud.com/x-mraiiodagseymswf)
23:13:42 × borne quits (~fritjof@200116b8646dd3007eece5d071d7bcc1.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
23:14:05 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
23:15:22 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
23:16:09 DataComputist joins (~lumeng@50.43.26.251)
23:17:04 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 240 seconds)
23:17:06 albert_42 joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
23:18:40 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
23:19:38 <ph88^> does anyone know how to do putStrLn with rio prelude ?? i can't find io functions in the docs
23:19:57 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
23:21:56 × albert_42 quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) (Remote host closed the connection)
23:22:22 albert_42 joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
23:22:24 × albert_42 quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) (Remote host closed the connection)
23:22:31 albert_4_ joins (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e)
23:22:32 × urodna quits (~urodna@unaffiliated/urodna) (Read error: Connection reset by peer)
23:23:45 × DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 240 seconds)
23:24:16 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
23:24:57 <monochrom> http://hackage.haskell.org/package/rio-0.1.20.0/docs/doc-index-P.html
23:24:59 DataComputist joins (~lumeng@50.43.26.251)
23:26:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:28:03 <ph88^> oh oh ... only for bytestring
23:28:08 <ph88^> what about Text o_O
23:31:54 conal joins (~conal@64.71.133.70)
23:32:13 × albert_4_ quits (~albert_42@2a02:8108:1100:16d8:5d8a:5850:80f7:726e) ()
23:32:34 pavonia joins (~user@unaffiliated/siracusa)
23:32:53 <glguy> You'd probably encode the text to a bytestring first using an encoding of your choosing
23:33:30 <glguy> RIO is an instance of MonadIO, so just use whatever printing function you had in mind
23:33:49 <ph88^> alright but i don't have normal Prelude anymore
23:34:00 <ph88^> ok i will first encode then
23:34:11 <glguy> the printing function for Text wasn't in Prelude anyway
23:35:04 <ph88^> ya ok i was having a bit higher expectations for rio on this ^^
23:35:24 <glguy> oops :)
23:35:50 × hiroaki quits (~hiroaki@2a02:908:4b18:8c40::e69c) (Ping timeout: 246 seconds)
23:36:25 <ph88^> :P
23:37:06 × Franciman quits (~francesco@host-82-49-79-189.retail.telecomitalia.it) (Quit: Leaving)
23:37:56 <monochrom> I thought I saw lots of decoding choices there.
23:38:10 <monochrom> Why are you using rio if you don't even know its design philosophy?
23:38:34 × tremon quits (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
23:38:37 <sm[m]> maybe hPutBuilder ? I feel sure there must be some easier way though
23:39:04 × bo_ quits (~bo@178.150.122.153) (Quit: Leaving)
23:39:23 × Tops2 quits (~Tobias@dyndsl-095-033-094-020.ewe-ip-backbone.de) (Read error: Connection reset by peer)
23:39:57 <glguy> There's a class of applications where you really wouldn't be doing straight writes to stdout. You'd be more structured log messages and so on
23:42:42 <sm[m]> ph88^ or maybe it's logInfo ?
23:43:14 <ph88^> monochrom, gotta try it right :P
23:45:11 <sm[m]> https://www.fpcomplete.com/haskell/library/rio/#logging discusses it
23:46:18 <ph88^> do you know anything about the design philosophy monochrom ?
23:46:20 <ph88^> thx sm[m]
23:46:24 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
23:46:36 <monochrom> No. But I can see it has one.
23:49:32 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
23:51:26 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
23:55:49 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
23:56:21 × hyperisco quits (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 264 seconds)
23:58:48 hyperisco joins (~hyperisco@104-195-141-253.cpe.teksavvy.com)
23:59:11 <sm[m]> ph88^ and setting RIO_VERBOSE=1 adds some nice detail to that output I see
23:59:48 <sm[m]> not sure how it even does that (line numbers..)

All times are in UTC on 2021-02-09.