2021/02/09

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