Home freenode/#haskell: Logs Calendar

Logs on 2021-03-23 (freenode/#haskell)

00:02:45 <forp> Monads are used in FP as a workaround to producing side-effects. Would you say then monads are useful outside FP?
00:03:09 <Axman6> monads are not a workaround for anything
00:03:29 <Axman6> if you program in any language, you use monads every day, you just don't call them what they are
00:03:46 <Axman6> because of this, the answer to your question is categorically yes
00:03:46 <forp> Axman6, can you give an example
00:04:06 <pjb> Well, there are implicit monads, (or not, depending on the formal semantics), but you could also have explicit monads.
00:04:23 <Axman6> every time you interact with the outside world in a program, every time you deal with pointers which may be null, every time you write a for loop over the items in an array
00:05:06 <forp> None of that is a monad.
00:05:16 <forp> I think you may be yourself looking through Haskell tinted glasses
00:05:18 <Axman6> all of those are monads
00:06:13 <Axman6> the premise of your question shows you aren't very familiar with what monads are, so why would you think I'm not?
00:06:15 <addem[m]> I never fully got what a monad was. I think they're something like, any type with a bind and a return. So to put it reductively it's one kind of a signature for a module (possibly speaking OCaml here since I know that language slightly more).
00:06:16 <addem[m]> But what the hell do I know, amirite?
00:06:21 <forp> They really aren't. Just because you need a monad for this in Haskell isn't a proof that everyone does
00:06:27 <forp> A monad is an API in haskell
00:06:30 <forp> Not the implementation
00:07:13 <Axman6> suit yourself
00:07:32 <Axman6> the monad type class does not define what a monad is though
00:07:35 nighmi is all-suited
00:07:46 <forp> Axman6, it defines an interface.
00:08:27 <forp> Axman6, I just don't think when I, say, to write_file('file.txt', 'Hello') I'm doing anything that fits the definition of a monad
00:08:47 <Axman6> there are many things which are monads which we can't imeplement an instance for Monad in Haskell, it's a much more general concept than the Haskell concept
00:09:31 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 272 seconds)
00:10:48 <Axman6> forp: have you ever used a ? operator in any OO language? foo.bar?baz.quux?id?
00:11:34 <forp> Axman6, null coalescing?
00:11:38 <Axman6> yes
00:12:08 <Axman6> it implements exactly the behaviour of the Maybe monad
00:12:22 <forp> It does, but does it do it through a monad
00:12:35 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
00:12:48 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
00:12:59 <nighmi> "through" may not be the best preposition here
00:13:13 <forp> forp, essentially I wonder if creating Monad types is worth it outside FP.
00:13:28 <forp> forp, one "monadic" construction I can think of is Promises
00:13:29 <Axman6> have you ever wruitten code which did out = []; for(x in anArray) { for(b in anotherArray) { out.pushBack(someSomethingWith(a,b)); }}?
00:13:34 <forp> Axman6*
00:13:53 <Axman6> that's the list monad
00:14:26 <forp> Okay thanks
00:15:29 <Axman6> forp: you might find this useful: https://codon.com/refactoring-ruby-with-monads
00:15:35 × Tario quits (~Tario@201.192.165.173) (Remote host closed the connection)
00:15:51 <forp> Thanks Axman6
00:16:13 <Axman6> which is one of my favourite resourtces for helping people "get" what it is to be monadic, without using HAskell
00:16:56 stevenxl joins (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net)
00:18:20 javran joins (~javran@108-201-186-97.lightspeed.sntcca.sbcglobal.net)
00:21:15 × stevenxl quits (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net) (Ping timeout: 246 seconds)
00:21:38 × average quits (uid473595@gateway/web/irccloud.com/x-dptrohonzedrpdag) (Quit: Connection closed for inactivity)
00:22:56 <javran> Hi folks, I have a simple instance of Contravariant: https://github.com/Javran/unicode-general-category/blob/master/src/Data/Char/GeneralCategory/Predicates.hs#L79-L88 I'm wondering if this is easy to do with Generics (I have little to none experience regarding Generics)
00:23:16 <forp> Axman6, this is a good talk I didn't expect
00:24:06 Tario joins (~Tario@200.119.184.39)
00:24:44 × acidjnk_new quits (~acidjnk@p200300d0c72b9578819a903e74dd056f.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
00:25:04 <Axman6> javran: unless you need to do it for lots of types it's probably not worth the effort - I'm guessing Contravariant can't be automatically derived using another mechanism easily either :\
00:25:39 × heatsink quits (~heatsink@2600:1700:bef1:5e10:90f:37ea:5699:98fc) (Remote host closed the connection)
00:25:52 <dmwit> Huh, Contravariant is in base now. Neat.
00:26:07 <dmwit> Looks like it already has instances for the relevant Generic stuff, too.
00:27:06 <javran> dmwit: yes, that's when I started to wonder - I tried `contramap f p = to (contramap f (from p))`, which didn't work.
00:27:23 <Axman6> shouldn't be too hard to add support for deriving it like Functor right?
00:27:31 <javran> I probably won't bother to actually do it for such a simple case, just wondering.
00:27:42 <Axman6> it makes me sad that doesn't work :(
00:27:53 <monochrom> Axman6, forp: "for(a in anArray) { for(b in anotherArray)" would just need the list Applicative; for full use of the list Monad, make "anotherArray" a function of a.
00:27:56 <Axman6> that instance should totally be in Generic though
00:28:13 <Axman6> monochrom: shhh :)
00:28:22 <monochrom> OK!
00:28:46 mp___ joins (mp@hell.cx)
00:28:58 × nighmi quits (~felix@port-83-236-34-206.dynamic.as20676.net) (Quit: WeeChat 3.0.1)
00:29:08 × solidus-river quits (~mike@174.127.249.180) (Quit: leaving)
00:29:27 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
00:29:45 ski . o O ( "Escaping Hell with Monads" by Philip Nilsson in 2017-05-08 at <https://philipnilsson.github.io/Badness10k/escaping-hell-with-monads/> )
00:29:53 × fissureman quits (~quassel@c-73-201-159-163.hsd1.dc.comcast.net) (Ping timeout: 260 seconds)
00:31:11 <monochrom> Heh badness 10000 = TeX overflow
00:32:26 dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net)
00:33:42 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
00:34:28 × conal quits (~conal@192.145.118.79) (Quit: Computer has gone to sleep.)
00:35:01 <Axman6> javran: what's this project for anyway?
00:35:50 j is now known as jess
00:36:04 <javran> Axman6: a byproduct as my adventure towards a Java parser using Alex/Happy :)
00:36:40 <javran> it's basically just Data.Char.generalCategory but with Unicode 13.0.0 database
00:36:46 conal joins (~conal@192.145.118.79)
00:36:59 <javran> (since Java SE 15+ Spec calls for Unicode 13)
00:37:20 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
00:37:33 <Axman6> fun :) you could combine this with dibblego's javaclass package: https://hackage.haskell.org/package/javaclass-0.0.1/docs/Language-Java-Class-ClassFile.html
00:38:46 <javran> Thanks for the link, I'll take a note of that
00:38:48 × Tario quits (~Tario@200.119.184.39) (Read error: Connection reset by peer)
00:39:02 <Axman6> javran: also, do you reckon this might be useful for Data.Char?
00:39:19 <Axman6> javran: that package is pure craziness (Sorry Tony)
00:39:51 <dibblego> yeah it was a crazy time
00:40:19 <Axman6> sure was
00:40:22 <javran> I'm not sure what other use could it have though - just to untie Unicode depedency from any specific GHC version
00:40:38 <dibblego> I'd do it differently today, but not a lot
00:41:04 <javran> as base ships with its own Unicode database, which is manually updated and outdated a bit these days
00:41:07 × puffnfresh_ quits (~puffnfres@45.76.124.5) (Ping timeout: 265 seconds)
00:41:23 <Axman6> yeah I wondered how out of date it was
00:41:45 <javran> The file is libraries/base/cbits/WCsubst.c
00:41:54 <javran> (In GHC repo)
00:41:55 puffnfresh joins (~puffnfres@45.76.124.5)
00:43:09 <javran> speak of which I'm not sure how performant GHC version is doing - for now it's not supercritical so I just binary-search a unboxed Array, wondering why is this bit in C
00:44:07 <Axman6> I've been meaning for a few weeks to rewrite bits of https://github.com/BobSteagall/utf_utils in Haskell for the text-utf8 package
00:44:48 Tario joins (~Tario@201.192.165.173)
00:45:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:90f:37ea:5699:98fc)
00:46:20 <Axman6> I have a PR that I didn't quite finish off for navigating utf8 encoded data that was 100x faster than take and drop using stream fusion using SIMDish ideas, but never finished off the last part
00:46:20 rajivr joins (uid269651@gateway/web/irccloud.com/x-qhxglwtyogwwwcfv)
00:50:20 × Raito_Bezarius quits (~Raito@unaffiliated/raito-bezarius/x-8764578) (Remote host closed the connection)
00:50:41 Raito_Bezarius joins (~Raito@unaffiliated/raito-bezarius/x-8764578)
00:50:43 stevenxl joins (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net)
00:52:04 <dmwit> oh
00:52:10 <dmwit> Yet Another String (tm)
00:52:55 <dmwit> At some point all these add is frequent interconversions. To really be an efficiency win your whole infrastructure has to agree on a single choice.
00:54:38 × forp quits (57e3c46d@87.227.196.109) (Quit: Connection closed)
00:54:54 <dmwit> What happened with backpack? Where is the string-adapter pack?
00:55:11 × stevenxl quits (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
00:57:43 <Axman6> well text-utf8 was intended to be a replacement for text eventually once it proved itself. what I really want is text-utf8 with a concise structure to give O(1) indexing - newhoggy's got a package that could allow that pretty easily
00:58:42 <Axman6> and the space overhead would be like something like 0.25% or something crazy like that
00:59:58 <Axman6> uh, succinct, not concise
01:00:03 <dmwit> I figured.
01:01:18 Axman6 thinks concise would be a good name for a library of succinct data structures
01:01:43 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
01:04:35 slack1256 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net)
01:05:57 × dragestil quits (~quassel@fsf/member/dragestil) (Ping timeout: 264 seconds)
01:07:01 × slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
01:08:11 dragestil joins (~quassel@fsf/member/dragestil)
01:10:26 bobweb joins (ac3a11c2@172.58.17.194)
01:11:41 <bobweb> Hi. I have this problem: https://paste.tomsmeding.com/enFWKfUv. Please help me to define an Applicative instance for a product datatype. Thank you.
01:12:11 × stree quits (~stree@68.36.8.116) (Ping timeout: 256 seconds)
01:13:39 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
01:14:36 × conal quits (~conal@192.145.118.79) (Quit: Computer has gone to sleep.)
01:14:51 <monochrom> IIRC you need to start with "instance Monoid a => Applicative (Const a b)". You need the "Monoid a" assumption. Then you will find that the rest is a breeze.
01:15:17 <monochrom> IOW you will find that a's mempty and mappend very useful.
01:15:58 conal joins (~conal@192.145.118.79)
01:16:13 <c_wraith> the problem is the definition of pure - I think you just lost track of what you were doing
01:16:30 <bobweb> OK, now that I've posted I've seen some clue in the text along the lines of what you mention. Thank you. If not, I'll be back...
01:16:47 <bobweb> yes, noob-itis...
01:17:12 <c_wraith> But yeah, listen to monochrom. This needs Monoid, not just Semigroup
01:17:27 <bobweb> OK.
01:21:18 stevenxl joins (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net)
01:22:58 <bobweb> monochrom: and c_wraith: Thank you, it works now.
01:23:05 <monochrom> :)
01:23:48 × bobweb quits (ac3a11c2@172.58.17.194) (Quit: Connection closed)
01:25:26 stree joins (~stree@68.36.8.116)
01:26:24 × conal quits (~conal@192.145.118.79) (Quit: Computer has gone to sleep.)
01:28:38 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
01:30:31 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Quit: WeeChat 2.9)
01:32:06 conal joins (~conal@192.145.118.79)
01:32:57 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds)
01:33:43 Tario joins (~Tario@200.119.184.61)
01:33:59 × heatsink quits (~heatsink@2600:1700:bef1:5e10:90f:37ea:5699:98fc) (Remote host closed the connection)
01:35:21 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
01:39:53 drbean joins (~drbean@TC210-63-209-42.static.apol.com.tw)
01:40:00 heatsink joins (~heatsink@2600:1700:bef1:5e10:90f:37ea:5699:98fc)
01:43:09 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 264 seconds)
01:43:11 × Tario quits (~Tario@200.119.184.61) (Read error: Connection reset by peer)
01:44:09 Tario joins (~Tario@201.192.165.173)
01:45:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:47:38 jacks2 joins (~bc8134e3@217.29.117.252)
01:50:37 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
01:50:58 gnumonic joins (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net)
01:53:57 <gnumonic> Hello. I'm writing some TH and I was wondering if there was a way to express the "{}" in TH (I dunno what it's called. Field wildcard?) that you'd use if you wanted to match on a constructor while ignoring its fields (eg "SomeConstr {} -> y"
01:55:15 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
01:56:14 codygman__ joins (~user@47.186.207.161)
01:58:52 <glguy> recP name []
01:59:13 × stevenxl quits (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
02:01:05 <gnumonic> Thanks! I think that'll work. For some reason I thought I had to use ConP.
02:03:26 myShoggoth joins (~myShoggot@75.164.81.55)
02:04:20 × myShoggoth quits (~myShoggot@75.164.81.55) (Client Quit)
02:08:42 DataComputist joins (~lumeng@50.43.26.251)
02:08:42 stevenxl joins (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net)
02:09:47 × metaweta quits (a6461f1c@166.70.31.28) (Quit: Connection closed)
02:10:08 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
02:11:23 × jacks2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/)
02:11:46 × Lowl3v3l quits (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Quit: Leaving.)
02:12:59 × xsperry quits (~as@unaffiliated/xsperry) ()
02:13:35 × DataComputist quits (~lumeng@50.43.26.251) (Read error: No route to host)
02:13:45 × stevenxl quits (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net) (Ping timeout: 264 seconds)
02:13:49 DataComputist joins (~lumeng@50.43.26.251)
02:14:40 stevenxl joins (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net)
02:14:52 ntkr joins (uid491148@gateway/web/irccloud.com/x-onytzymuldscxwyh)
02:15:58 × stevenxl quits (~stevenlei@c-73-45-168-220.hsd1.il.comcast.net) (Client Quit)
02:19:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
02:19:43 × dhil quits (~dhil@80.208.56.181) (Ping timeout: 265 seconds)
02:19:43 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
02:19:54 Tario joins (~Tario@201.192.165.173)
02:21:59 xff0x_ joins (~xff0x@2001:1a81:5377:7c00:cfc9:4ce8:81dd:681d)
02:24:07 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:24:48 × xff0x quits (~xff0x@port-92-193-144-80.dynamic.as20676.net) (Ping timeout: 260 seconds)
02:27:25 tinhatcat joins (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net)
02:27:33 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds)
02:28:16 raym joins (~ray@115.187.32.14)
02:29:29 Garbanzo joins (~Garbanzo@2602:304:6eac:dc10::2e)
02:29:45 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
02:32:02 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
02:32:16 xsperry joins (~as@cpe-188-129-52-227.dynamic.amis.hr)
02:32:16 × xsperry quits (~as@cpe-188-129-52-227.dynamic.amis.hr) (Changing host)
02:32:16 xsperry joins (~as@unaffiliated/xsperry)
02:33:32 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
02:34:24 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
02:36:07 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
02:37:14 × tabemann quits (~travisb@2600:1700:7990:24e0:101f:ae79:c83b:6c90) (Remote host closed the connection)
02:37:16 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
02:37:29 tabemann joins (~travisb@2600:1700:7990:24e0:b0d9:c8e5:6265:88f4)
02:41:52 ryxai joins (~textual@pool-71-183-41-241.nycmny.fios.verizon.net)
02:43:28 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
02:48:02 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Ping timeout: 264 seconds)
02:48:45 emmanuel_erc joins (~user@cpe-74-71-106-64.nyc.res.rr.com)
02:49:00 kam1 joins (~kam1@37.129.96.190)
02:49:14 z0k joins (~user@115.186.169.1)
02:49:20 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 240 seconds)
02:49:53 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
02:50:07 × dleffler1 quits (~dleffler@178.239.168.171) (Remote host closed the connection)
02:50:08 zebrag joins (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr)
02:58:21 qih joins (~dietpi@219-89-183-60-fibre.sparkbb.co.nz)
02:59:45 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
02:59:55 <qih> Hi, I am using https://www.stephendiehl.com/posts/vim_2016.html to configure a Vim for Haskell, but I've run into an issue with 'stack install hlint ghc-mod', the system reports that I have the incorrect version of GHC to do this. I installed the current GHC using Stack. What is the issue?
03:00:53 guest323 joins (~user@49.5.6.87)
03:03:54 <qih> This is the pastebin re the issue => https://pastebin.com/tzm75a4j
03:04:23 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Ping timeout: 256 seconds)
03:04:41 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
03:05:03 <Axman6> so accoring to hackage, ghc-mod is deprecated
03:05:07 <Axman6> according*
03:05:47 <dmwit> Anyway, the issue is probably that you need to specify an older resolver when installing hlint+ghc-mod.
03:05:50 <Axman6> can't you use HLS with vim?
03:05:52 Guest90956 joins (~marienz@37.120.211.188)
03:06:55 <dmwit> Yeah, LSP is probably the way to go now.
03:07:42 <qih> Axman6: You can, am just reading on the 'Coc' setup, or https://github.com/haskell/haskell-language-server
03:07:52 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
03:08:03 <qih> Thanks for the advice.
03:08:44 <guest323> if f = fix F, F f n = f (pred n), and F f n = F f (pred n), are equal?
03:09:29 <Axman6> assuming F isn't actually a data constructor?
03:09:57 <Axman6> those don't look equal to me though
03:09:59 <guest323> F is just a function
03:10:15 × tinhatcat quits (~tsranso@108-91-101-161.lightspeed.gnvlsc.sbcglobal.net) (Quit: Leaving)
03:10:43 <Axman6> might help to make that clear by not using uppercase names, since that's not a valid name for a non-constructor function
03:11:02 <Axman6> and is pred here, this one?
03:11:03 <Axman6> :t pred
03:11:05 <lambdabot> Enum a => a -> a
03:11:39 <guest323> if f = fix g, g f n = f (pred n), and f n = g f (pred n), are equal? ok?
03:12:33 <Axman6> I think you could prove that one way or the other pretty easily by evaluating it
03:13:04 v01d4lph4 joins (~v01d4lph4@223.233.89.82)
03:14:56 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
03:15:14 <dmwit> guest323: I don't think so. What reasoning did you use to get there?
03:16:07 <dmwit> Ah, I'm wrong. Yes, f n = g f (pred n) = f (pred (pred n)).
03:17:03 <dmwit> But I think it's possible you've made a mistake anyway. Because that doesn't look like a natural equation to arrive at to me. Here's the sequence that looks natural to me:
03:17:19 <heck-to-the-gnom> Could someone explain the haskell logo to me? I can make out the h,a,s, and sort of the k, maaaybe an e, but the two Ls?
03:17:43 × v01d4lph4 quits (~v01d4lph4@223.233.89.82) (Ping timeout: 265 seconds)
03:18:04 <Axman6> it's a combination of a lambda and the >>= operator
03:18:13 <infinisil> I don't think it's meant to say haskell
03:18:47 <heck-to-the-gnom> huh, I must be reaching for straws with the h,a,s,k,e,l,l stuff then
03:18:51 <dmwit> guest323: https://gist.github.com/dmwit/dbeea223d0de082906b3d50d2c28d790
03:19:31 × xff0x_ quits (~xff0x@2001:1a81:5377:7c00:cfc9:4ce8:81dd:681d) (Ping timeout: 272 seconds)
03:19:53 <guest323> it's interesting, that h,a,s,k,e,l,l could be a,s,k,h,e,l,l
03:20:12 xff0x_ joins (~xff0x@2001:1a81:5377:7c00:1d9b:fbcc:ac5f:34bc)
03:20:31 <dmwit> guest323: From there you can go `f n = f (pred n) = f (pred (pred n))` and then undo the definition of `g` to get `f (pred (pred n)) = g f (pred n)`. But it's pretty convoluted, and a simpler explanation of the equation you wrote is that you made a small mistake when expanding the definition of fix.
03:21:57 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:23:12 × Wuzzy quits (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Quit: Wuzzy)
03:23:12 × tanner__ quits (uid491848@gateway/web/irccloud.com/x-rtafqkufgdjftxay) (Quit: Connection closed for inactivity)
03:23:35 <dmwit> (Or, well, there's other ways to get there, too, of course. I'd be interested to see what reasoning you used. I'm much more excited about checking a *proof* than checking a potentially-provable *equality*.)
03:25:15 <guest323> dmwit: I just stuck in that call fixed-point in callCC create a loop, https://paste.ubuntu.com/p/mMsXX7dcVt/
03:26:48 <guest323> dmwit: f n = fix g n = g (fix g) n = fix g (pred n) = f (pred n) why you wouldn't change fix g to f, so f n= fix g n = g f n
03:27:37 <guest323> f n = f (pred n) = g f (pred n)
03:27:37 <dmwit> Yep, that's allowed and correct.
03:27:56 <qih> I originally install 'Stack' using Snaps, then installed a GHCi using Stack. Installing the Haskell-Language-Server has pulled in Cabal and another version of the GHCi it seems, is this normal? Or am I mis-reading 2 x GHCis?
03:28:12 <dmwit> -Yep +Yes
03:29:24 <dmwit> qih: I don't know for sure, but it wouldn't surprise me at all. Stack likes to be in control of your GHC installs, and will happily install multiple if you ask for things from resolvers that have different GHC versions in them.
03:29:40 <guest323> dmwit: https://www.vex.net/~trebla/haskell/cont-monad.xhtml
03:30:11 <qih> Oh right. It seems to work fine is I use 'stack ghci' with no errors, so I will run with that.
03:30:19 <qih> s/is/if
03:30:21 <guest323> dmwit: Setjmp, why it jump back
03:31:29 × alx741 quits (~alx741@186.178.108.164) (Quit: alx741)
03:32:42 v01d4lph4 joins (~v01d4lph4@223.233.89.82)
03:33:16 <dmwit> mu
03:33:51 × stree quits (~stree@68.36.8.116) (Ping timeout: 256 seconds)
03:34:28 forgottenone joins (~forgotten@176.42.23.95)
03:34:47 <dmwit> It doesn't jump back. setjmp causes the name `l` to refer to all the code after it, so if you invoke `l`, you invoke all the code after the setjmp.
03:35:24 <dmwit> It is always going forward. But going forward may run the same code again.
03:35:31 <guest323> dmwit: how that would be possible?
03:35:41 <guest323> dmwit: capture all the code after it
03:35:45 <dmwit> Well... you have the source code right there. ^_^
03:36:34 <guest323> dmwit: I don't understand it, setjmp is just a callCC code, and the next line `modify (+1)` is not related to callCC at all
03:36:42 <dmwit> (I do not think I can write English text that is as clear, concise, and unambiguous as the Haskell code is.)
03:36:56 <dmwit> Oh, but the next line *is* related to callCC.
03:37:08 <guest323> dmwit: what?
03:37:15 <guest323> dmwit: why do you think it's related?
03:37:23 <dmwit> Because callCC gives you access to the current continuation at the moment it's called. And at the moment setjmp is invoked, modify (+1) is inside the current continuation.
03:38:23 <dmwit> Specifically: the current continuation is `modify (+1) >> get >>= \s -> if s == 5 then return s else l`.
03:38:24 <guest323> dmwit: callCC return a Cont r a, but modify (+1) is not the continution which apply on callCC
03:38:47 <dmwit> modify (+1) is not the continuation. But it is part of the continuation (see above).
03:40:34 <dmwit> Precision: the current continuation is `\l -> modify (+1) >> get >>= \s -> if s == 5 then return s else l`.
03:41:21 <guest323> dmwit: what fixed-point is doing here?
03:41:36 <dmwit> It is shoving the whole modify chain into the `else` branch.
03:42:01 <dmwit> modify;get;if s == 5 then return s else (modify;get;if s == 5 then return s else (...))
03:42:34 <guest323> dmwit: look at the code, I still don't understand why callCC capture the code after it as continuation
03:42:50 <guest323> the code after it, they're not passing to it
03:42:52 <dmwit> Me neither. But perhaps some day I will internalize MonadCont.
03:42:53 <guest323> or apply on it
03:43:15 <dmwit> The code after it *is* being passed to it, by the (>>=) operation for ContT.
03:43:57 <guest323> I know the intuition, but I just don't undertand why and how
03:44:15 <dmwit> m >>= k = ContT $ \ c -> runContT m (\ x -> runContT (k x) c)
03:44:19 <guest323> dmwit: I dream to use functions to express this
03:44:37 <dmwit> In this line, `k` is the code after the `setjmp`. It is being passed as an argument to `m`.
03:44:37 <guest323> so it would be general in all the languages
03:44:55 <dmwit> That dream should be achievable.
03:45:23 <guest323> dmwit: but it can't be done without understanding
03:45:31 jamm_ joins (~jamm@unaffiliated/jamm)
03:45:33 <dmwit> Possibly.
03:46:18 × theDon quits (~td@94.134.91.6) (Ping timeout: 245 seconds)
03:46:26 <guest323> first, implement fix in other languages without lazy-eval strategy is possibal?
03:46:28 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:46:43 stree joins (~stree@68.36.8.116)
03:47:10 × mrchampion quits (~mrchampio@38.18.109.23) (Remote host closed the connection)
03:47:26 <guest323> callCC can be written by function
03:48:05 <guest323> do notation and >>= can be defined by function
03:48:13 theDon joins (~td@muedsl-82-207-238-243.citykom.de)
03:48:52 <guest323> data types and functions just are just wrapped and unwrapped
03:49:50 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
03:50:54 × jol_ quits (jol@jol.dev) (Remote host closed the connection)
03:50:57 <dmwit> Hm. fix may be tricky in some languages. Usually fix' :: ((a -> b) -> (a -> b)) -> (a -> b) -- the specialization of fix to function type -- is relatively easy.
03:51:38 <dmwit> You can often get something *like* fix by using fix' on a `() -> a` function type instead of the flat `a` value type.
03:52:10 <dmwit> (This trick -- using `() -> a` as a substitute for a lazy `a` -- is pretty generally useful.)
03:53:43 <shachaf> For a non-strict a, at least.
03:55:08 dmwit nods
03:56:21 × molehillish quits (~molehilli@2600:8800:8d06:1800:c1f2:e355:53f0:4ab8) (Remote host closed the connection)
03:56:52 × theDon quits (~td@muedsl-82-207-238-243.citykom.de) (Ping timeout: 265 seconds)
03:57:02 molehillish joins (~molehilli@2600:8800:8d06:1800:c1f2:e355:53f0:4ab8)
03:57:54 × jluttine_ quits (~jluttine@85-23-95-149.bb.dnainternet.fi) (Ping timeout: 246 seconds)
03:58:31 × kiweun quits (~kiweun@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection)
03:58:33 theDon joins (~td@muedsl-82-207-238-243.citykom.de)
03:59:21 × DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 264 seconds)
03:59:27 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:59:27 finn_elija is now known as Guest27356
03:59:27 FinnElija is now known as finn_elija
04:00:28 Rudd0 joins (~Rudd0@185.189.115.103)
04:01:13 × molehillish quits (~molehilli@2600:8800:8d06:1800:c1f2:e355:53f0:4ab8) (Ping timeout: 244 seconds)
04:03:09 plutoniix joins (~q@184.82.202.5)
04:03:16 ddellacosta joins (~ddellacos@83.143.246.107)
04:03:18 × Guest27356 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
04:03:18 × ddellacosta quits (~ddellacos@83.143.246.107) (Remote host closed the connection)
04:04:56 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:04:57 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:05:20 Tario joins (~Tario@201.192.165.173)
04:06:30 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
04:09:33 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:09:39 × qih quits (~dietpi@219-89-183-60-fibre.sparkbb.co.nz) (Read error: Connection reset by peer)
04:09:50 Tario joins (~Tario@201.192.165.173)
04:11:26 DataComputist joins (~lumeng@50.43.26.251)
04:13:25 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
04:13:25 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:13:53 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
04:13:53 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:14:11 Tario joins (~Tario@201.192.165.173)
04:15:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:18:06 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
04:18:33 × MidAutumnHotaru1 quits (~MidAutumn@unaffiliated/midautumnhotaru) (Ping timeout: 264 seconds)
04:18:37 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
04:18:44 remal parts (~remal@d24-57-234-201.home.cgocable.net) ()
04:19:35 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 265 seconds)
04:19:42 × xff0x_ quits (~xff0x@2001:1a81:5377:7c00:1d9b:fbcc:ac5f:34bc) (Ping timeout: 260 seconds)
04:19:54 <sim590> how can I import package in ghci?
04:19:59 <sim590> something with -package somehting?
04:20:27 xff0x_ joins (~xff0x@2001:1a81:5377:7c00:1d05:c585:2fef:d379)
04:20:44 toorevitimirp joins (~tooreviti@117.182.183.55)
04:20:45 <Axman6> I don't think you can do it once you've started a ghci session, you need to start ghci with -package foo (if I'm wrong I would like to know the answer too!)
04:21:01 <guest323> sim590: cabal?
04:21:11 × azure1 quits (~azure@103.154.230.130) (Read error: Connection reset by peer)
04:21:54 <sim590> I don't have the package. I want to do it quick in front of someone. Can I install the package to use it live like cabal install <package>?
04:22:07 <dmwit> Axman6: You can :set -package from within ghci. But it has to already be installed of course.
04:22:31 azure1 joins (~azure@103.154.230.130)
04:23:12 <sim590> Yeah. It's just when I have a project.cabal file, downloads when I build are only local to the project, right?
04:23:22 <dmwit> sim590: I think the modern way is `cabal install --libs foo --package-env default && ghci -package-env default`.
04:23:28 <monochrom> https://cabal.readthedocs.io/en/3.4/cabal-commands.html#cabal-v2-run and scroll a bit down for "also supports running script files". This is the fastest way including least learning.
04:23:38 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
04:24:00 <sclv> You can also cabal repl and pass it packages
04:24:24 <sclv> and it’ll launch the repl with packages in scope
04:24:27 <dmwit> Wait, how?
04:24:34 <dmwit> I feel like I've tried and failed to do that in the past.
04:25:03 <sclv> cabal repl —build-depends containers
04:25:07 <sclv> Iirc
04:25:17 <sim590> Weird. It says http://ix.io/2TOK when I'm trying to cabal install --libs random
04:25:18 <monochrom> "cabal v2-repl --build-depends "vector >= 0.12 && < 0.13"" from https://cabal.readthedocs.io/en/3.4/cabal-commands.html#cabal-v2-repl
04:25:18 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Client Quit)
04:25:48 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
04:25:54 <monochrom> s/--libs/--lib/
04:26:12 <sim590> Oh OK. Thanks!
04:27:31 <dmwit> sclv: ooooh, I was trying `--constraint`.
04:27:48 <dmwit> Well this is great.
04:27:53 <sim590> Weird. It just said "up to date" when I installed it, but earlier, it said it couldn't load the package. Anyway, now it's there. weird.
04:28:05 × unyu quits (~pyon@unaffiliated/pyon) (Quit: test)
04:29:51 <monochrom> The other thing I learned recently is that if you don't want those chatty messages "downloading... building... up to date... using environment file..." you can use -v0. This can be important if you're feeding stdout to another program that gets confused by those messages.
04:30:05 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
04:33:32 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
04:34:34 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
04:39:02 × DataComputist quits (~lumeng@50.43.26.251) (Ping timeout: 264 seconds)
04:44:52 DataComputist joins (~lumeng@50.43.26.251)
04:47:18 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
04:49:13 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds)
04:49:33 frozenErebus joins (~frozenEre@94.128.81.87)
04:50:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
04:52:06 × kam1 quits (~kam1@37.129.96.190) (Read error: Connection reset by peer)
04:52:22 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
04:58:40 kam1 joins (~kam1@37.129.96.190)
04:58:41 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
04:59:10 × kam1 quits (~kam1@37.129.96.190) (Read error: Connection reset by peer)
05:06:32 lupulin joins (~lupulo@163.117.64.56)
05:06:42 × lupulo quits (~lupulo@163.117.64.56) (Read error: Connection reset by peer)
05:07:18 × DataComputist quits (~lumeng@50.43.26.251) (Quit: Leaving...)
05:07:33 chibi joins (~chibi@75-26-238-119.lightspeed.glvwil.sbcglobal.net)
05:09:26 <chibi> Hello. Is it normal for V2 from the linear package to take up a lot of time/RAM?
05:09:41 DataComputist joins (~lumeng@50.43.26.251)
05:10:18 <chibi> I have 4 calls to V2 in a ~350 line application and it took up 25% of all time and ~40% of all my RAM
05:10:59 <chibi> ...which was only for about 16 seconds, I tried running it longer but it ends up causing an OOM crash after like 40 seconds and I have to reboot :P
05:14:09 pieguy128_ joins (~pieguy128@bras-base-mtrlpq5031w-grc-47-67-70-101-46.dsl.bell.ca)
05:14:13 × mozzarella quits (~sam@unaffiliated/sam113101) (Ping timeout: 245 seconds)
05:14:20 mozzarel1 joins (~sam@unaffiliated/sam113101)
05:14:34 mozzarel1 is now known as mozzarella
05:14:41 × pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-47-67-70-101-46.dsl.bell.ca) (Ping timeout: 265 seconds)
05:15:20 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 256 seconds)
05:15:32 kam1 joins (~kam1@37.129.96.190)
05:16:02 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
05:16:26 × ryxai quits (~textual@pool-71-183-41-241.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:18:05 <dmwit> What an odd question. I don't think I have ever written a program for which V2 took up a lot of time/RAM, so no, it's definitely not normal.
05:18:20 <dmwit> But then using V2 in the first place is not normal, because I don't think I have ever written a program that used it.
05:19:07 <dmwit> In the grand scheme of things, programming at all probably is not normal.
05:25:05 <chibi> Heh, that's true. I'm using the SDL graphics library, and one of it's data types is a Rectangle type that uses V2, so that's why I'm using it. Profile log says that's all fmap's fault so...
05:25:22 <edwardk> chibi: what are you doing with those V2s is perhaps more the question
05:25:22 <chibi> Maybe V2 just has an innefficient fmap implementation?
05:25:40 <edwardk> fmap f (V2 a b) = V2 (f a) (f b)
05:25:48 <edwardk> and V2 is strict in both args
05:26:28 dmwit wonders if edwardk's crystal ball is showing him more than dmwit's is
05:26:52 <chibi> Lemme just share the two functions I'm calling it from
05:26:53 <edwardk> you might be fmapping with some big scary computation but most things folks wind up fmapping over that type for sdl purposes are little things like swapping out CInts for Ints and the like
05:26:55 <dmwit> chibi: More directly: if you want help, you're probably gonna have to do some minimizing and share some code.
05:27:20 <edwardk> V2 is rather deliberately quite boring
05:27:51 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
05:28:18 <edwardk> to the point that when linear switches over to run on top the new distributive it'll be able to be generated almost entirely automatically
05:28:19 <edwardk> https://github.com/ekmett/distributive/blob/main/distributive/src/Data/Rep/Internal.hs#L1966
05:28:28 × kam1 quits (~kam1@37.129.96.190) (Read error: Connection reset by peer)
05:28:59 <chibi> https://p.sicp.me/bA6iE.hs
05:29:05 <chibi> This code's hacky all over mind
05:29:16 <chibi> So apologies for that to start with
05:29:42 <chibi> 3>
05:30:26 <edwardk> nothing there looks too slow. there's a few things i'd change like ent^.entPos^._1 to ent^.entPos._1
05:30:57 <chibi> The one thing that might be ig here is multiplying and rouning those floating point values *160, would that be enough to cause those functions to eat up resources like that?
05:31:06 <edwardk> and you could proably use an iso between (a,a) and V2 a to get both halves of the Pos at a time
05:31:30 <edwardk> but none of that should be super slow
05:31:36 × electricityZZZZ quits (~electrici@135-180-3-82.static.sonic.net) (Ping timeout: 265 seconds)
05:32:20 <dmwit> ...or just store a V2 in Static in the first place
05:32:20 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
05:32:27 kam1 joins (~kam1@37.129.96.190)
05:32:27 <edwardk> or that, yes
05:32:58 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
05:33:13 <dmwit> How confident are you that this code is the bad code?
05:33:16 v01d4lph_ joins (~v01d4lph4@223.233.79.215)
05:34:02 <edwardk> this code doesn't seem to do much to be remotely concerned about
05:34:17 <dmwit> kinda why I ask, yeah
05:34:20 frankdmartinez joins (~frankdmar@62.182.99.65)
05:35:21 × v01d4lph4 quits (~v01d4lph4@223.233.89.82) (Ping timeout: 264 seconds)
05:35:36 <chibi> Intersting, I guess I'll have to fiddle with that a bunch more to see what exactly is causing the OOM crashing. I find it weird too, but thats what the output of +RTS -p is saying
05:35:54 <edwardk> i mean the worst thing you do is walk and grab halves of entpos/size separately rather than together, but thats only a factor of 2-4x on something that should do almost nothing
05:36:05 <chibi> 3>...or just store a V2 in Static in the first place
05:36:13 <chibi> That's what a good programmer would do :)
05:36:23 <edwardk> you could store a whole rectangle in there even
05:36:24 <edwardk> ;)
05:37:41 <dmwit> At this rate if you hang out a bit longer I think we can just delete all of your code.
05:37:47 <edwardk> anyways V2 isn't doing any appreciable work here
05:38:22 <chibi> Then maybe this code snippet is getting called too often?
05:38:26 <chibi> COST CENTRE MODULE SRC %time %alloc
05:38:29 <chibi> fmap Linear.V2 src/Linear/V2.hs:159:3-34 31.3 43.7
05:38:30 <edwardk> i've found that deleting all my code especially before i release it is a great way to cut maintenance burden
05:38:58 <edwardk> chibi: keep in mind you aren't the only customer of V2. SDL is using it internally a bunch too
05:39:42 × z0k quits (~user@115.186.169.1) (Ping timeout: 256 seconds)
05:40:23 <chibi> Yeah, that's true as well. Time for the scientific method it seems.
05:40:30 <chibi> Thanks for the help.
05:40:33 <edwardk> https://github.com/ekmett/linear/blob/master/src/Linear/V2.hs#L162 is the fmap in question
05:40:42 <edwardk> it literally can't do anything less than it does
05:41:37 <edwardk> it is probably however being charged all the costs for all the f's that are being fmapped over it though
05:42:02 × Garbanzo quits (~Garbanzo@2602:304:6eac:dc10::2e) (Ping timeout: 264 seconds)
05:42:06 <chibi> Yeah, it's definitely not the fmap itself.
05:43:10 <edwardk> one reason wy fmap is probably showing up at the cost center is that V2 is strict in its args, and fmap is constructing the result V2, forcing the args as it goes. so its viewed as the thing that forces the results, not just something passing an unevaluated thunk into a structure to hit some later victim.
05:43:44 <edwardk> so all the work of every f being mapped anywhere by any user of V2 is being charged to that one cost center
05:43:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
05:44:05 <edwardk> unsurprisingly this might yield a large number
05:44:35 molehillish joins (~molehilli@2600:8800:8d06:1800:c1f2:e355:53f0:4ab8)
05:44:48 × v01d4lph_ quits (~v01d4lph4@223.233.79.215) (Ping timeout: 256 seconds)
05:46:14 v01d4lph4 joins (~v01d4lph4@171.76.7.228)
05:46:54 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
05:47:36 <chibi> Ahh okay, so that's just how strictness ends up looking to the profiler
05:47:42 slack1256 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net)
05:49:02 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:50:54 × raym quits (~ray@115.187.32.14) (Remote host closed the connection)
05:54:17 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-nolohoourjcznqbc) (Quit: Connection closed for inactivity)
05:54:31 knupfer joins (~Thunderbi@i59F7FF9C.versanet.de)
05:54:57 × stree quits (~stree@68.36.8.116) (Ping timeout: 256 seconds)
05:55:28 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:56:33 × kam1 quits (~kam1@37.129.96.190) (Read error: Connection reset by peer)
06:00:38 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
06:01:44 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
06:02:13 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
06:07:06 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
06:07:30 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
06:08:04 stree joins (~stree@68.36.8.116)
06:09:34 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:12:14 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:12:17 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
06:16:26 × slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
06:17:08 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
06:23:17 average joins (uid473595@gateway/web/irccloud.com/x-npstzxdmagpahzvl)
06:24:08 × s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Remote host closed the connection)
06:26:25 jluttine_ joins (~jluttine@85-23-66-6.bb.dnainternet.fi)
06:27:25 graf_blutwurst joins (~user@2001:171b:226e:adc0:78b0:5183:4ef7:68f)
06:27:52 × knupfer quits (~Thunderbi@i59F7FF9C.versanet.de) (Ping timeout: 256 seconds)
06:29:48 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
06:34:13 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
06:35:08 _flow_ joins (~none@salem.informatik.uni-erlangen.de)
06:35:11 × waleee-cl quits (uid373333@gateway/web/irccloud.com/x-hdzjfjotgayyuqwv) (Quit: Connection closed for inactivity)
06:40:10 idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
06:40:48 ddellacosta joins (~ddellacos@86.106.143.245)
06:41:13 × frankdmartinez quits (~frankdmar@62.182.99.65) (Quit: frankdmartinez)
06:41:30 is_null joins (~jpic@pdpc/supporter/professional/is-null)
06:44:16 × minoru_shiraeesh quits (~shiraeesh@46.34.206.238) (Ping timeout: 276 seconds)
06:44:31 linarcx joins (~user@151.241.50.25)
06:44:42 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:45:26 × ddellacosta quits (~ddellacos@86.106.143.245) (Ping timeout: 256 seconds)
06:45:45 × molehillish quits (~molehilli@2600:8800:8d06:1800:c1f2:e355:53f0:4ab8) (Remote host closed the connection)
06:46:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:46:28 molehillish joins (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8)
06:51:19 × marinelli quits (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli)
06:52:21 kiweun joins (~kiweun@2607:fea8:2a62:9600:ed16:1da2:9478:b2b4)
06:52:32 × linarcx quits (~user@151.241.50.25) (Ping timeout: 260 seconds)
06:54:47 malumore joins (~malumore@151.62.117.161)
06:55:31 × molehillish quits (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8) (Remote host closed the connection)
06:57:02 × kiweun quits (~kiweun@2607:fea8:2a62:9600:ed16:1da2:9478:b2b4) (Ping timeout: 264 seconds)
06:57:27 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:01:27 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:01:55 × hexfive quits (~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
07:02:16 thc202 joins (~thc202@unaffiliated/thc202)
07:02:21 geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
07:04:33 wonko7 joins (~wonko7@62.115.229.50)
07:06:21 × howdoi quits (uid224@gateway/web/irccloud.com/x-txtivmvabmjkksay) (Quit: Connection closed for inactivity)
07:08:18 raym joins (~ray@115.187.32.14)
07:08:33 × v01d4lph4 quits (~v01d4lph4@171.76.7.228) (Remote host closed the connection)
07:09:16 v01d4lph4 joins (~v01d4lph4@171.76.7.228)
07:09:26 × v01d4lph4 quits (~v01d4lph4@171.76.7.228) (Remote host closed the connection)
07:10:02 v01d4lph4 joins (~v01d4lph4@171.76.7.228)
07:10:03 × v01d4lph4 quits (~v01d4lph4@171.76.7.228) (Read error: Connection reset by peer)
07:10:17 v01d4lph4 joins (~v01d4lph4@171.76.7.228)
07:10:50 × v01d4lph4 quits (~v01d4lph4@171.76.7.228) (Remote host closed the connection)
07:11:12 v01d4lph4 joins (~v01d4lph4@171.76.7.228)
07:11:16 × v01d4lph4 quits (~v01d4lph4@171.76.7.228) (Remote host closed the connection)
07:14:18 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:15:25 ddellacosta joins (~ddellacos@86.106.143.193)
07:17:09 minoru_shiraeesh joins (~shiraeesh@46.34.206.238)
07:17:17 michalz joins (~user@185.246.204.47)
07:18:35 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
07:20:26 × ddellacosta quits (~ddellacos@86.106.143.193) (Ping timeout: 264 seconds)
07:20:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
07:23:21 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
07:23:31 coot joins (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl)
07:23:36 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
07:24:32 × geowiesnot_bis quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
07:26:23 × cheers- quits (~user@unaffiliated/cheers) (Quit: cheers-)
07:28:26 slack1256 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net)
07:28:48 Vadrigar joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
07:28:55 <slack1256> Has someone used the haskell language server for developing GHC itself?
07:29:10 <slack1256> I think there will be problems as ghc is not cabal based.
07:29:25 <Uniaika> yeah it's a tad weird
07:29:41 <Uniaika> but you better ask on #haskell-language-server
07:29:47 <slack1256> Got it.
07:30:32 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:8dad:96e9:564f:ba6c) (Ping timeout: 240 seconds)
07:34:15 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
07:34:44 jpds joins (~jpds@gateway/tor-sasl/jpds)
07:35:19 × ddere quits (uid110888@gateway/web/irccloud.com/x-osvdowtbmzcjquma) (Quit: Connection closed for inactivity)
07:36:03 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
07:38:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:40:45 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 264 seconds)
07:41:02 idhugo_ joins (~idhugo@80-62-117-136-mobile.dk.customer.tdc.net)
07:41:28 mananamenos joins (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net)
07:43:20 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
07:43:52 × idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds)
07:45:36 borne joins (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de)
07:45:43 × finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
07:46:05 finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
07:49:44 × vicfred quits (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
07:51:41 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Read error: Connection reset by peer)
07:52:46 Sornaensis joins (~Sornaensi@79.142.232.102.static.router4.bolignet.dk)
07:54:03 chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de)
07:54:08 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
07:55:20 × Sorny quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
07:55:53 ddellacosta joins (~ddellacos@86.106.143.219)
07:56:31 cheers joins (user@unaffiliated/cheers)
07:57:08 × azure1 quits (~azure@103.154.230.130) (Ping timeout: 245 seconds)
07:57:44 × cheers quits (user@unaffiliated/cheers) (Client Quit)
07:58:22 cheers joins (user@unaffiliated/cheers)
07:59:47 Franciman joins (~francesco@host-79-53-62-46.retail.telecomitalia.it)
08:00:47 × ddellacosta quits (~ddellacos@86.106.143.219) (Ping timeout: 260 seconds)
08:04:08 cfricke joins (~cfricke@unaffiliated/cfricke)
08:07:00 aqd joins (~aqd@84.20.147.33)
08:08:42 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 244 seconds)
08:11:04 Varis joins (~Tadas@unaffiliated/varis)
08:11:27 aggin joins (~ecm@103.88.87.99)
08:11:39 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
08:13:56 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
08:14:13 × jespada quits (~jespada@90.254.243.187) (Ping timeout: 245 seconds)
08:16:25 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
08:16:51 jespada joins (~jespada@90.254.243.187)
08:18:33 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:1f70:74b2:f5a9:8e18) (Ping timeout: 265 seconds)
08:19:50 jakalx parts (~jakalx@base.jakalx.net) ("Disconnected: Replaced by new connection")
08:19:59 × aggin quits (~ecm@103.88.87.99) (Quit: WeeChat 3.0.1)
08:20:28 jakalx joins (~jakalx@base.jakalx.net)
08:21:37 × malumore quits (~malumore@151.62.117.161) (Ping timeout: 272 seconds)
08:23:18 <tomsmeding> "23:32:15 * | hpc . o O ( a haskell program that tells you what ghc version it was built with, using only compilation bugs )"
08:23:25 <tomsmeding> hpc: you were kidding, but https://codegolf.stackexchange.com/questions/139243/determine-your-languages-version
08:23:44 <tomsmeding> okay it's not all compiler bugs
08:24:25 ViCi joins (daniel@10PLM.ro)
08:24:32 azure1 joins (~azure@103.154.230.130)
08:24:37 × gawen quits (~gawen@movzbl.root.sx) (Quit: cya)
08:25:00 <tomsmeding> shapr: I'm the worst when it comes to thinking of ideas for events/whatnot, which is why I am quick to applaud ideas from others :p
08:25:01 gawen joins (~gawen@movzbl.root.sx)
08:26:36 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
08:29:11 stree joins (~stree@68.36.8.116)
08:30:02 × xff0x_ quits (~xff0x@2001:1a81:5377:7c00:1d05:c585:2fef:d379) (Ping timeout: 264 seconds)
08:30:03 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
08:30:05 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:a175:b70a:c656:5ff4)
08:30:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:30:14 <loyon> is there a simple tool that would run `cabal build` everytime I make changes? I mean something light which works on the filesystem, not a full IDE integration.
08:31:26 <opqdonut> wasn't ghcid supposed to be something like that
08:31:53 <opqdonut> I've never used it tho
08:31:55 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
08:32:10 xff0x_ joins (~xff0x@2001:1a81:5390:3000:45a9:729d:b2a5:971c)
08:32:25 <tomsmeding> loyon: try ghcid, assuming you want it for error feedback
08:32:30 <opqdonut> this might be interesting as well https://github.com/haskell/cabal/issues/5252
08:33:49 × lisq quits (~quassel@lis.moe) (Quit: lisq)
08:33:59 lisq joins (~quassel@lis.moe)
08:34:05 jakalx joins (~jakalx@base.jakalx.net)
08:35:14 × lisq quits (~quassel@lis.moe) (Client Quit)
08:35:15 <loyon> thanks all I'll look into those! ghcid looks exactly like that indeed.
08:35:25 lisq joins (~quassel@lis.moe)
08:36:57 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
08:37:09 <loyon> also, I just remember `entr` which is a pretty generic C tool that allow doing such things.
08:39:30 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
08:39:46 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
08:40:28 <olligobber> tomsmeding, I have that but python?
08:40:29 <slack1256> I wrote a script using inotify once. I think `entr` uses that.
08:40:52 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
08:41:21 <olligobber> `len("ㅤ ㅤ\x20a".split())'
08:41:27 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
08:42:18 <loyon> slack1256: yeah exactly, I used to do that too :-)
08:42:38 <loyon> even did it in haskell at some point, that was more fun than with bash
08:42:57 <loyon> but it seems `entr` is very flexible, for now working like a charm
08:43:13 × heatsink quits (~heatsink@2600:1700:bef1:5e10:90f:37ea:5699:98fc) (Remote host closed the connection)
08:43:50 malumore joins (~malumore@151.62.117.161)
08:46:09 × minoru_shiraeesh quits (~shiraeesh@46.34.206.238) (Ping timeout: 264 seconds)
08:46:44 × Axman6 quits (~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection)
08:46:59 Axman6 joins (~Axman6@pdpc/supporter/student/Axman6)
08:48:29 fendor joins (~fendor@178.165.131.158.wireless.dyn.drei.com)
08:49:32 minoru_shiraeesh joins (~shiraeesh@46.34.206.238)
08:50:08 × forgottenone quits (~forgotten@176.42.23.95) (Quit: Konversation terminated!)
08:50:36 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
08:51:37 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
08:51:53 mouseghost joins (~draco@wikipedia/desperek)
08:52:04 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
08:55:04 × malumore quits (~malumore@151.62.117.161) (Remote host closed the connection)
08:55:22 malumore joins (~malumore@151.62.117.161)
08:57:17 acidjnk_new joins (~acidjnk@p200300d0c72b9578819a903e74dd056f.dip0.t-ipconnect.de)
08:57:53 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
09:00:09 × meff[m] quits (meffsunado@gateway/shell/matrix.org/x-txsqavrnddjxiriw) (Quit: Idle for 30+ days)
09:00:19 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
09:00:43 jakalx joins (~jakalx@base.jakalx.net)
09:02:00 <tomsmeding> olligobber: you have what, exactly?
09:02:41 <olligobber> tomsmeding, a file that tells you what version you used
09:03:11 <tomsmeding> ah yes, the CGSE topic I linked has a couple of python submissions as well
09:03:23 <tomsmeding> note that I believe literally querying the version, if possible, is disallowed
09:03:26 <tomsmeding> in that question
09:03:40 <olligobber> but calling len and split on a string should be fine
09:04:12 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
09:04:29 ryxai joins (~textual@pool-71-183-41-241.nycmny.fios.verizon.net)
09:04:34 ddellacosta joins (~ddellacos@86.106.143.180)
09:05:01 × slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection)
09:05:47 × drbean quits (~drbean@TC210-63-209-42.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
09:06:31 × xff0x_ quits (~xff0x@2001:1a81:5390:3000:45a9:729d:b2a5:971c) (Quit: xff0x_)
09:06:39 xff0x joins (~xff0x@2001:1a81:5390:3000:45a9:729d:b2a5:971c)
09:07:12 kritzefitz joins (~kritzefit@p548c9398.dip0.t-ipconnect.de)
09:07:27 × Guest90956 quits (~marienz@37.120.211.188) (Remote host closed the connection)
09:08:56 × ddellacosta quits (~ddellacos@86.106.143.180) (Ping timeout: 240 seconds)
09:13:08 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:15:21 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:a175:b70a:c656:5ff4) (Remote host closed the connection)
09:17:06 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:68c9:1c68:98e2:37ad)
09:17:40 <olligobber> ok, posted my golf there: https://codegolf.stackexchange.com/questions/139243/determine-your-languages-version/221122#221122
09:17:47 geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr)
09:18:07 Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
09:23:52 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
09:25:52 Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
09:26:05 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
09:28:56 <olligobber> wait I can shave off 4 bytes
09:29:03 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
09:32:18 × jneira quits (501e65b6@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.182) (Ping timeout: 265 seconds)
09:33:45 <fendor> if a type implements an additional type class, does that warrant a major version bump?
09:34:07 <merijn> fendor: If it's not an orphan, I'd say no
09:34:43 <merijn> fendor: But consult the PVP flowchart? :p
09:34:47 <merijn> fendor: https://pvp.haskell.org/
09:35:15 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
09:35:21 <fendor> merijn, that's a good flowchart, so far I always only read the first page of that site
09:35:22 <fendor> thanks!
09:35:48 ddellacosta joins (~ddellacos@86.106.143.154)
09:36:12 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
09:37:16 frozenErebus joins (~frozenEre@94.128.81.87)
09:38:35 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
09:38:58 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
09:40:50 × ddellacosta quits (~ddellacos@86.106.143.154) (Ping timeout: 264 seconds)
09:41:55 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:68c9:1c68:98e2:37ad) (Ping timeout: 240 seconds)
09:42:45 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 256 seconds)
09:43:07 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
09:43:42 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
09:48:07 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Ping timeout: 260 seconds)
09:50:18 × ryxai quits (~textual@pool-71-183-41-241.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:51:40 frankdmartinez joins (~frankdmar@62.182.99.65)
09:51:54 jakalx joins (~jakalx@base.jakalx.net)
09:52:13 ubert joins (~Thunderbi@p200300ecdf25d9f2e6b318fffe838f33.dip0.t-ipconnect.de)
09:53:50 z0k joins (~user@115.186.169.1)
09:55:16 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:2475:6303:62e1:31c1)
09:55:34 × frankdmartinez quits (~frankdmar@62.182.99.65) (Client Quit)
09:56:58 × kritzefitz quits (~kritzefit@p548c9398.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
09:57:01 Guest38849 is now known as zzz
09:57:17 kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49)
09:59:07 × Guest93685 quits (~textual@2603-7000-3040-0000-5567-17e6-5142-189b.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:59:42 <zzz> hello my people. I did "import Primes" at the top of the file and "cabal install primes --lib". I'm getting "could not find module 'Primes'". what am I missing?
10:00:48 <merijn> zzz: The fact that "cabal install primes" isn't really the way to make packages available to your program/code
10:01:20 <zzz> where can i educate myself on the true ways of haskell?
10:01:25 <merijn> zzz: What you'd really wanna do is make a minimal .cabal file and add primes as build-depends in it. You can run "cabal init --interactive" to generate one
10:01:55 <merijn> zzz: See also: https://cabal.readthedocs.io/en/latest/getting-started.html
10:02:28 <zzz> much appreciated
10:04:14 <merijn> zzz: Basically, because global package installs usually turn into a mess of conflicting things on different projects, cabal doesn't have a global notion of "installed", but selectively makes a set of package available to projects, so projects can never conflict (think of it at kinda automatic and dynamic virtualenvs if you're familiar with those)
10:05:01 × Guest53001 quits (~soulseeke@90.214.167.201) (Read error: Connection reset by peer)
10:06:07 <zzz> what have i done exactly by running "cabal install package --lib" ?
10:08:14 <merijn> zzz: I fibbed, because there *is* sort of a global install thing, but it's not really finished/usable yet. So "install --lib" does a kinda half-baked global install, but the usability of *using* it isn't really finished/done :)
10:09:46 <zzz> understood
10:12:04 ddellacosta joins (~ddellacos@86.106.143.89)
10:14:45 <merijn> zzz: For a quick way to get a ghci session with a package you can also do "cabal repl --build-depends=primes" to get a ghci with that packages available
10:15:16 <merijn> But in general you'll want to use a .cabal file for non-trivial packages/code anyway
10:15:28 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 245 seconds)
10:16:45 × ddellacosta quits (~ddellacos@86.106.143.89) (Ping timeout: 264 seconds)
10:17:14 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
10:18:30 ukari joins (~ukari@unaffiliated/ukari)
10:20:32 Stanley00 joins (~stanley00@unaffiliated/stanley00)
10:22:31 jacks2 joins (~bc8134e3@217.29.117.252)
10:24:14 × PtxDK quits (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Quit: No Ping reply in 180 seconds.)
10:24:39 Alleria joins (~textual@zrcout.mskcc.org)
10:25:01 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
10:25:02 Alleria is now known as Guest79447
10:25:20 PtxDK joins (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
10:28:08 × aarvar quits (~foewfoiew@2601:602:a080:fa0:75fb:cea1:4d26:9157) (Ping timeout: 240 seconds)
10:30:37 peanut_ joins (~peanut@2a02:8388:a101:2600:9f7e:958d:f1dd:b94a)
10:32:26 frozenErebus joins (~frozenEre@94.128.81.87)
10:34:42 Nahra joins (~Nahra@unaffiliated/nahra)
10:35:06 rond_ joins (594021ff@89-64-33-255.dynamic.chello.pl)
10:35:36 <rond_> Hi! What is a 'literal'? I've stumbled upon this term with no definition
10:35:51 Benzi-Junior joins (~BenziJuni@dsl-149-67-143.hive.is)
10:35:54 <shachaf> What's the context?
10:36:17 <shachaf> It probably means somthing like a number or a string written out in source code (i.e. a literal value, rather than a variable referring to a value).
10:36:31 <Uniaika> rond_: 1, or "string"
10:36:37 <rond_> All literal constants are of primitive type.
10:36:38 <rond_> Literals of algebraic type are expressed by giving an explicit application of a constructor.
10:36:50 <rond_> Uniaika that's hardly a definition...
10:36:59 <Uniaika> because I gave you an example ;)
10:37:02 <rond_> what about [1,2,3] ?
10:37:08 × stree quits (~stree@68.36.8.116) (Ping timeout: 245 seconds)
10:37:12 × z0k quits (~user@115.186.169.1) (Ping timeout: 256 seconds)
10:37:25 <Uniaika> yeah it's a list litteral
10:37:34 <peanut_> https://hackage.haskell.org/package/ghc-8.10.2/docs/Literal.html
10:37:59 <shachaf> What's the full context?
10:38:02 <shachaf> Is this the STG paper?
10:38:08 <rond_> yes
10:38:22 <shachaf> It looks like page 20 says what literals are.
10:38:24 <rond_> I didn't know that it would be known here :O
10:38:58 <shachaf> Oh, no, I guess they use it in a more general way later on.
10:39:00 PtxDK_ joins (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6)
10:39:02 <rond_> Exactly!
10:39:03 × PtxDK quits (~quassel@2a01:7c8:aac3:591:5054:ff:fe3d:cac6) (Ping timeout: 272 seconds)
10:39:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
10:39:08 <rond_> without a definition...
10:39:38 <rond_> literal == data value    - do you think it's justified?
10:39:44 <rond_> Since everything is immutable... ?
10:39:45 <peanut_> [1,2,3] is a list of integer literals, I don't think the list is a literal itself
10:39:50 <shachaf> OK, my reading is, when they say "literal", they mean something of a primitive type, like integers.
10:40:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:40:14 <shachaf> And maybe other things if you add them to your language, but I don't think their simple language has that.
10:40:29 <rond_> So "Literals of algebraic type are expressed by giving an explicit application of a constructor." basically refers to boxed IntegeR?
10:40:41 <shachaf> That one sentence about literals of algebraic data types is saying that things like [1,2,3] -- or even "abc" -- don't count as literals.
10:40:49 <shachaf> Or Integer, sure.
10:41:19 <rond_> Why [1,2,3] doesn't fall into "expressed by giving an explicit application of a constructor." ?
10:41:25 <shachaf> Because [1,2,3] is actually "Cons 1 (Cons 2 (Cons 3 Nil))", and only the values of primitive types are literals.
10:41:29 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
10:41:48 <shachaf> It does -- in context, that sentence is saying those things *don't* count as literals, I think.
10:42:24 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
10:42:28 <rond_> My understanding is "Literals of algebraic type are" means that we have 2 distinguishable types of literals
10:43:33 <shachaf> This is my reading: All literal constants are of primitive type; [what you might, in another context, call "]literals of algebraic type["] are expressed by giving an explicit application of a constructor.
10:43:40 <rond_> All literal constants are of primitive type.
10:43:40 <rond_> Literals of algebraic type are expressed by giving an explicit application of a constructor.
10:43:41 <rond_> Don't you read it as
10:43:41 <rond_> "1. Literal constants are:...
10:43:42 <rond_> 2. Literals of algebraic type are..."
10:43:42 <rond_> so two definitions for two distinguishable concepts?
10:43:59 MilkywayPirate joins (~user@178.157.255.8)
10:44:11 <shachaf> My guess is that this doesn't matter too much for understanding the paper, anyway.
10:44:38 kam1 joins (~kam1@37.129.96.190)
10:45:02 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
10:45:02 × kam1 quits (~kam1@37.129.96.190) (Read error: Connection reset by peer)
10:45:43 <rond_> Data types are divided into:
10:45:44 <rond_> I algebraic data types: introduced explicitly by data declarations.
10:45:44 <rond_> I primitive data types: built into the system.
10:45:45 <rond_> For the purpose of this paper:
10:45:45 <rond_> primitive types == unboxed types
10:45:46 <rond_> All literal constants are of primitive type.
10:45:46 <rond_> Literals of algebraic type are expressed by giving an explicit application of a constructor.
10:45:47 <rond_> All arithmetic built-in operations operate over primitive values (for example +#).
10:45:47 <rond_> Definitions for functions operating over non-primitive (i.e. algebraic) values can be
10:45:48 <rond_> expressed directly in the STG language, and hence do not need to be built in.
10:45:48 <rond_> That's what I want to say. And in order to be precise, I'd like to make sure I understand the term "algebraic data types" correctly.
10:47:16 dhil joins (~dhil@80.208.56.181)
10:47:24 <rond_> So the question is: "Literal of algebraic type" means "an instance of any algebraic data type" or "an instance of algebraic data type that is a boxed representation of a primitive data type"
10:47:37 aarvar joins (~foewfoiew@2601:602:a080:fa0:49ff:dc3d:e55f:8dd)
10:49:27 ddellacosta joins (~ddellacos@86.106.143.206)
10:49:32 stree joins (~stree@68.36.8.116)
10:49:43 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
10:49:50 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Ping timeout: 264 seconds)
10:51:59 <rond_> shachaf do you know which one is true? Or do you stand by "it doesn't matter and move on" ?
10:53:16 <shachaf> My guess is that the one sentence you're quoting is using "literal" in a colloquial sense rather than the sense defined in the paper.
10:53:43 <rond_> What's the colloquial sense here?
10:53:45 <shachaf> I think if you run into any specific case where the word "literal" is used, it'll be easy to figure it out in context if it's not that.
10:53:57 <shachaf> So it's probably not a big deal.
10:54:12 × ddellacosta quits (~ddellacos@86.106.143.206) (Ping timeout: 256 seconds)
10:54:24 <shachaf> The colloquial sense is fuzzy, and might include "abc" or might not, etc. -- the idea is just that it's a constant value.
10:55:34 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
10:56:24 <rond_> I see, however, in immutable language such as Haskell, everything has constant (when eventually computed), right?
10:56:35 <rond_> has constant value*
10:57:50 <rond_> anyway, for the purpose of what I'm trying to say I think it'll be sufficient to interpret 'algebraic literal' as 'boxed primitive'
10:57:50 <peanut_> GHC uses string literals as well
10:58:56 <rond_> shachaf out of curiosity, how did you end up reading the paper? I thought it's a rather unpopular one\
10:59:23 <shachaf> "literal" is a syntactic property.
10:59:41 <shachaf> There's a node in the syntax tree which is an integer value or something.
11:00:02 <shachaf> I don't know, isn't this paper a classic?
11:00:06 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
11:00:11 <shachaf> It's been years since I last looked at it.
11:01:08 <rond_> Do you have a spare minute to discuss one more thing about this paper?
11:02:26 <rond_> expression:
11:02:27 <rond_> (f x) + y
11:02:27 <rond_> CPS form:
11:02:28 <rond_> f x (\fx. + fx y (\r. k r))
11:02:28 <rond_> A lazy version of CPS would require the suspended computation inside a thunk to be a
11:02:29 <rond_> function taking a continuation as its argument. So the CPS form would really be
11:02:29 <rond_> f x (\fx. force y (\yr. + fx yr (\r. k r)))
11:02:43 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
11:02:49 × xff0x quits (~xff0x@2001:1a81:5390:3000:45a9:729d:b2a5:971c) (Ping timeout: 244 seconds)
11:03:06 <rond_> If my understanding is correct, than the word `force` in the last line is completely obsolete
11:03:07 sord937 joins (~sord937@gateway/tor-sasl/sord937)
11:03:44 xff0x joins (~xff0x@2001:1a81:5390:3000:995b:3aea:9e89:d26f)
11:03:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:04:02 <rond_> I should've also provided the sentence:
11:04:03 <rond_> "where force is the function which forces a thunk (its first argument) by applying it to force’s second argument (the continuation)."
11:04:21 × minoru_shiraeesh quits (~shiraeesh@46.34.206.238) (Ping timeout: 256 seconds)
11:04:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:05:25 <shachaf> Like I said, it's been a while.
11:05:46 <shachaf> Why is force unnecessary?
11:06:26 × Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 244 seconds)
11:06:37 <rond_> since y is a thunk that takes a continuation, just apply the continuation to it
11:07:06 <rond_> which is `(\yr. + fx yr (\r. k r))`. "Take the value of 'yr' (so the value of a a thunk) and do something  with it.
11:07:42 <rond_> I don't see any need for `force` here
11:07:50 <rond_> it's all good expressed with continuations
11:07:54 <shachaf> Do they define "force"? Or is this just given an analogy?
11:07:58 <shachaf> as an analogy
11:08:15 curl joins (5ce955fb@gateway/web/cgi-irc/kiwiirc.com/ip.92.233.85.251)
11:08:16 <rond_> "where force is the function which forces a thunk (its first argument) by applying it to force’s second argument (the continuation)."
11:08:19 <shachaf> Based on the surrounding text, you might also ask why "fx" isn't forced.
11:08:43 <rond_> Yeah, the asymetry is also troubling here
11:08:55 <rond_> hence, with my current understanding, `force` is obsolete
11:09:19 <curl> hi, i was researching polynomial rootfinding and i found this; https://byorgey.wordpress.com/2019/02/13/finding-roots-of-polynomials-in-haskell/
11:09:31 <shachaf> My guess is that they're gesturing at the fact that forcing is explicit in STG.
11:10:01 <shachaf> And not saying something really precise.
11:10:11 <curl> the modern methods involve orthogonal polynomial pencils, such as the colleague matrix, the eigenvalues of which are the roots of the polynomial
11:10:35 <curl> the haskell rootfinding implementations dont seem to have that, or at least, i cant see one that does
11:10:57 × Raito_Bezarius quits (~Raito@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 260 seconds)
11:11:01 <rond_> shachaf  Okay. So would you say that my interpretaion that, without a `force`, it would work perfectly well seems to be correct?
11:11:33 <shachaf> It depends on how y is defined.
11:12:00 <shachaf> I'm imagining something like y :: Int, force :: Int -> (Int# -> r) -> r
11:12:07 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
11:12:09 cabpa joins (~cabpa@180.190.165.139)
11:12:21 <rond_> Oh, I see
11:12:53 <rond_> I imagined y :: ( r -> r)
11:13:22 <rond_> Because "A lazy version of CPS would require the suspended computation inside a thunk to be a
11:13:22 <rond_> function taking a continuation as its argument"
11:13:27 <rond_> But I like it your way too
11:14:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:15:06 <hpc> tomsmeding: i like it
11:15:28 × malumore quits (~malumore@151.62.117.161) (Ping timeout: 245 seconds)
11:15:30 fuzzy_id joins (~user@78.30.11.72)
11:16:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:16:49 <fuzzy_id> When I want to abort an input in GHCi I sometimes do “Ctrl+c” exiting GHCi itself. Does someone know how to reconfigure this?
11:17:28 <curl> matlab seems to use chebychev spectra for root finding, with papers citing a toolbox called chebfun as being essential to modern rootfinding
11:18:44 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
11:18:59 <curl> in byorgeys wordpress doc he gives a call for help for better rootfinding in haskell, i think this chebychev linearization approach is the way to go, because it is the industry standard as used via matlab
11:19:50 <curl> and all the modern papers to do with rootfinding use appraoches based on it to do with pencils
11:20:41 <curl> which are pretty much exactly the companion matrix for some polynomial the eigenvalues of which are the zeros
11:22:01 <peanut_> fuzzy_id what OS?
11:22:35 is_null joins (~jpic@pdpc/supporter/professional/is-null)
11:22:36 <curl> there are some stability issues with the QR eigensolver, when combined with the pencil to find the roots, and the papers present stability anaysis with eg QZ, but basically for a normal toolkit, any eigensolver available will do
11:23:26 <curl> i think whats missing in haskell is the companion matrix, but maybe i just cant find it
11:23:39 <rond_> Thank you shachaf , I need to go. Wish you a great day!
11:24:36 × rond_ quits (594021ff@89-64-33-255.dynamic.chello.pl) (Quit: Connection closed)
11:24:41 × thunderrd quits (~thunderrd@183.182.111.116) (*.net *.split)
11:25:04 Kaiepi joins (~Kaiepi@47.54.252.148)
11:25:07 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
11:26:31 thunderrd joins (~thunderrd@183.182.111.116)
11:26:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
11:26:39 Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
11:27:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:27:52 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 260 seconds)
11:28:06 malumore joins (~malumore@151.62.117.161)
11:29:11 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
11:31:26 × nf quits (~n@monade.li) (Quit: Fairfarren.)
11:31:35 nf joins (~n@monade.li)
11:31:49 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
11:32:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:32:45 <L29Ah> is it possible to ask quickcheck what did it choose as arbitrary instances deeper than the tested value type?
11:32:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:33:25 × curl quits (5ce955fb@gateway/web/cgi-irc/kiwiirc.com/ip.92.233.85.251) (Quit: Connection closed)
11:33:52 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
11:34:10 <fuzzypixelz> https://wiki.haskell.org/Bottom say that Bottom is a member of all types because if it were not, the compiler would solve the Halting Problem. That just flew over my head because even if we don't know if the computation will stop or not, we know its type because ... Haskell is statically typed?
11:34:39 <fuzzypixelz> Obviously I'm wrong in some ridiculous way
11:35:13 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
11:36:05 <dminuoso> fuzzypixelz: It's just an odd way of phrasing: If bottom was not a member of every type, then `f :: Int -> Int` would only be legit, if `f` would be defined at every value.
11:36:14 <opqdonut> fuzzypixelz: if the type Bool only had the values True and False (and not Bottom), the expression `fix not :: Bool` would be a type error
11:36:32 <dminuoso> The implementation would need a general algorithm to decide, whether an arbitrary was indeed defined at every value
11:36:36 <opqdonut> fuzzypixelz: there are languages like this, they are called total languages. one example is agda
11:36:42 <dminuoso> And such an algorithm would solve the turing problem
11:36:51 <dminuoso> Since Haskell is turing complete
11:36:58 <opqdonut> agda doesn't solve the halting problem, instead it forces the programmer to _prove_ that their function halts
11:37:14 Kaiepi joins (~Kaiepi@47.54.252.148)
11:38:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:38:23 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
11:38:32 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 240 seconds)
11:38:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:39:42 kam1 joins (~kam1@83.123.174.63)
11:40:00 × kam1 quits (~kam1@83.123.174.63) (Read error: Connection reset by peer)
11:40:56 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
11:41:45 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 256 seconds)
11:42:42 RusAlex joins (~Chel@unaffiliated/rusalex)
11:44:11 frozenErebus joins (~frozenEre@94.128.81.87)
11:44:43 ClaudiusMaximus joins (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net)
11:44:54 × ClaudiusMaximus quits (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host)
11:44:54 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
11:46:15 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:47:26 × xff0x quits (~xff0x@2001:1a81:5390:3000:995b:3aea:9e89:d26f) (Ping timeout: 240 seconds)
11:48:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:48:36 xff0x joins (~xff0x@2001:1a81:5390:3000:dc2a:4ff5:6535:8a68)
11:49:05 <fuzzypixelz> I understand dminuoso's explanation, however, I fail to see how `fix not :: Bool` would be a type error
11:49:30 <dminuoso> fuzzypixelz: Will `fix not` terminate?
11:49:32 <dminuoso> Or rather
11:49:37 <dminuoso> What's the value of `fix not`?
11:49:39 <dminuoso> Is it True? False?
11:50:11 <fuzzypixelz> not it won't terminate because it keeps negating its input forever
11:50:20 <dminuoso> So is it True or False?
11:50:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:50:46 <fuzzypixelz> it's neither?
11:51:30 <dminuoso> But if the values of `Bool` are only True or False, that's a problem then.
11:52:19 <fuzzypixelz> oh thank you that's much clearer now
11:52:33 <ski> L29Ah : not really
11:53:18 L29Ah sprinkles his code with traceShowId's
11:53:40 <dminuoso> fuzzypixelz: What we do, is call values that dont terminate (infinite recursion, errors) "bottom", usually denoted _|_, and say that this value _|_ is a member of every type.
11:54:40 <jacks2> is it just a coincidence that _|_ looks like buttocks? :)
11:55:05 <ski> any expression could possibly not terminate. we call the "result value" of such an expression "bottom". it's not an actual result, because it doesn't actually terminate, but conceptually, we can think of it as a thing, representing "not defined"
11:55:07 × glguy quits (x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer)
11:55:10 <ski> yes
11:55:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
11:55:28 <dminuoso> Im not sure whether its a coincidence.
11:56:01 <dminuoso> Perhaps its from lattice theory?
11:56:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:56:24 <dminuoso> _|_ could be visually interpreted as like something sitting at the bottom
11:56:32 <ski> ⌜⊥⌝ is the symbol that the ascii version `_|_' is meant to resemble, that symbol is just an upside-down ⌜⊤⌝, which is a stylized `T', for "top"
11:56:49 <ski> and yes, the symbol comes from order theory, lattices
11:56:59 <ski> (via domain theory, and denotational semantics)
11:57:21 glguy joins (x@freenode/staff/haskell.developer.glguy)
11:58:44 <ski> @quote denotational semantics
11:58:45 <lambdabot> No quotes for this person. This mission is too important for me to allow you to jeopardize it.
11:58:48 <ski> @quote denotational.semantics
11:58:48 <lambdabot> vincenz says: Binkley: the sex is all in the operational semantics, denotational semantics only deals with love
11:59:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:59:04 <ski> @quote no.comprehensible
11:59:04 <lambdabot> quicksilver says: C++ templates are a vile obscenity with no theoretical foundation and no comprehensible denotational semantics. Please do not compare them to haskell types or classes again.
11:59:21 <fuzzy_id> @peanut: Linux
11:59:21 <lambdabot> Unknown command, try @list
11:59:47 <dminuoso> ski: Regarding that last bit, do you know the standard compliant non-const constexpr hack, where a constexpr in two subsequent uses evaluates to different expressions?
11:59:49 <fuzzy_id> @peanut_: Linux
11:59:50 <lambdabot> Unknown command, try @list
12:00:18 <dminuoso> ski: C++ [...] is a vile obscenity with no theoretical foundation and no comprehensible denotational semantics. :-)
12:01:05 ddellacosta joins (~ddellacos@86.106.143.100)
12:01:41 <merijn> It doesn't even have a well defined grammar :p
12:01:41 <peanut_> fuzzy_id ctrl+c keeps ghci open for me, strange
12:01:43 <ski> fuzzy_id : fwiw, it's not IRC custom to adorn nicknames with sigils (like `@'). if you want to address, or refer to, someone, simply mention their nickname. many IRC clients will highlight/alert their user if the nickname is mentioned at the very start of the message (commonly followed by a comma or a colon, and the bulk of the message). not as many, if it's mentioned later. putting a `@' at the front makes
12:01:49 <ski> it come not at the start
12:02:10 <ski> dminuoso : haven't seen it, but i'm not that surprised ..
12:02:13 <peanut_> dminuoso yes
12:03:01 × cabpa quits (~cabpa@180.190.165.139) (Remote host closed the connection)
12:04:08 urodna joins (~urodna@unaffiliated/urodna)
12:04:35 × geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
12:05:16 <fuzzy_id> ski: Yeah, I used to know that. Sorry, bad social networking habits.
12:05:24 <peanut_> fuzzy_id sending SIGINT to ghc keeps it open for me, can you try "kill -SIGINT $(pidof ghc)"
12:05:42 <ski> (IRC is social networking)
12:05:47 × ddellacosta quits (~ddellacos@86.106.143.100) (Ping timeout: 260 seconds)
12:06:16 geekosaur joins (82650c7a@130.101.12.122)
12:06:48 <fuzzy_id> peanut_: Ah yeah, just noticed that it's actually not a ghci thing, but rather something in `stack repl`.
12:07:27 <peanut_> interesting
12:07:32 <fuzzy_id> … with docker backend.
12:08:00 <fuzzy_id> Not sure what that starts.
12:11:29 × plutoniix quits (~q@184.82.202.5) (Quit: Leaving)
12:14:50 codygman` joins (~user@47.186.207.161)
12:16:25 Lycurgus joins (~niemand@98.4.116.165)
12:16:35 × fuzzy_id quits (~user@78.30.11.72) (Ping timeout: 272 seconds)
12:18:16 roconnor joins (~roconnor@host-45-58-230-226.dyn.295.ca)
12:18:59 friyin joins (~friyin4@46.136.209.213)
12:19:24 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection)
12:23:21 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 264 seconds)
12:23:31 Stanley00 joins (~stanley00@unaffiliated/stanley00)
12:26:05 gzj joins (~gzj@unaffiliated/gzj)
12:26:38 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
12:26:58 gzj joins (~gzj@unaffiliated/gzj)
12:27:16 × jespada quits (~jespada@90.254.243.187) (Ping timeout: 265 seconds)
12:27:26 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer)
12:27:44 DTZUZU joins (~DTZUZO@205.ip-149-56-132.net)
12:27:50 jonathanx_ joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
12:28:50 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds)
12:29:29 jespada joins (~jespada@90.254.243.187)
12:30:32 × jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds)
12:30:56 __monty__ joins (~toonn@unaffiliated/toonn)
12:32:08 × DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Ping timeout: 245 seconds)
12:32:37 × hiroaki1 quits (~hiroaki@2a02:8108:8c40:2bb8:7b72:cc15:1305:937f) (Ping timeout: 260 seconds)
12:33:29 hiroaki1 joins (~hiroaki@2a02:8108:8c40:2bb8:7bda:a87f:4d01:e46e)
12:34:13 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
12:34:32 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
12:34:54 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
12:35:19 ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
12:35:30 fuzzy_id joins (~user@78.30.11.72)
12:38:41 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
12:39:16 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
12:39:33 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
12:42:32 DTZUZU_ joins (~DTZUZO@205.ip-149-56-132.net)
12:42:57 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
12:45:33 mettekou joins (~mettekou@ptr-8a5yln8pzxqkpgqdqbx.18120a2.ip6.access.telenet.be)
12:46:16 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
12:46:38 × Lycurgus quits (~niemand@98.4.116.165) (Quit: Exeunt)
12:47:11 × mananamenos quits (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net) (Ping timeout: 244 seconds)
12:47:42 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
12:48:49 × raym quits (~ray@115.187.32.14) (Quit: leaving)
12:50:14 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
12:51:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Ping timeout: 264 seconds)
12:54:54 thoros joins (~thoros@194-166-47-167.hdsl.highway.telekom.at)
12:56:38 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
12:57:33 × stree quits (~stree@68.36.8.116) (Ping timeout: 245 seconds)
12:57:45 sh9 joins (~sh9@softbank060116136158.bbtec.net)
12:58:17 geekosaur joins (82650c7a@130.101.12.122)
13:00:00 × idhugo_ quits (~idhugo@80-62-117-136-mobile.dk.customer.tdc.net) (Ping timeout: 256 seconds)
13:00:19 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:00:40 gzj joins (~gzj@unaffiliated/gzj)
13:01:29 aggin joins (~ecm@103.88.87.99)
13:04:11 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
13:04:21 mananamenos joins (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net)
13:04:31 gzj joins (~gzj@unaffiliated/gzj)
13:04:32 epicte7us joins (~epictetus@66.151.209.212)
13:05:12 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:05:36 gzj joins (~gzj@unaffiliated/gzj)
13:07:53 × ep1ctetus quits (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 256 seconds)
13:08:11 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:08:33 gzj joins (~gzj@unaffiliated/gzj)
13:08:46 kuribas joins (~user@ptr-25vy0i8kwraq2x2hwlo.18120a2.ip6.access.telenet.be)
13:09:10 drbean joins (~drbean@TC210-63-209-171.static.apol.com.tw)
13:09:13 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:09:35 gzj joins (~gzj@unaffiliated/gzj)
13:09:57 stree joins (~stree@68.36.8.116)
13:11:13 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
13:11:35 gzj joins (~gzj@unaffiliated/gzj)
13:14:14 × aggin quits (~ecm@103.88.87.99) (Quit: WeeChat 3.0.1)
13:14:52 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
13:15:18 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:15:20 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 240 seconds)
13:15:38 gzj joins (~gzj@unaffiliated/gzj)
13:15:50 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
13:15:56 berberman joins (~berberman@unaffiliated/berberman)
13:16:37 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Remote host closed the connection)
13:16:58 alx741 joins (~alx741@186.178.108.164)
13:17:35 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
13:18:17 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:18:40 gzj joins (~gzj@unaffiliated/gzj)
13:19:13 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 245 seconds)
13:20:17 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
13:20:40 gzj joins (~gzj@unaffiliated/gzj)
13:21:08 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Client Quit)
13:21:29 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:57ae:e786:30c4:a67d)
13:22:02 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
13:23:05 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Remote host closed the connection)
13:25:53 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
13:26:40 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:30:03 × mananamenos quits (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
13:31:02 × toorevitimirp quits (~tooreviti@117.182.183.55) (Remote host closed the connection)
13:31:19 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:31:30 toorevitimirp joins (~tooreviti@117.182.183.55)
13:31:41 gzj joins (~gzj@unaffiliated/gzj)
13:31:50 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Ping timeout: 264 seconds)
13:31:55 atriq joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
13:34:05 atriq is now known as Taneb
13:40:37 cheater1 joins (~user@unaffiliated/cheater)
13:40:52 Tario joins (~Tario@201.192.165.173)
13:41:24 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
13:41:26 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
13:41:44 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 240 seconds)
13:41:52 cheater1 is now known as cheater
13:42:52 idhugo joins (~idhugo@80-62-117-136-mobile.dk.customer.tdc.net)
13:49:04 kiweun joins (~kiweun@2607:fea8:2a62:9600:d4ca:3dbb:1110:af82)
13:50:57 × drbean quits (~drbean@TC210-63-209-171.static.apol.com.tw) (Ping timeout: 272 seconds)
13:51:03 ADG1089 joins (~aditya@27.58.165.185)
13:52:50 mrchampion joins (~mrchampio@38.18.109.23)
13:53:44 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
13:54:18 Sorna joins (~Sornaensi@077213203030.dynamic.telenor.dk)
13:54:56 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds)
13:55:15 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
13:55:28 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
13:55:36 gzj joins (~gzj@unaffiliated/gzj)
13:57:08 raichoo joins (~raichoo@dslb-178-009-065-121.178.009.pools.vodafone-ip.de)
13:57:10 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:57:17 LKoen_ joins (~LKoen@194.250.88.92.rev.sfr.net)
13:57:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:57:50 mananamenos joins (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net)
13:58:22 × Sornaensis quits (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 256 seconds)
14:00:04 × LKoen quits (~LKoen@194.250.88.92.rev.sfr.net) (Ping timeout: 256 seconds)
14:01:42 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-siyxvspwdzfpxxyl)
14:01:44 zebrag joins (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr)
14:02:17 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
14:05:17 carlomagno joins (~cararell@148.87.23.10)
14:05:50 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
14:05:57 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
14:06:11 knupfer joins (~Thunderbi@dynamic-046-114-144-212.46.114.pool.telefonica.de)
14:06:56 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
14:07:09 × haasn quits (~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
14:08:28 rj joins (~x@gateway/tor-sasl/rj)
14:09:23 haasn joins (~nand@mpv/developer/haasn)
14:10:08 frozenErebus joins (~frozenEre@94.128.81.87)
14:10:13 × Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 256 seconds)
14:10:14 × knupfer quits (~Thunderbi@dynamic-046-114-144-212.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
14:10:35 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:10:58 geowiesnot_bis joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
14:13:43 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
14:14:23 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
14:14:34 minoru_shiraeesh joins (~shiraeesh@46.34.206.238)
14:15:55 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Remote host closed the connection)
14:16:51 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
14:17:33 vicfred joins (~vicfred@unaffiliated/vicfred)
14:21:20 × codygman` quits (~user@47.186.207.161) (Ping timeout: 265 seconds)
14:21:53 codygman` joins (~user@209.251.131.98)
14:22:28 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:24:13 forp joins (57e3c46d@87.227.196.109)
14:24:26 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
14:25:09 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
14:25:11 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
14:26:36 aggin joins (~ecm@103.88.87.99)
14:27:24 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:29:17 johnnyv[m] joins (badwolf256@gateway/shell/matrix.org/x-rlvkemimyqmbtjvy)
14:29:21 Stanley00 joins (~stanley00@unaffiliated/stanley00)
14:31:18 jsomedon joins (~jsomedon@114.252.43.205)
14:32:17 Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
14:32:26 <jsomedon> hello folks, what does "sum" mean for term "sum type" and similarly what does "product" mean for "product type"
14:32:26 × xff0x quits (~xff0x@2001:1a81:5390:3000:dc2a:4ff5:6535:8a68) (Ping timeout: 240 seconds)
14:32:39 × MilkywayPirate quits (~user@178.157.255.8) (Remote host closed the connection)
14:32:51 <merijn> jsomedon: It's a reference to the "algebra" part of "algebraic datatypes"
14:32:56 MilkywayPirate joins (~user@178.157.255.8)
14:33:14 <merijn> See things like: https://codewords.recurse.com/issues/three/algebra-and-calculus-of-algebraic-data-types
14:33:23 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 245 seconds)
14:33:26 xff0x joins (~xff0x@2001:1a81:5390:3000:bc77:584c:d8ed:27b0)
14:33:46 × MilkywayPirate quits (~user@178.157.255.8) (Client Quit)
14:34:10 <jsomedon> thank you let me read that and might come back with more questions
14:34:41 <merijn> jsomedon: Also: https://www.youtube.com/watch?v=YScIPA8RbVE
14:36:13 MilkywayPirate joins (~user@178.157.255.8)
14:39:14 × aggin quits (~ecm@103.88.87.99) (Quit: WeeChat 3.0.1)
14:40:47 bitmapper joins (uid464869@gateway/web/irccloud.com/x-sfwykfysiphrscur)
14:41:36 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:41:39 Stanley00 joins (~stanley00@unaffiliated/stanley00)
14:42:50 jamm_ joins (~jamm@unaffiliated/jamm)
14:43:34 × fuzzy_id quits (~user@78.30.11.72) (Ping timeout: 265 seconds)
14:45:56 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
14:47:36 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
14:49:11 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Read error: Connection reset by peer)
14:49:19 × minoru_shiraeesh quits (~shiraeesh@46.34.206.238) (Ping timeout: 256 seconds)
14:49:22 × codygman` quits (~user@209.251.131.98) (Ping timeout: 265 seconds)
14:49:56 codygman` joins (~user@47.186.207.161)
14:52:13 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Ping timeout: 244 seconds)
14:54:00 bitmagie joins (~Thunderbi@200116b806323f002d87bc9ab24a21a2.dip.versatel-1u1.de)
14:54:54 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
14:55:31 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
14:55:37 ep1ctetus joins (~epictetus@ip72-194-215-136.sb.sd.cox.net)
14:56:11 × epicte7us quits (~epictetus@66.151.209.212) (Ping timeout: 272 seconds)
14:56:45 × forp quits (57e3c46d@87.227.196.109) (Quit: Connection closed)
14:57:20 minoru_shiraeesh joins (~shiraeesh@46.34.206.238)
14:57:34 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Client Quit)
14:58:05 × kuribas quits (~user@ptr-25vy0i8kwraq2x2hwlo.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
14:58:06 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
14:58:08 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:58:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
15:02:58 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Client Quit)
15:03:32 knupfer joins (~Thunderbi@200116b824b988005814f1fffee1fb4f.dip.versatel-1u1.de)
15:03:33 × knupfer quits (~Thunderbi@200116b824b988005814f1fffee1fb4f.dip.versatel-1u1.de) (Client Quit)
15:03:40 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
15:03:49 knupfer joins (~Thunderbi@i59F7FF9C.versanet.de)
15:06:55 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
15:09:22 Tops2 joins (~Tobias@dyndsl-095-033-016-025.ewe-ip-backbone.de)
15:12:40 aggin joins (~ecm@103.88.87.99)
15:16:09 Amanda3 joins (~Amanda@139.28.218.148)
15:16:20 × jsomedon quits (~jsomedon@114.252.43.205) (Quit: jsomedon)
15:16:31 kam1 joins (~kam1@37.129.53.162)
15:16:32 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
15:16:49 × ntkr quits (uid491148@gateway/web/irccloud.com/x-onytzymuldscxwyh) (Quit: Connection closed for inactivity)
15:16:53 × kam1 quits (~kam1@37.129.53.162) (Read error: Connection reset by peer)
15:16:53 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
15:16:56 CrazyPython joins (~crazypyth@98.122.164.118)
15:17:08 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 245 seconds)
15:17:22 Tario joins (~Tario@201.192.165.173)
15:17:43 jamm_ joins (~jamm@unaffiliated/jamm)
15:18:22 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
15:19:15 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
15:19:36 gzj joins (~gzj@unaffiliated/gzj)
15:19:44 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
15:21:55 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
15:22:04 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
15:22:12 × toorevitimirp quits (~tooreviti@117.182.183.55) (Remote host closed the connection)
15:22:25 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
15:24:08 jamm_ joins (~jamm@unaffiliated/jamm)
15:24:27 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Ping timeout: 256 seconds)
15:24:58 × codygman` quits (~user@47.186.207.161) (Remote host closed the connection)
15:25:17 × xff0x quits (~xff0x@2001:1a81:5390:3000:bc77:584c:d8ed:27b0) (Ping timeout: 244 seconds)
15:26:25 xff0x joins (~xff0x@2001:1a81:5390:3000:a106:5c1e:878c:2ba3)
15:26:32 codygman__ joins (~user@47.186.207.161)
15:27:27 × aggin quits (~ecm@103.88.87.99) (Quit: WeeChat 3.0.1)
15:27:33 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
15:29:14 × bitmagie quits (~Thunderbi@200116b806323f002d87bc9ab24a21a2.dip.versatel-1u1.de) (Quit: bitmagie)
15:29:50 Sorny joins (~Sornaensi@79.142.232.102)
15:31:01 stree joins (~stree@68.36.8.116)
15:31:03 shad0w_47 joins (a0ca251f@160.202.37.31)
15:31:31 × shad0w_47 quits (a0ca251f@160.202.37.31) (Client Quit)
15:32:08 × Tops2 quits (~Tobias@dyndsl-095-033-016-025.ewe-ip-backbone.de) (Read error: Connection reset by peer)
15:32:12 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
15:32:31 dm9 joins (~weechat@p200300dcb727d2004a5d60fffe655171.dip0.t-ipconnect.de)
15:32:47 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
15:32:52 × Sorna quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 260 seconds)
15:32:53 × malumore quits (~malumore@151.62.117.161) (Remote host closed the connection)
15:33:02 × aarvar quits (~foewfoiew@2601:602:a080:fa0:49ff:dc3d:e55f:8dd) (Ping timeout: 264 seconds)
15:34:29 Tops2 joins (~Tobias@dyndsl-095-033-016-025.ewe-ip-backbone.de)
15:34:39 × megaTherion quits (~therion@unix.io) (Read error: Connection reset by peer)
15:34:48 megaTherion joins (~therion@unix.io)
15:34:59 × fiddlerwoaroof quits (~fiddlerwo@unaffiliated/fiddlerwoaroof) (Quit: Gone.)
15:35:00 × Haskman[m] quits (haskmanmat@gateway/shell/matrix.org/x-tnrbzczkfzxhidmh) (Ping timeout: 265 seconds)
15:35:01 × alecs[m] quits (malumorema@gateway/shell/matrix.org/x-xfixxujbpdqukczd) (Ping timeout: 265 seconds)
15:35:01 × jkaye[m] quits (jkayematri@gateway/shell/matrix.org/x-fepxtmokxrdmlycv) (Ping timeout: 265 seconds)
15:35:01 × johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-yikznzlhyzrbvnbz) (Ping timeout: 265 seconds)
15:35:03 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in)
15:35:03 × Philonous quits (~Philonous@unaffiliated/philonous) (Remote host closed the connection)
15:35:06 × jassob quits (~jassob@korrob.vth.sgsnet.se) (Ping timeout: 246 seconds)
15:35:12 × andreas31 quits (~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
15:35:13 madnight_ joins (~madnight@static.59.103.201.195.clients.your-server.de)
15:35:13 × shailangsa quits (~shailangs@host165-120-169-19.range165-120.btcentralplus.com) (Ping timeout: 260 seconds)
15:35:18 fiddlerwoaroof joins (~fiddlerwo@unaffiliated/fiddlerwoaroof)
15:35:18 malumore joins (~malumore@151.62.117.161)
15:35:30 × unclechu quits (unclechuma@gateway/shell/matrix.org/x-awlwoecumntvuvlv) (Ping timeout: 265 seconds)
15:35:31 × gothos quits (~gothos@antsy.jhz.name) (Quit: ZNC - http://znc.in)
15:35:32 × marble_visions quits (~user@68.183.79.8) (Quit: bye)
15:35:47 × VarikValefor[m] quits (varikvalef@gateway/shell/matrix.org/x-jtxzvhexsrzjwzlt) (Ping timeout: 246 seconds)
15:35:47 × themsay[m] quits (themsaymat@gateway/shell/matrix.org/x-ptarvovruaurhxwp) (Ping timeout: 246 seconds)
15:35:47 × hsiktas[m] quits (hsiktasmat@gateway/shell/matrix.org/x-temqgekgducjbrsh) (Ping timeout: 246 seconds)
15:35:47 × mud quits (kadobanmat@gateway/shell/matrix.org/x-xvdyxlpvmhfdsgfh) (Ping timeout: 246 seconds)
15:35:48 × pqwy[m] quits (pqwymatrix@gateway/shell/matrix.org/x-pvxxvwuidasooizc) (Ping timeout: 246 seconds)
15:35:48 × maralorn quits (maralornma@gateway/shell/matrix.org/x-jnnbxzasrfbfbikw) (Ping timeout: 246 seconds)
15:35:48 × Blkt quits (~Blkt@2a01:4f8:200:2425::adda) (Read error: Connection reset by peer)
15:35:48 × johnnyv[m] quits (badwolf256@gateway/shell/matrix.org/x-rlvkemimyqmbtjvy) (Ping timeout: 246 seconds)
15:35:48 × viktorstrate[m] quits (viktorstra@gateway/shell/matrix.org/x-mdxgfvtcddruvquk) (Ping timeout: 246 seconds)
15:35:49 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
15:35:50 × tms_ quits (thomaav@cassarossa.samfundet.no) (Ping timeout: 248 seconds)
15:35:58 × Cesionaut[m] quits (cesionautm@gateway/shell/matrix.org/x-vzpmewnmdjdjjutv) (Ping timeout: 265 seconds)
15:35:59 × mrus[m] quits (mrusmatrix@gateway/shell/matrix.org/x-welevbbwwrngbnao) (Ping timeout: 246 seconds)
15:36:23 × ian_ quits (~igloo@matrix.chaos.earth.li) (Ping timeout: 260 seconds)
15:36:26 marble_visions joins (~user@68.183.79.8)
15:36:26 Blkt joins (~Blkt@2a01:4f8:200:2425::adda)
15:36:26 × Ericson2314 quits (ericson231@gateway/shell/matrix.org/x-pmvxuyjweiegnupz) (Ping timeout: 240 seconds)
15:36:26 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 268 seconds)
15:36:30 SoF7 joins (~SoF@unaffiliated/skillyonfire)
15:36:31 × SoF quits (~SoF@unaffiliated/skillyonfire) (Read error: Connection reset by peer)
15:36:31 SoF7 is now known as SoF
15:36:35 × MahmoudMAZOUZ[m] quits (mazouzmaen@gateway/shell/matrix.org/x-stmztyxtngssovxi) (Ping timeout: 240 seconds)
15:36:39 × my_name_is_not_j quits (mynameisno@gateway/shell/matrix.org/x-gktbydycwnuqcokz) (Ping timeout: 244 seconds)
15:36:44 × Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 265 seconds)
15:36:44 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
15:36:50 × MichaelHoffmannb quits (brisadmozi@gateway/shell/matrix.org/x-ebubrxwbqbyooquz) (Ping timeout: 258 seconds)
15:36:50 × dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-otvcijywljfvbaed) (Ping timeout: 258 seconds)
15:36:51 × alexfmpe quits (alexfmpema@gateway/shell/matrix.org/x-nolwhhpwmbxikafc) (Ping timeout: 258 seconds)
15:36:55 × bitonic quits (bitonicmat@gateway/shell/matrix.org/x-ipickbqxisfxlldz) (Ping timeout: 240 seconds)
15:36:55 × fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-ihiahjvhbvnutlcv) (Ping timeout: 240 seconds)
15:36:56 × alar[m] quits (alarmxalat@gateway/shell/matrix.org/x-mybgwpghbptgmctl) (Ping timeout: 240 seconds)
15:37:08 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
15:37:08 × valdyn quits (valdyn@c6a7cba1.vpn.njalla.net) (Ping timeout: 245 seconds)
15:37:10 × michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-fmbulfuorzhwugnj) (Ping timeout: 244 seconds)
15:37:10 × lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-civsnwekuzleyzwa) (Ping timeout: 244 seconds)
15:37:13 × loyon quits (loyonmatri@gateway/shell/matrix.org/x-mwratoiagnlssnyq) (Ping timeout: 258 seconds)
15:37:13 × juri_ quits (~juri@178.63.35.222) (Remote host closed the connection)
15:37:20 jassob joins (~jassob@korrob.vth.sgsnet.se)
15:37:23 andreas31 joins (~andreas@gateway/tor-sasl/andreas303)
15:37:26 × toasty_avocado[m quits (toastyavoc@gateway/shell/matrix.org/x-qelmcqsxgzxxevri) (Ping timeout: 240 seconds)
15:37:26 × sm[m] quits (simonmicma@gateway/shell/matrix.org/x-ujfsdlwwogwlclyc) (Ping timeout: 240 seconds)
15:37:26 × hyiltiz-M quits (hyiltizkde@gateway/shell/kde/matrix/x-pbsqgxgfxkxgeyjp) (Ping timeout: 240 seconds)
15:37:29 Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
15:37:31 × lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-bzkoutlgvmwbkjji) (Ping timeout: 268 seconds)
15:37:34 Philonous joins (~Philonous@unaffiliated/philonous)
15:37:34 shad0w_10 joins (a0ca251f@160.202.37.31)
15:37:35 × jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-jkmbbhsofbyjdeff) (Ping timeout: 240 seconds)
15:37:39 tms_ joins (thomaav@cassarossa.samfundet.no)
15:37:41 × shad0w_ quits (shadowma1@gateway/shell/matrix.org/x-bmdtekutdmvqywht) (Ping timeout: 244 seconds)
15:37:41 × heck-to-the-gnom quits (heck-to-th@gateway/shell/matrix.org/x-ghqiohudnnrsihmj) (Ping timeout: 244 seconds)
15:37:41 × siraben quits (sirabenmat@gateway/shell/matrix.org/x-fdyejfvjphhisdvz) (Ping timeout: 244 seconds)
15:37:41 × kadoban quits (kadobanemp@gateway/shell/matrix.org/x-cpfubhuixmbptrmi) (Ping timeout: 244 seconds)
15:37:41 × rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-rdaonbrqeuwtjxsm) (Ping timeout: 244 seconds)
15:37:42 × sweater quits (~sweater@206.81.18.26) (Ping timeout: 265 seconds)
15:37:42 × hc quits (~hc@fsfe/hc) (Ping timeout: 265 seconds)
15:37:43 × noctux`` quits (t29LXXdf5w@unaffiliated/noctux) (Remote host closed the connection)
15:37:43 jpds joins (~jpds@gateway/tor-sasl/jpds)
15:37:49 <zzz> quit
15:37:54 Igloo joins (~igloo@matrix.chaos.earth.li)
15:37:55 valdyn joins (valdyn@c6a7cbd8.vpn.njalla.net)
15:37:55 × maerwald[m] quits (maerwaldma@gateway/shell/matrix.org/x-xejvrntxwtmqgyhk) (Ping timeout: 240 seconds)
15:37:55 × joe[m]2 quits (joemonoida@gateway/shell/matrix.org/x-ygxypwuzgvmgbeva) (Ping timeout: 240 seconds)
15:37:55 × immae quits (immaematri@gateway/shell/matrix.org/x-ifxuogihibrvpfqo) (Ping timeout: 240 seconds)
15:37:56 × rust-rocks[m] quits (rust-rocks@gateway/shell/matrix.org/x-bqohnijxfkxiysny) (Ping timeout: 240 seconds)
15:37:56 × Lurkki[m] quits (lurkkifene@gateway/shell/matrix.org/x-mqydqxgjfsfhihgm) (Ping timeout: 240 seconds)
15:37:56 × darkcodi[m] quits (darkcodima@gateway/shell/matrix.org/x-rhzmsthbyuqylump) (Ping timeout: 240 seconds)
15:37:56 × shieru[m] quits (shierualet@gateway/shell/matrix.org/x-xdjkjxjdwcrtmgsg) (Ping timeout: 240 seconds)
15:37:56 × DevTurks[m] quits (turkdevops@gateway/shell/matrix.org/x-wvhgcgjcsihqdnpv) (Ping timeout: 240 seconds)
15:37:56 × M53K5HUN_8[m] quits (m53k5hun8m@gateway/shell/matrix.org/x-spimlfphvtdpgjrd) (Ping timeout: 240 seconds)
15:37:56 × beardhatcode quits (robbertbea@gateway/shell/matrix.org/x-jovouonixnxlxvtc) (Ping timeout: 240 seconds)
15:37:56 × mly[m] quits (mlydisenco@gateway/shell/matrix.org/x-sghcilcxhnhkwjdd) (Ping timeout: 240 seconds)
15:37:59 <zzz> so sorry
15:38:03 <zzz> ignore that
15:38:03 × shad0w_10 quits (a0ca251f@160.202.37.31) (Client Quit)
15:38:03 noctux`` joins (3aXdWzOx70@unaffiliated/noctux)
15:38:05 gothos joins (~gothos@antsy.jhz.name)
15:38:11 × Nahra quits (~Nahra@unaffiliated/nahra) (Ping timeout: 265 seconds)
15:38:11 × arianvp quits (~weechat@arianvp.me) (Ping timeout: 265 seconds)
15:38:11 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 265 seconds)
15:38:12 × invent[m] quits (inventmatr@gateway/shell/matrix.org/x-djucmvmrumafpmmw) (Ping timeout: 244 seconds)
15:38:12 × ManofLetters[m] quits (manoflette@gateway/shell/matrix.org/x-englwmmecwrzyoqt) (Ping timeout: 244 seconds)
15:38:12 × speakerspivakeem quits (speakerdea@gateway/shell/matrix.org/x-siqwjicgmhjtsmhd) (Ping timeout: 244 seconds)
15:38:12 × plumenator[m] quits (plumenator@gateway/shell/matrix.org/x-ourhytalkerxbsgx) (Ping timeout: 244 seconds)
15:38:12 × jerin quits (jerinmatri@gateway/shell/matrix.org/x-fwxmmxrkuyeqajhb) (Ping timeout: 244 seconds)
15:38:12 × JaakkoLuttinen[m quits (jluttinema@gateway/shell/matrix.org/x-gzujzorzbqrmauno) (Ping timeout: 244 seconds)
15:38:12 × berberman[T] quits (berberma4@gateway/shell/matrix.org/x-mlboebuijvpyfcgj) (Ping timeout: 244 seconds)
15:38:13 sweater joins (~sweater@206.81.18.26)
15:38:15 × xcin quits (~x@159.203.132.140) (Ping timeout: 246 seconds)
15:38:21 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 264 seconds)
15:38:21 <dmwit> You can't tell me what to do, you're not my REAL dad.
15:38:22 × Pressyware[m] quits (pressyware@gateway/shell/matrix.org/x-merabgrvstchiodj) (Ping timeout: 258 seconds)
15:38:22 × Lurkki[m]1 quits (lurkkipriv@gateway/shell/matrix.org/x-skpmtcneqlzaxmfh) (Ping timeout: 258 seconds)
15:38:22 × simara[m] quits (simaramatr@gateway/shell/matrix.org/x-chhuoljzwygcerfa) (Ping timeout: 258 seconds)
15:38:22 × mjlbach quits (atriusmatr@gateway/shell/matrix.org/x-idxtsewlxoswzwgx) (Ping timeout: 258 seconds)
15:38:22 × CrabMan quits (phi-matrix@gateway/shell/matrix.org/x-itonprswumarsonx) (Ping timeout: 258 seconds)
15:38:22 × jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-pacacpixykpsrqbq) (Ping timeout: 258 seconds)
15:38:22 × domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Ping timeout: 258 seconds)
15:38:31 xerox_ joins (~xerox@unaffiliated/xerox)
15:38:37 × addem[m] quits (addemmatri@gateway/shell/matrix.org/x-dsozjjkkjhpfifoj) (Ping timeout: 272 seconds)
15:38:43 Nahra joins (~Nahra@unaffiliated/nahra)
15:38:45 × kadobanana quits (kadoban9he@gateway/shell/matrix.org/x-fjnlfufgdsbleegm) (Ping timeout: 268 seconds)
15:38:45 × anon1891[m] quits (anon1891ma@gateway/shell/matrix.org/x-iijrpsnxyzdwzkmq) (Ping timeout: 268 seconds)
15:38:45 × DamienCassou quits (damiencass@gateway/shell/matrix.org/x-nsfdradfsgvmppix) (Ping timeout: 268 seconds)
15:38:45 × srid quits (sridmatrix@gateway/shell/matrix.org/x-rijgcnldikjyzqzg) (Ping timeout: 268 seconds)
15:38:45 × PotatoHatsue quits (berbermanp@gateway/shell/matrix.org/x-invzcgjtdukarzux) (Ping timeout: 268 seconds)
15:38:45 × arcontethegreat[ quits (arcontethe@gateway/shell/matrix.org/x-txxxgbpslkgekqok) (Ping timeout: 268 seconds)
15:38:45 × ThaEwat quits (thaewraptm@gateway/shell/matrix.org/x-tqryjbcnpoqvwatf) (Ping timeout: 268 seconds)
15:38:45 × psydruid quits (psydruidma@gateway/shell/matrix.org/x-tfyqyfjqrbnqzjln) (Ping timeout: 268 seconds)
15:38:56 arianvp joins (~weechat@arianvp.me)
15:38:59 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
15:39:28 hc joins (~hc@fsfe/hc)
15:39:50 Pickchea joins (~private@unaffiliated/pickchea)
15:40:47 Cthalupa joins (~cthulhu@47.186.47.75)
15:40:53 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:acf0:35a9:d96b:256f)
15:42:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:42:27 juri_ joins (~juri@178.63.35.222)
15:45:57 × borne quits (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
15:46:58 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
15:46:58 × srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
15:47:15 xcin joins (~x@159.203.132.140)
15:47:38 srk joins (~sorki@gateway/tor-sasl/sorki)
15:47:39 hexo joins (~hexo@gateway/tor-sasl/hexo)
15:48:12 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
15:48:22 × arianvp quits (~weechat@arianvp.me) (Read error: Connection timed out)
15:48:30 × xcin quits (~x@159.203.132.140) (Read error: Connection timed out)
15:48:45 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:acf0:35a9:d96b:256f) (Read error: Connection timed out)
15:48:46 arianvp joins (~weechat@arianvp.me)
15:48:48 × Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Read error: Connection timed out)
15:48:53 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
15:48:54 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
15:48:59 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:acf0:35a9:d96b:256f)
15:49:03 × xerox_ quits (~xerox@unaffiliated/xerox) (Read error: Connection timed out)
15:49:06 Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl)
15:49:11 xerox_ joins (~xerox@unaffiliated/xerox)
15:49:33 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
15:50:22 hsiktas[m] joins (hsiktasmat@gateway/shell/matrix.org/x-jsnspyhjqkcidwxy)
15:50:26 VarikValefor[m] joins (varikvalef@gateway/shell/matrix.org/x-knkkqovlsdtyomsj)
15:50:38 mud joins (kadobanmat@gateway/shell/matrix.org/x-yliwoxyquggnlcor)
15:50:48 themsay[m] joins (themsaymat@gateway/shell/matrix.org/x-gjenhikfotmgdkjf)
15:51:38 × ADG1089 quits (~aditya@27.58.165.185) (Remote host closed the connection)
15:51:39 × curiousgay quits (~gay@178.217.208.8) (Ping timeout: 256 seconds)
15:51:54 maralorn joins (maralornma@gateway/shell/matrix.org/x-kagukfsfpcrzvbls)
15:52:16 xcin joins (~x@159.203.132.140)
15:52:43 pqwy[m] joins (pqwymatrix@gateway/shell/matrix.org/x-clgrxiyegovoaorn)
15:52:51 notzmv joins (~zmv@unaffiliated/zmv)
15:53:11 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Ping timeout: 244 seconds)
15:53:18 hyiltiz-M joins (hyiltizkde@gateway/shell/kde/matrix/x-oumhxaxiicvtttlv)
15:53:38 jkaye[m] joins (jkayematri@gateway/shell/matrix.org/x-qbldkaokruodskkg)
15:53:38 alecs[m] joins (malumorema@gateway/shell/matrix.org/x-tngsmqgofxgrikni)
15:53:42 johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-srskbesngkvoucku)
15:53:55 Haskman[m] joins (haskmanmat@gateway/shell/matrix.org/x-vsnyavlzuoisyaeq)
15:54:32 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
15:54:52 molehillish joins (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8)
15:55:20 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
15:56:01 × guest323 quits (~user@49.5.6.87) (Remote host closed the connection)
15:57:16 johnnyv[m] joins (badwolf256@gateway/shell/matrix.org/x-tfaibwbsyaawzhhj)
15:57:32 shailangsa joins (~shailangs@host165-120-169-19.range165-120.btcentralplus.com)
15:57:58 dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-uwulhmgilwpifdol)
15:59:25 my_name_is_not_j joins (mynameisno@gateway/shell/matrix.org/x-npfrafotfnybfrao)
16:01:09 viktorstrate[m] joins (viktorstra@gateway/shell/matrix.org/x-zxlycwezjdpjnfkv)
16:01:25 alexfmpe joins (alexfmpema@gateway/shell/matrix.org/x-nwkfuvlkbndpfvxk)
16:01:40 MichaelHoffmannb joins (brisadmozi@gateway/shell/matrix.org/x-cvnnmjtfpdwpnugh)
16:01:51 Ericson2314 joins (ericson231@gateway/shell/matrix.org/x-bawqklmrfwxnxfvn)
16:02:22 geekosaur joins (82650c7a@130.101.12.122)
16:03:31 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
16:04:19 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
16:04:25 unclechu joins (unclechuma@gateway/shell/matrix.org/x-wfyfrzflxiiafrog)
16:04:29 lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-tlnhxzpeznkzrtuq)
16:04:58 × mettekou quits (~mettekou@ptr-8a5yln8pzxqkpgqdqbx.18120a2.ip6.access.telenet.be) (Quit: Leaving)
16:04:59 heebo joins (~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net)
16:05:00 michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-yxczbfwjcvkogtej)
16:05:10 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Remote host closed the connection)
16:05:35 × dm9 quits (~weechat@p200300dcb727d2004a5d60fffe655171.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
16:05:52 loyon joins (loyonmatri@gateway/shell/matrix.org/x-wpimpyhucqiwbgpt)
16:06:04 × LKoen_ quits (~LKoen@194.250.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.”)
16:06:09 fendor_ joins (~fendor@91.141.1.53.wireless.dyn.drei.com)
16:06:17 alar[m] joins (alarmxalat@gateway/shell/matrix.org/x-czoxvspjopuwzwfc)
16:06:42 × totoro2021 quits (~t@unaffiliated/totoro2021) (Ping timeout: 265 seconds)
16:06:51 Cesionaut[m] joins (cesionautm@gateway/shell/matrix.org/x-bouxqlelcqmdkmay)
16:07:53 mrus[m] joins (mrusmatrix@gateway/shell/matrix.org/x-nyxisannhqxusqip)
16:07:54 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
16:08:38 × fendor quits (~fendor@178.165.131.158.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
16:08:57 addem[m] joins (addemmatri@gateway/shell/matrix.org/x-ntvnidtawalxbjtp)
16:10:23 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
16:10:30 sm[m] joins (simonmicma@gateway/shell/matrix.org/x-utidehjolisbbzib)
16:11:04 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
16:11:07 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-siyxvspwdzfpxxyl) (Quit: Connection closed for inactivity)
16:11:21 MahmoudMAZOUZ[m] joins (mazouzmaen@gateway/shell/matrix.org/x-zmmzhvmpppteyfyp)
16:11:26 curiousgay joins (~gay@178.217.208.8)
16:11:56 heck-to-the-gnom joins (heck-to-th@gateway/shell/matrix.org/x-kmjeqntjrpvcwwjg)
16:11:57 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
16:12:52 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:12:58 × gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
16:13:05 rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-lzmptztukgszoxpq)
16:13:09 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
16:13:13 lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-msivqfjwrgwymfkm)
16:13:30 × vicfred quits (~vicfred@unaffiliated/vicfred) (Remote host closed the connection)
16:13:32 toasty_avocado[m joins (toastyavoc@gateway/shell/matrix.org/x-loprzciosfemkzbl)
16:13:43 vicfred joins (~vicfred@unaffiliated/vicfred)
16:14:38 siraben joins (sirabenmat@gateway/shell/matrix.org/x-yfumbrfrhkufdprl)
16:14:46 fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-miolkkmcquhustia)
16:14:57 kadoban joins (kadobanemp@gateway/shell/matrix.org/x-flguyzdddcwjthqm)
16:14:58 bitonic joins (bitonicmat@gateway/shell/matrix.org/x-haecgexsvzkddgnf)
16:15:53 × idhugo quits (~idhugo@80-62-117-136-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
16:16:00 DevTurks[m] joins (turkdevops@gateway/shell/matrix.org/x-dvhiuszorullyqrz)
16:16:45 darkcodi[m] joins (darkcodima@gateway/shell/matrix.org/x-owzuajoacjbourmn)
16:16:59 speakerspivakeem joins (speakerdea@gateway/shell/matrix.org/x-vezbntbvhbeyemoh)
16:17:02 invent[m] joins (inventmatr@gateway/shell/matrix.org/x-vetnnuxstyqknlip)
16:17:02 ManofLetters[m] joins (manoflette@gateway/shell/matrix.org/x-hjwxpjbidxzyrpuv)
16:17:06 jerin joins (jerinmatri@gateway/shell/matrix.org/x-whazqgkcsutptuow)
16:17:07 Lurkki[m] joins (lurkkifene@gateway/shell/matrix.org/x-xwixopphgbkutypm)
16:17:08 plumenator[m] joins (plumenator@gateway/shell/matrix.org/x-ljfdmyhcpdaqbemc)
16:17:16 berberman[T] joins (berberma4@gateway/shell/matrix.org/x-uqzlhosordkmbbav)
16:17:36 JaakkoLuttinen[m joins (jluttinema@gateway/shell/matrix.org/x-tggcefububuqeyek)
16:18:49 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
16:18:53 × valdyn quits (valdyn@c6a7cbd8.vpn.njalla.net) (Remote host closed the connection)
16:19:16 Lurkki[m]1 joins (lurkkipriv@gateway/shell/matrix.org/x-bdtjlzpkgszqmqzb)
16:19:16 shieru[m] joins (shierualet@gateway/shell/matrix.org/x-dyldivlegqzehsie)
16:19:17 simara[m] joins (simaramatr@gateway/shell/matrix.org/x-cuvsgvwpxvwiqjpk)
16:19:18 jeffcasavant[m] joins (jeffcasava@gateway/shell/matrix.org/x-ckjwitulpnbmjojr)
16:19:21 beardhatcode joins (robbertbea@gateway/shell/matrix.org/x-czxkutvkgyyqphjm)
16:19:25 M53K5HUN_8[m] joins (m53k5hun8m@gateway/shell/matrix.org/x-euhzwfxzheermniq)
16:19:29 mjlbach joins (atriusmatr@gateway/shell/matrix.org/x-bzgyavhtbyntgokj)
16:19:31 CrabMan joins (phi-matrix@gateway/shell/matrix.org/x-pxdupdbzhbhntgjm)
16:19:57 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
16:20:01 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
16:20:02 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 256 seconds)
16:20:17 borne joins (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de)
16:20:19 Pressyware[m] joins (pressyware@gateway/shell/matrix.org/x-rmfhtohxmiuunkwo)
16:20:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
16:20:50 aggin joins (~ecm@103.88.87.99)
16:21:06 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
16:21:35 mly[m] joins (mlydisenco@gateway/shell/matrix.org/x-lmlneosenqetjeub)
16:22:06 <heebo> rip #haskell?
16:22:47 pavonia joins (~user@unaffiliated/siracusa)
16:23:03 <geekosaur> quiet day
16:23:04 × mozzarella quits (~sam@unaffiliated/sam113101) (Remote host closed the connection)
16:23:44 domenkozar[m] joins (domenkozar@NixOS/user/domenkozar)
16:24:56 × acidjnk_new quits (~acidjnk@p200300d0c72b9578819a903e74dd056f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
16:25:11 anon1891[m] joins (anon1891ma@gateway/shell/matrix.org/x-vfieadqtsyulhqgi)
16:25:14 kadobanana joins (kadoban9he@gateway/shell/matrix.org/x-wdfydwqecifgzpgk)
16:25:15 srid joins (sridmatrix@gateway/shell/matrix.org/x-impqlijaqyrahmjd)
16:25:29 PotatoHatsue joins (berbermanp@gateway/shell/matrix.org/x-brvkhptllqowaasd)
16:25:30 arcontethegreat[ joins (arcontethe@gateway/shell/matrix.org/x-godgukqzijrupgty)
16:27:30 jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-kgoshxibrhfojsgt)
16:27:39 × jess quits (jess@freenode/staff/jess) (Quit: K-Lined)
16:27:43 DamienCassou joins (damiencass@gateway/shell/matrix.org/x-hxomipezvrrwlvte)
16:27:44 rust-rocks[m] joins (rust-rocks@gateway/shell/matrix.org/x-ydwvigzffwbttrpc)
16:27:45 ThaEwat joins (thaewraptm@gateway/shell/matrix.org/x-qmjjocnwqifzpqxk)
16:28:02 maerwald[m] joins (maerwaldma@gateway/shell/matrix.org/x-fkfkjtcykuzsusmd)
16:28:03 × molehillish quits (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8) (Read error: Connection reset by peer)
16:28:05 joe[m]2 joins (joemonoida@gateway/shell/matrix.org/x-sduglxhfmdqkldsw)
16:28:09 psydruid joins (psydruidma@gateway/shell/matrix.org/x-znwlfcujfjkeivza)
16:28:30 immae joins (immaematri@gateway/shell/matrix.org/x-zfqwhsdxxdxwoswl)
16:30:51 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
16:31:56 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
16:31:58 jneira[m] joins (~jneira@125.red-176-83-69.dynamicip.rima-tde.net)
16:31:59 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:32:27 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
16:32:54 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
16:32:56 mmkarakaya joins (~mmk@176.33.226.149)
16:33:08 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
16:33:26 × cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection)
16:35:10 jpds joins (~jpds@gateway/tor-sasl/jpds)
16:35:26 infinity0 joins (~infinity0@freenet/developer/infinity0)
16:35:48 cheater joins (~user@unaffiliated/cheater)
16:37:03 codygman__ joins (~user@47.186.207.161)
16:38:56 × aggin quits (~ecm@103.88.87.99) (Quit: WeeChat 3.0.1)
16:38:59 × kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
16:41:29 <monochrom> Unpopular opinion: "data X = N | C Int X" is a power series so it is an analytic type. >:)
16:41:30 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 265 seconds)
16:42:04 <d34df00d> I have a list of objections to that.
16:42:12 MilkywayPirate joins (~user@178.157.255.8)
16:42:36 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
16:43:14 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:57ae:e786:30c4:a67d) (Ping timeout: 264 seconds)
16:43:32 Kaiepi joins (~Kaiepi@47.54.252.148)
16:43:51 waleee-cl joins (uid373333@gateway/web/irccloud.com/x-vadqztdqpenulmke)
16:43:58 electricityZZZZ joins (~electrici@135-180-3-82.static.sonic.net)
16:44:48 Yumasi joins (~guillaume@40.72.95.92.rev.sfr.net)
16:45:49 codygman` joins (~user@209.251.131.98)
16:45:53 × jneira[m] quits (~jneira@125.red-176-83-69.dynamicip.rima-tde.net) (Remote host closed the connection)
16:45:55 forgottenone joins (~forgotten@176.42.23.95)
16:46:00 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
16:46:25 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Client Quit)
16:46:27 coot_ joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
16:46:44 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
16:46:52 <heebo> monochrom: im slow, why is it a power series
16:47:13 <monochrom> 1 + Int + Int^2 + Int^3 + Int^4 + ...
16:47:26 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 264 seconds)
16:48:29 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Client Quit)
16:49:05 <heebo> i saw it just as a series of int
16:49:39 <monochrom> 1 + x + x^2 + x^3 + ... is a power series.
16:49:40 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
16:49:43 × coot quits (~coot@37.30.58.223.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 265 seconds)
16:49:43 coot_ is now known as coot
16:49:48 Garbanzo joins (~Garbanzo@2602:304:6eac:dc10::2e)
16:50:20 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
16:50:24 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Client Quit)
16:50:29 <geekosaur> the second X brings in more Ints
16:50:45 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
16:51:36 coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
16:51:46 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
16:52:21 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
16:53:49 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
16:54:30 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
16:54:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:55:09 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
16:55:29 gzj joins (~gzj@unaffiliated/gzj)
16:55:50 <tomsmeding> X =~ [Int]
16:56:04 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Quit: WeeChat 1.9.1)
16:56:14 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Client Quit)
16:56:18 × Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 256 seconds)
16:56:24 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
16:56:32 <geekosaur> yes
16:56:34 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
16:56:40 <Gurkenglas> Does every Contravariant f have some F and some Functor g such that f a is just g a -> F?
16:56:54 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
16:57:02 × minoru_shiraeesh quits (~shiraeesh@46.34.206.238) (Ping timeout: 264 seconds)
16:57:07 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
16:58:34 <tomsmeding> monochrom: data X' i = N | C i (X' (i, Int)) ; type X = X' () -- that's a power series
16:58:40 <dolio> monochrom: https://youtu.be/XqywV-wkKSE?t=2486
16:59:09 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
16:59:23 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
16:59:38 kuribas joins (~user@ptr-25vy0i8idla2ics5k8n.18120a2.ip6.access.telenet.be)
16:59:44 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Client Quit)
17:00:07 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
17:00:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
17:01:20 minoru_shiraeesh joins (~shiraeesh@46.34.206.238)
17:01:46 <heebo> just looked like: data List = Empty | Int `:` List
17:01:56 <heebo> excuse my bastard syntax
17:02:44 <heebo> at least is isomorphic to it.
17:03:17 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 260 seconds)
17:03:27 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
17:04:02 <tomsmeding> heebo: backticks are for making alphabetic names infix; operators are infix by default
17:04:07 <geekosaur> heebo, monochrom is describing it in terms of sum and product types
17:04:10 <tomsmeding> so it would've been data List = Empty | Int : List
17:05:00 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
17:05:38 × conal quits (~conal@192.145.118.79) (Quit: Computer has gone to sleep.)
17:06:48 <Gurkenglas> tomsmeding, shouldn't it be data X' i = N i | C (X' (i, Int)); type X = X ()?
17:07:29 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
17:07:29 <tomsmeding> Gurkenglas: that way there's only a bunch of Ints at the end on the N
17:08:19 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
17:08:21 <tomsmeding> I wanted it to be ((), ((), Int), ((), Int, Int), ((), Int, Int, Int), ...), except encoded as pairs instead of long tuples
17:08:37 <tomsmeding> but it's joking anyway :p
17:11:19 hexfive joins (~hexfive@50.35.83.177)
17:11:43 × kuribas quits (~user@ptr-25vy0i8idla2ics5k8n.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
17:12:59 × mananamenos quits (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
17:13:09 <minoru_shiraeesh> a question about stm and an example from the parconc book
17:13:46 × Vadrigar quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Remote host closed the connection)
17:13:50 <minoru_shiraeesh> in chapter 12 there is an example of a chat
17:14:15 <minoru_shiraeesh> there is a /kick command available to users
17:14:48 <minoru_shiraeesh> the book says that when two users kick each other at the same time, only one of two kicks will succeed
17:15:32 <minoru_shiraeesh> but the kick operation is not single stm transaction, but two consecutive transactions
17:16:29 conal joins (~conal@192.145.118.79)
17:17:07 <minoru_shiraeesh> it seems to me that there is no guarantee that only one of two kicks succeeds
17:17:24 × xff0x quits (~xff0x@2001:1a81:5390:3000:a106:5c1e:878c:2ba3) (Ping timeout: 244 seconds)
17:18:15 <minoru_shiraeesh> here is an issue that I created in the examples project: https://github.com/simonmar/parconc-examples/issues/29
17:18:23 xff0x joins (~xff0x@2001:1a81:5390:3000:a737:9764:8d39:b00d)
17:19:07 MilkywayPirate joins (~user@178.157.255.8)
17:19:11 <minoru_shiraeesh> here is my counter-example that makes a second transaction in the kick process wait for a tvar: https://github.com/shiraeeshi/hs-parconc-chat-server
17:19:51 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
17:19:52 × sweater quits (~sweater@206.81.18.26) (Quit: WeeChat 2.8)
17:20:05 <geekosaur> once one commits, the next will fail to find the user to kick, no?
17:20:33 <jacks2> it will also fail because it is no longer in the channel
17:20:37 <davean> geekosaur: not quite, looking at the code, it looks more complicated than that
17:21:39 <geekosaur> oh, right, the second transaction would be from the kicked user, so no channel any more
17:22:14 <davean> Theres also two client types, local and remote, which are handled differently
17:22:29 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
17:22:31 <davean> https://github.com/simonmar/parconc-examples/blob/master/distrib-chat/chat.hs#L170
17:22:46 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:23:11 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
17:23:45 <minoru_shiraeesh> davean: no, that's another example
17:24:00 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
17:24:00 <minoru_shiraeesh> see the "chat" example, not a "distrib-chat"
17:24:10 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 258 seconds)
17:24:17 <davean> ah
17:24:23 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
17:24:38 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
17:24:48 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
17:24:48 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Read error: Connection reset by peer)
17:24:53 geekosaur joins (82650c7a@130.101.12.122)
17:25:13 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
17:25:17 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
17:26:20 kenanmarasli joins (1fdf09d5@31.223.9.213)
17:26:29 <minoru_shiraeesh> geekosaur: "once one commits, the next will fail to find the user to kick, no?"
17:26:43 × aqd quits (~aqd@84.20.147.33) (Ping timeout: 245 seconds)
17:27:02 <minoru_shiraeesh> in order for kick to be effective, the kicked user's thread should enter the next iteration and recognize that it was kicked
17:27:04 <geekosaur> already corrected above, the other isn't in channel any more at that point
17:27:08 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
17:27:09 <davean> minoru_shiraeesh: well, where is the map deleted?
17:27:23 <davean> removeClient would do it
17:27:27 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
17:27:38 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
17:27:42 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
17:27:46 LKoen joins (~LKoen@194.250.88.92.rev.sfr.net)
17:28:02 <minoru_shiraeesh> but before entering the next iteration the kicked user could handle his own kick command
17:28:06 × peanut_ quits (~peanut@2a02:8388:a101:2600:9f7e:958d:f1dd:b94a) (Quit: Leaving)
17:28:33 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 256 seconds)
17:28:45 <kenanmarasli> This is probably a FAQ but I am looking at the book choices here and don't know which to pick: https://www.haskell.org/documentation/
17:28:45 <kenanmarasli> Which book do you suggest for a 3rd year computer science student?
17:28:59 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
17:29:32 × justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
17:29:41 ukari joins (~ukari@unaffiliated/ukari)
17:29:43 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
17:30:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:30:29 × landonf quits (landonf@mac68k.info) (Excess Flood)
17:30:42 × borne quits (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
17:30:43 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 272 seconds)
17:31:12 × graf_blutwurst quits (~user@2001:171b:226e:adc0:78b0:5183:4ef7:68f) (Remote host closed the connection)
17:31:40 <davean> atomically $ kick server who clientName <-- does not contain code to remove them from the channel
17:31:41 <minoru_shiraeesh> geekosaur: "already corrected above, the other isn't in channel any more at that point" - what if two threads run the "kick" function at the same time?
17:31:43 idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
17:31:56 <davean> minoru_shiraeesh: Thats not a proble, its atomic
17:32:08 <davean> but I see nothing that makes them not actually in the channel atomicly
17:32:30 <davean> it *does* set a kicked variable, but it doesn't change the channel member set
17:32:48 <minoru_shiraeesh> davean: yeah, but it seems to me that they both can successfully kick each other
17:32:48 landonf joins (landonf@mac68k.info)
17:33:13 <davean> minoru_shiraeesh: I can believe that given this code. The code comments only talk about a 3rd person being kicked though
17:33:20 <davean> this code would be trivial to make obviously correct BTW
17:33:55 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
17:33:56 <minoru_shiraeesh> davean: what comments?
17:34:03 <monochrom> kenanmarasli: http://www.vex.net/~trebla/haskell/learn-sources.html has my comments on those I have actually used or at least partly checked.
17:34:07 <geekosaur> there are usually as many answers to that one as there are answerers. I'm partial to Hutton's myselfhttp://www.cs.nott.ac.uk/~pszgmh/pih.html. Some prefer Bird's https://www.cambridge.org/us/academic/subjects/computer-science/programming-languages-and-applied-logic/thinking-functionally-haskell
17:34:08 × smerdyakov quits (~dan@5.146.194.90) (Ping timeout: 240 seconds)
17:34:37 frozenErebus joins (~frozenEre@94.128.81.87)
17:34:44 <davean> monochrom: but look down in "server" of "runClient"
17:34:52 <geekosaur> whoops, ran those together. http://www.cs.nott.ac.uk/~pszgmh/pih.html
17:34:52 <monochrom> Not me :)
17:34:55 <minoru_shiraeesh> davean: "this code would be trivial to make obviously correct BTW" - what do you mean? kick in one transaction?
17:34:57 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
17:35:13 geekosaur joins (82650c7a@130.101.12.122)
17:35:30 <davean> "- Consistency: - if two clients simultaneously kick a third client, only one will be successful"
17:35:43 MilkywayPirate joins (~user@178.157.255.8)
17:36:01 <davean> minoru_shiraeesh: put the kick logic in one place, not two, or comment about how it is correct and where to look for the rest of it.
17:36:17 <minoru_shiraeesh> oh, I missed that part about two clients kicking a third client
17:36:17 <davean> the difficulty with this design is they made there be two critical locations for kicking to function correctly.
17:36:41 mmkarakaya parts (~mmk@176.33.226.149) ()
17:37:01 <davean> I do not like this code design
17:37:03 <minoru_shiraeesh> davean: you mean two transactions?
17:37:06 <davean> Also SO MANY THREADS
17:37:09 <davean> minoru_shiraeesh: no
17:37:13 <davean> I do not mean two transactions
17:39:01 × bgamari quits (~bgamari@72.65.101.179) (Quit: ZNC 1.8.1 - https://znc.in)
17:39:04 <kenanmarasli> monochrom: that was a nice read, thanks
17:39:11 <monochrom> :)
17:39:38 × stree quits (~stree@68.36.8.116) (Ping timeout: 264 seconds)
17:39:46 jamm_ joins (~jamm@unaffiliated/jamm)
17:40:09 × Nahra quits (~Nahra@unaffiliated/nahra) (Ping timeout: 264 seconds)
17:41:43 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:41:48 Nahra joins (~Nahra@unaffiliated/nahra)
17:42:42 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
17:42:55 <minoru_shiraeesh> I checked whether a book claims a guarantee about two users kicking each other case. Here is what it says:
17:42:59 <minoru_shiraeesh> <quote>
17:43:06 valdyn joins (~valdyn@aftr-62-216-207-119.dynamic.mnet-online.de)
17:43:10 <minoru_shiraeesh> We should consider how to handle /kick because we want to guarantee that two clients cannot simultaneously kick each other.
17:43:17 <minoru_shiraeesh> This implies some synchronized, shared state for each client to indicate whether it has been kicked.
17:43:24 <minoru_shiraeesh> A server thread can then check that it has not already been kicked itself before kicking another client.
17:43:27 <minoru_shiraeesh> </quote>
17:44:36 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
17:44:42 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
17:44:48 <minoru_shiraeesh> but, as I said, the guarantee doesn't work because we broke atomicity when divided a transaction into two
17:45:28 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator")
17:46:08 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
17:47:21 bgamari joins (~bgamari@2001:470:e438::1)
17:47:37 × valdyn quits (~valdyn@aftr-62-216-207-119.dynamic.mnet-online.de) (Ping timeout: 260 seconds)
17:47:59 valdyn joins (valdyn@c6a7cbec.vpn.njalla.net)
17:48:23 × carlomagno quits (~cararell@148.87.23.10) (Ping timeout: 245 seconds)
17:49:08 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
17:49:22 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 260 seconds)
17:49:45 Chousuke joins (oranenj@coffee.modeemi.fi)
17:49:50 carlomagno joins (~cararell@148.87.23.10)
17:49:55 <minoru_shiraeesh> davean: "Also SO MANY THREADS" - two threads per client: one for translating input from client to commands (and add them to tchan), another to handle commands
17:51:53 stree joins (~stree@68.36.8.116)
17:52:58 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
17:53:01 × Chousuke quits (oranenj@coffee.modeemi.fi) (Client Quit)
17:53:08 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
17:53:27 gzj joins (~gzj@unaffiliated/gzj)
17:54:37 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 260 seconds)
17:54:37 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 260 seconds)
17:55:57 borne joins (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de)
17:56:25 × idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
17:56:34 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
17:56:43 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 245 seconds)
17:57:37 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
18:00:36 Wuzzy joins (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de)
18:01:02 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
18:01:50 geekosaur joins (82650c7a@130.101.12.122)
18:02:24 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
18:03:14 × landonf quits (landonf@mac68k.info) (Excess Flood)
18:03:34 × rajivr quits (uid269651@gateway/web/irccloud.com/x-qhxglwtyogwwwcfv) (Quit: Connection closed for inactivity)
18:03:55 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
18:04:26 × kenanmarasli quits (1fdf09d5@31.223.9.213) (Quit: Connection closed)
18:04:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
18:05:18 landonf joins (landonf@mac68k.info)
18:05:19 Chousuke joins (oranenj@coffee.modeemi.fi)
18:06:02 MilkywayPirate joins (~user@178.157.255.8)
18:10:08 × landonf quits (landonf@mac68k.info) (Excess Flood)
18:11:42 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 258 seconds)
18:12:18 landonf joins (landonf@mac68k.info)
18:12:31 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 272 seconds)
18:13:41 idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
18:13:43 Pickchea joins (~private@unaffiliated/pickchea)
18:15:53 × Yumasi quits (~guillaume@40.72.95.92.rev.sfr.net) (Ping timeout: 245 seconds)
18:17:46 carlomagno1 joins (~cararell@148.87.23.10)
18:18:01 Yumasi joins (~guillaume@2a01:e0a:5cb:4430:e6b2:95da:b20a:c28e)
18:19:44 <ski> dolio : interesting talk
18:19:48 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
18:20:07 × carlomagno quits (~cararell@148.87.23.10) (Ping timeout: 272 seconds)
18:20:48 × landonf quits (landonf@mac68k.info) (Excess Flood)
18:21:00 howdoi joins (uid224@gateway/web/irccloud.com/x-icyhhocxhhkwzcda)
18:21:18 landonf joins (landonf@mac68k.info)
18:21:41 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:44d0:48c2:7912:8b23)
18:22:30 is_null joins (~jpic@pdpc/supporter/professional/is-null)
18:24:51 × landonf quits (landonf@mac68k.info) (Excess Flood)
18:25:11 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:2475:6303:62e1:31c1) (Ping timeout: 272 seconds)
18:25:16 × thoros quits (~thoros@194-166-47-167.hdsl.highway.telekom.at) (Quit: WeeChat 3.0.1)
18:25:21 × chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
18:25:35 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
18:25:54 zebrag joins (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr)
18:25:56 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:e6b2:95da:b20a:c28e) (Ping timeout: 240 seconds)
18:26:48 landonf joins (landonf@mac68k.info)
18:27:36 × michalz quits (~user@185.246.204.47) (Remote host closed the connection)
18:28:33 molehillish joins (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8)
18:29:37 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 260 seconds)
18:30:42 son0p joins (~son0p@181.136.122.143)
18:30:47 × ubert quits (~Thunderbi@p200300ecdf25d9f2e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
18:33:02 × molehillish quits (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8) (Ping timeout: 264 seconds)
18:33:04 <dolio> Yeah.
18:33:13 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Remote host closed the connection)
18:34:14 × malumore quits (~malumore@151.62.117.161) (Ping timeout: 264 seconds)
18:34:47 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
18:34:53 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
18:35:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:35:40 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
18:35:50 __minoru__shirae joins (~shiraeesh@46.34.207.185)
18:36:10 ukari joins (~ukari@unaffiliated/ukari)
18:36:26 × idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
18:36:38 × minoru_shiraeesh quits (~shiraeesh@46.34.206.238) (Ping timeout: 264 seconds)
18:37:00 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:83f1:3643:e78d:1fe7)
18:37:47 MilkywayPirate joins (~user@178.157.255.8)
18:41:39 × Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Read error: Connection reset by peer)
18:42:00 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
18:42:05 Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net)
18:42:09 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
18:44:03 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
18:44:45 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 265 seconds)
18:46:45 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
18:47:37 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
18:47:57 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
18:48:50 MilkywayPirate joins (~user@178.157.255.8)
18:51:47 DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
18:51:48 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
18:52:04 Tario joins (~Tario@201.192.165.173)
18:53:20 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
18:53:29 × borne quits (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
18:53:32 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 260 seconds)
18:53:50 × jonathanx_ quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
18:55:39 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
18:55:46 solidus-river joins (~mike@174.127.249.180)
18:55:59 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
18:56:02 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
18:56:17 <solidus-river> ws 0
18:56:20 × conal quits (~conal@192.145.118.79) (Quit: Computer has gone to sleep.)
18:56:23 Pickchea joins (~private@unaffiliated/pickchea)
18:56:28 jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se)
18:57:55 × chibi quits (~chibi@75-26-238-119.lightspeed.glvwil.sbcglobal.net) (Remote host closed the connection)
18:59:22 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 260 seconds)
19:00:09 MilkywayPirate joins (~user@178.157.255.8)
19:00:42 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
19:01:21 frozenErebus joins (~frozenEre@94.128.81.87)
19:02:17 borne joins (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de)
19:02:26 molehillish joins (~molehilli@2600:8800:8d06:1800:a4ec:e3c6:6b54:caa8)
19:03:29 berberman_ joins (~berberman@unaffiliated/berberman)
19:04:14 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:04:36 × MilkywayPirate quits (~user@178.157.255.8) (Remote host closed the connection)
19:05:02 MilkywayPirate joins (~user@178.157.255.8)
19:05:11 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
19:05:25 geekosaur joins (82650c7a@130.101.12.122)
19:05:30 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
19:08:18 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
19:08:26 × borne quits (~fritjof@200116b8640b5f00a6d9c1e30b1bd3ca.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
19:08:44 malumore joins (~malumore@151.62.117.161)
19:10:51 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 265 seconds)
19:11:02 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 260 seconds)
19:11:18 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:4978:201f:ec35:67e9)
19:11:18 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
19:11:35 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
19:11:53 MilkywayPirate joins (~user@178.157.255.8)
19:12:33 <Gurkenglas> Should WHNF for a function f be the WHNF of f ⊥?
19:12:47 × ph88^ quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
19:12:50 conal joins (~conal@64.71.133.70)
19:13:45 <monochrom> No. Not even the same type.
19:15:02 × conal quits (~conal@64.71.133.70) (Client Quit)
19:15:02 <Gurkenglas> monochrom, yea but except for the not being the same type thing :P
19:15:07 <monochrom> In Haskell, especially because of seq, WHNF for function types is a lambda without any requirement on what's inside the lambda. IIRC this is the "weak" part.
19:15:08 × texasmynsted quits (~texasmyns@99.96.221.112) (Quit: ZNC - http://znc.in)
19:15:21 atraii joins (~atraii@2601:681:8700:c471:182c:49ac:c430:1f21)
19:15:43 <Gurkenglas> aka, should seq f () apply f to ⊥ until f ⊥ reaches WHNF or the ⊥ is touched
19:15:52 <dolio> No.
19:15:58 <Gurkenglas> Why not?
19:16:08 <dolio> Why would it?
19:16:18 × MilkywayPirate quits (~user@178.157.255.8) (Ping timeout: 245 seconds)
19:16:26 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:4978:201f:ec35:67e9) (Ping timeout: 268 seconds)
19:16:37 <Gurkenglas> It would undefined and undefined . id observationally equivalent (right?). Would it open some other can of worms?
19:16:38 <monochrom> seq f () is () iff f is \x->something
19:16:47 <monochrom> even \x->bottom
19:16:50 <Gurkenglas> *would make
19:17:04 <monochrom> as said, "weak" means no one looks under the lambda.
19:17:17 <Gurkenglas> monochrom, you are saying it like it is, but i am asking how it should be
19:18:07 <monochrom> How it should be? There are only two choices. (\x->bottom) = bottom or (\x->bottom) ≠ bottom.
19:18:27 <Gurkenglas> right, i am arguing in favor of (\x->bottom) = bottom. Is there a reason against?
19:18:27 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Remote host closed the connection)
19:18:29 <monochrom> f bottom is highly irrelevant.
19:18:45 <monochrom> seq is a reason against.
19:19:13 <Gurkenglas> Why not make seq (\x->⊥) () = ⊥?
19:19:30 <monochrom> And seq is justified by "laziness can hurt space so we need something for manually kiling laziness"
19:19:32 <dolio> What is `seq id` supposed to do in this 'apply to ⊥' scenario?
19:19:46 <Gurkenglas> dolio, ⊥
19:19:46 <d34df00d> Doesn't "weak" mean nobody looks under constructors, and not lambdas?
19:19:47 conal joins (~conal@64.71.133.70)
19:20:01 <dolio> Why would you want `seq id` to blow up?
19:20:10 <Gurkenglas> dolio, because id is strict
19:20:21 <dolio> What does that have to do with anything?
19:20:28 <monochrom> Huh, when was seq supposed to check function strictness?
19:20:34 <d34df00d> I thought "weak" means that, given `data Foo a = Foo a`, Foo undefined `seq` () is to ()
19:20:41 <Gurkenglas> dolio, strict functions are exactly those which would make seq ⊥
19:20:44 × vincenzopalazzo quits (~vincenzop@host-79-30-9-166.retail.telecomitalia.it) (Remote host closed the connection)
19:20:51 <dolio> No.
19:20:51 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
19:20:59 vincenzopalazzo joins (~vincenzop@host-79-30-9-166.retail.telecomitalia.it)
19:21:09 <Gurkenglas> You mean they would not make seq ⊥, or they should not make seq ⊥?
19:21:39 × conal quits (~conal@64.71.133.70) (Client Quit)
19:21:46 <monochrom> One of "weak" or "head" or both is going to refer to "don't look under lambda". There is also the possibility that the same word also covers "don't look under constructors".
19:22:06 <Gurkenglas> okay, how would you like to call the variant that does look under lambda?
19:22:09 <dolio> seq is supposed to be strict in both arguments. id is not bottom.
19:23:04 <Gurkenglas> dolio, seq could still be strict if it mapped id to the same as bottom
19:23:13 <dolio> It could, but it would be worthless.
19:23:40 × vincenzopalazzo quits (~vincenzop@host-79-30-9-166.retail.telecomitalia.it) (Remote host closed the connection)
19:23:57 <monochrom> "thoroughly analysing normal form" looks under lambdas. >:)
19:24:00 conal joins (~conal@64.71.133.70)
19:24:02 MilkywayPirate joins (~user@178.157.255.8)
19:24:21 <dolio> The practical use of seq is to ensure some kind of evaluation, and blowing up when evaluating a strict function is pretty bad behavior.
19:24:22 <Gurkenglas> monochrom, why >:)? Will saying TANF confuse people?
19:24:24 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
19:24:32 <monochrom> I made it up.
19:25:02 <monochrom> But everyone tends to get my joke, so it is anything but confusing.
19:25:37 <Gurkenglas> you must still be joking
19:26:36 × MilkywayPirate quits (~user@178.157.255.8) (Read error: Connection reset by peer)
19:26:55 <dolio> Also, per the earlier remark, the 'weak' part is what signals not looking under lambda. 'Weak head normal form' was invented because 'head normal form' does some stuff under lambdas, which is not what actual implementations do.
19:27:04 × rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 268 seconds)
19:28:01 <Gurkenglas> dolio, you mean, people currently use seq to evaluate "let a = precompute datastrucutre in \x -> a x", and my change would break that?
19:28:33 <dolio> They could.
19:28:50 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:29:01 <Gurkenglas> I was hoping for arguments of form "even though this would make undefined observationally indistinguishable from undefined . id, it would introduce this other barrier from Hask being straightforwardly a category:"
19:29:27 <ski> (`\x -> let y = ..x.. in \z -> ..x..y..z..' is sometimes called "serious" currying. also see "run-time compilation")
19:29:38 <dolio> Being practically useless seems like a much better reason than some adherence to mathematical purity.
19:29:47 <ski> (as opposed to "trivial")
19:30:18 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
19:30:51 <ski> (well, actually. imagine a `seq y' before the '\z -> ...' as well)
19:30:56 conal joins (~conal@64.71.133.70)
19:31:00 <Gurkenglas> dolio, it would fix my VeryLazyNaturals! Or would you call my usecase useless since it's not useful for any actual application? :P
19:31:04 <dolio> Your description is also type-directed, so might be impossible to actually implement.
19:31:51 rj joins (~x@gateway/tor-sasl/rj)
19:32:43 <monochrom> Mathematical purity is just as artificial as practice anyway.
19:34:29 Sornaensis joins (~Sornaensi@077213203030.dynamic.telenor.dk)
19:35:09 × raichoo quits (~raichoo@dslb-178-009-065-121.178.009.pools.vodafone-ip.de) (Quit: Lost terminal)
19:35:23 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
19:35:30 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
19:36:23 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 244 seconds)
19:36:23 <dolio> It's important to remember that math isn't always automatically right. If something actually behaves differently than the math, that might just mean the math is not modelling the actual thing correctly.
19:36:43 × carlomagno1 quits (~cararell@148.87.23.10) (Ping timeout: 245 seconds)
19:36:48 Lord_of_Life_ is now known as Lord_of_Life
19:37:32 <Gurkenglas> I suppose instead of blowing up, seq f () could simply proceed to () when f touches its argument ⊥ (but not when f itself resolves to undefined) - this would still make undefined observationally identical to undefined . id, right?
19:38:19 × Sorny quits (~Sornaensi@79.142.232.102) (Ping timeout: 256 seconds)
19:40:29 <monochrom> So here is what I think dolio referred to as "type directed" and I take it and go big.
19:40:42 <monochrom> We have negate :: Num a => a -> a
19:41:02 × DavidEichmann quits (~david@47.27.93.209.dyn.plus.net) (Remote host closed the connection)
19:41:25 <monochrom> So what does "seq negate ()" mean? Does it mean "seq (negate @ Int) ()"? Does it mean "seq (negate @ MonochromsSecretNumInstance) ()"?
19:41:42 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
19:41:43 × electricityZZZZ quits (~electrici@135-180-3-82.static.sonic.net) (Quit: Leaving)
19:41:43 <monochrom> Answer: "Ambiguous type variable a0 in ..."
19:41:50 <Gurkenglas> i agree
19:42:01 <monochrom> Meta-Answer: Why would it bother? I call XY Problem.
19:42:02 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
19:42:16 <Gurkenglas> you mean, nobody would actually want to seq negate ()?
19:42:51 <monochrom> I mean the feature you're wanting is both half-baked and an XY problem.
19:42:57 × atraii quits (~atraii@2601:681:8700:c471:182c:49ac:c430:1f21) (Ping timeout: 268 seconds)
19:43:23 × Nahra quits (~Nahra@unaffiliated/nahra) (Ping timeout: 245 seconds)
19:43:34 <Gurkenglas> the X would be "giff Hask pls"
19:45:08 <Gurkenglas> or do you call that another Y
19:45:17 <monochrom> I think that to achieve Hask it is much simpler to just remove seq.
19:45:37 Nahra joins (~Nahra@unaffiliated/nahra)
19:45:45 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:45:56 carlomagno joins (~cararell@148.87.23.5)
19:46:07 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:46:12 × kmein quits (~weechat@static.173.83.99.88.clients.your-server.de) (Quit: ciao kakao)
19:46:22 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:46:31 kmein joins (~weechat@static.173.83.99.88.clients.your-server.de)
19:47:23 <Gurkenglas> i like things like glb and lub though (glb a b = most defined value which is less defined than both of a and b; lub a b = least defined value which is more defined than both of a and b, if any such exist)
19:47:53 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
19:48:31 <Gurkenglas> not sure whether those require seq, but surely "\y -> if x is less defined than y then y else x" does
19:49:01 <monochrom> You can furthermore add back seq in a restricted, disciplined way by creating a class "class Seq a where seq :: a -> b -> b" so you can still have the niceness of foldl' but its type now has a Seq constraint.
19:50:00 <monochrom> This was actually the state of old Haskell versions. This means if you get your hands on a very old version of Hugs, it's actually an executable model of Hask that is highly faithful.
19:50:27 <dolio> Well, functions had an instance, though.
19:50:37 <monochrom> Ah damn.
19:50:38 <dolio> And it didn't do something undecidable. :)
19:51:17 <monochrom> Well, can always fork the source code and remove that. Hugs source code was and still is relatively simple.
19:52:08 <Gurkenglas> dolio, by undecidable do you mean seeing whether f touches its argument ⊥ without blowing up, or doing things depending on whether f is a function?
19:52:15 Deide joins (~Deide@217.155.19.23)
19:52:23 <monochrom> But really if you are interested in Hask you don't need foldl' so you don't need seq so just remove it.
19:52:24 kritzefitz joins (~kritzefit@212.86.56.80)
19:53:15 <monochrom> If you need it for one particular ADT, just write one specific function for that ADT.
19:53:15 <Gurkenglas> Why not want Hask and the ability to construct as many definedness-monotonic functions as possible?
19:53:39 <dolio> Testing if a function is point-wise bottom sounds undecidable.
19:53:58 <dolio> In general.
19:54:06 <Gurkenglas> dolio, what would require such a decision?
19:54:26 <dolio> The insistance that `⊥ = const ⊥` in domain theory.
19:54:46 <monochrom> I don't see how Hask itself doesn't already have many levels of definedness.
19:55:12 <Gurkenglas> dolio, how does this insistence require such a decision?
19:55:47 <dolio> Well, for one, your description of `seq` to begin this conversation was actually not what it is specified to do. You were changing the definition.
19:56:27 <Gurkenglas> dolio, sure, I was proposing a change of its behavior. One can do it the usual way and define a new term to work like I describe, then deprecate the old one over a bunch of years
19:56:29 <dolio> What it is specified to do is be ⊥ if its frist argument is ⊥, and equal to its second argument if its first argument is not ⊥.
19:56:59 <dolio> So, if you adhere to the domain theoretic notion of the function space, that requires determining if functions are point-wise ⊥.
19:58:03 <Gurkenglas> I see. I agree that seq as specified can't be implemented with ⊥ = const ⊥.
19:58:26 × frozenErebus quits (~frozenEre@94.128.81.87) (Ping timeout: 240 seconds)
19:59:04 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:59:10 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Remote host closed the connection)
19:59:33 Noldorin joins (~noldorin@unaffiliated/noldorin)
20:00:02 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
20:00:08 <dolio> It might actually be implementable, but so expensive that it would be completely unusable.
20:00:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:00:41 <dolio> Because it needs to run the function on all possible inputs in parallel and see if any finish.
20:01:31 <Gurkenglas> i suppose it depends on whether we say it has to check all terms or all values - there are uncountably large types to use for the input, after all
20:01:33 <dolio> I mean, the fact that it is a valid domain theoretic function means that you can implement it in principle.
20:01:54 <sclv> i would run it on all possible inputs in serial, but just do it faster
20:02:09 <monochrom> As usual, denotational semantics happily ignores costs.
20:02:24 <sclv> u just need a system clock indexed by an uncountable ordinal
20:02:34 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:02:35 <dolio> The models where this would work would be able to enumerate all possible values, because only the ones definable in the language count.
20:02:41 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
20:02:52 Sathiana joins (~kath@185-113-98-38.cust.bredband2.com)
20:02:59 <monochrom> sclv, ever heard of functional reactive programming? >:)
20:03:11 <dolio> So, check all possible Haskell terms.
20:03:13 <monochrom> its time model is the continuum.
20:03:33 <monochrom> although, not sure how much it insist on the ordinal aspect.
20:03:42 <sclv> ok sorry i should have send higher uncountable ordinal
20:04:18 <dolio> Of course, those models are in some sense bad in their own ways.
20:04:56 <Gurkenglas> dolio, but aren't there uncountably many valid domain-theoretic functions so they can't all be implementable?
20:05:31 smerdyakov joins (~dan@5.146.195.159)
20:05:34 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 256 seconds)
20:05:38 <dolio> This is how you implement it on a computer. Computers implementations aren't abstract mathematical domains.
20:06:00 ubert1 joins (~Thunderbi@p200300ecdf25d9f2e6b318fffe838f33.dip0.t-ipconnect.de)
20:06:19 <dolio> The domain theoretic function is just given by the specification that `it is ⊥ if ...`.
20:06:46 <sclv> this is really about skolem's paradox https://en.wikipedia.org/wiki/Skolem%27s_paradox
20:08:29 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:08:40 petersen joins (~petersen@redhat/juhp)
20:08:51 <dolio> The domain theoretic description is just a simplifying abstraction for talking about the behavior of actual implementations. The implementations don't work in terms of domains.
20:08:56 × heebo quits (~user@cpc97956-croy24-2-0-cust20.19-2.cable.virginm.net) (Ping timeout: 244 seconds)
20:10:21 <dolio> The way the implementation works is that if the function is point-wise bottom, it will never find a value to stop the parallel evaluation, so the overall result will be bottom.
20:10:27 redmp joins (~redmp@172.58.38.247)
20:11:23 <dolio> And if it's not point-wise bottom, eventually the right point might be found and work can continue.
20:12:19 <dolio> That behavior corresponds to the domain theoretic definition.
20:12:45 stree joins (~stree@68.36.8.116)
20:13:23 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
20:15:29 <Gurkenglas> dolio, if the function f to be judged equal or not equal to const ⊥ has an argument type with a value more defined than any other, you can simply check whether f applied to that value is ⊥ :)
20:19:18 <Gurkenglas> (...such argument types are isomorphic to A -> () for some A, I think...)
20:21:03 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
20:22:48 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
20:25:15 × smerdyakov quits (~dan@5.146.195.159) (Quit: Leaving)
20:25:35 smerdyakov joins (~dan@5.146.195.159)
20:25:36 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:25:53 zebrag joins (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr)
20:26:36 × vnz quits (~vnz@unaffiliated/vnz) (Quit: ZNC - http://znc.in)
20:26:47 towel_ is now known as towel
20:27:46 <dolio> Most domains are not like that.
20:27:47 jneira joins (501e65b6@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.101.182)
20:27:54 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
20:28:10 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 258 seconds)
20:28:34 vnz joins (~vnz@2001:bc8:604:94f::1)
20:28:34 × vnz quits (~vnz@2001:bc8:604:94f::1) (Changing host)
20:28:34 vnz joins (~vnz@unaffiliated/vnz)
20:28:37 × Nahra quits (~Nahra@unaffiliated/nahra) (Ping timeout: 260 seconds)
20:31:04 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:32:31 <dolio> If you use lattice theory instead you'd have that, but I don't know as much about lattice theoretic semantics.
20:33:17 <wz1000> I would really like to mask in ConduitT
20:33:31 <wz1000> but I don't think there is a way
20:34:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
20:35:05 <dolio> I think prima facie you'd have a better story for lub, too, because it would exist even if the values mismatch on the 'well-defined' parts. But I think you need to wait for all branches to complete, so that's bad.
20:37:56 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
20:38:35 ozataman joins (~ozataman@pool-151-202-25-12.nycmny.fios.verizon.net)
20:39:48 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
20:42:31 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Ping timeout: 244 seconds)
20:44:46 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
20:54:12 conal joins (~conal@64.71.133.70)
20:55:28 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 245 seconds)
21:00:32 <monochrom> Lattices are nice in giving you a sense of symmetry in "both join and meet exist, not just biasedly one of them". In the same sense classical logic is more symmetric than intuitionistic logic.
21:01:03 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 256 seconds)
21:01:25 farzad joins (~farzad@5.234.226.127)
21:01:45 <monochrom> But I learned it the hard way, even resisted for a while, that once computation is involved, that nice symmetry has to be broken. Necessarily one side is much more computable than the other. Too bad, but c'est la vie.
21:01:54 <ski> @hackage lvish
21:01:55 <lambdabot> https://hackage.haskell.org/package/lvish
21:02:55 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:03:19 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:05:00 <monochrom> You will find lattice theory --- admitting both join and meet --- more popular in semantics of stateful programming, e.g., most spaces of Dijkstra's weakest preconditions. But immediately you will also find that one of them stands for angelic non-determinism, a miraculous notion that is nice to have in math but everyone knows it is unimplementable.
21:05:22 <ski> being able to have multiple stages (more than just "not forced", and "forced, possibly containing unforced components") could also be useful. an example is "improving intervals", where one attempts to represent real numbers, by successively better rational interval approximations. you can e.g. write a binary-search of a root, using a `clamp' (`clamp lo hi x = max lo (min hi x) = min hi (max lo x)'), with an
21:05:28 <ski> implementation that at first looks like it can't terminate, due to no base case. calling `>' will force successively better approximations, until (if) it can tell the answer
21:06:13 <ski> (another possibility for multiple instantiation states would be something like splay trees, or other such things, where you can switch to an alternate representation, based of usage patterns)
21:07:47 ski idly recalls browsing a paper about using topological methods to analyze concurrency, e.g. deadlock. avoiding "forbidden regions" of a multidimensional state-space, where one traces out a monotone/increasing path
21:10:41 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
21:11:43 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
21:12:08 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
21:12:08 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
21:12:46 <farzad> hi guys, is ClassyPrelude still a thing? im having trouble setting it up in a fresh project
21:12:57 × geowiesnot_bis quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
21:14:13 <monochrom> ski: In the case of improving intervals, I think we can fake it with [(Rationa, Rational)] as lists of successively improving intervals. To be sure, as usual, encodings suck.
21:14:29 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
21:15:30 <monochrom> Haha great, improving intervals and splay trees are advocates of mutable state. >:)
21:16:01 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
21:16:49 × codygman` quits (~user@209.251.131.98) (Ping timeout: 272 seconds)
21:17:00 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Ping timeout: 265 seconds)
21:17:53 conal joins (~conal@64.71.133.70)
21:19:04 DTZUZU joins (~DTZUZO@207.81.119.43)
21:19:15 × DTZUZU_ quits (~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer)
21:20:37 farzad_ joins (~farzad@46.100.80.143)
21:23:02 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
21:23:09 × farzad quits (~farzad@5.234.226.127) (Ping timeout: 256 seconds)
21:23:46 × DTZUZU quits (~DTZUZO@207.81.119.43) (Ping timeout: 265 seconds)
21:25:32 solidus-river parts (~mike@174.127.249.180) ()
21:25:35 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
21:25:41 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 272 seconds)
21:25:54 zebrag joins (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr)
21:26:31 forp joins (57e3c46d@87.227.196.109)
21:26:42 <ski> monochrom : yea. the same mutability of the heart of by-need
21:26:52 <ski> s/of/at/1
21:27:38 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
21:28:26 jamm_ joins (~jamm@unaffiliated/jamm)
21:28:51 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
21:29:38 × forp quits (57e3c46d@87.227.196.109) (Client Quit)
21:30:13 <redmp> logs for this channel stop march 13 http://tunes.org/~nef/logs/haskell/?C=M
21:30:23 solvr joins (57e3c46d@87.227.196.109)
21:31:31 × solvr quits (57e3c46d@87.227.196.109) (Client Quit)
21:31:48 solvr joins (57e3c46d@87.227.196.109)
21:33:02 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
21:33:23 × redmp quits (~redmp@172.58.38.247) (Quit: leaving)
21:34:08 elliott_ joins (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
21:34:32 <monochrom> Hrm, yikes.
21:35:28 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
21:38:32 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Remote host closed the connection)
21:38:40 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
21:38:52 × forgottenone quits (~forgotten@176.42.23.95) (Remote host closed the connection)
21:40:56 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:acf0:35a9:d96b:256f) (Ping timeout: 240 seconds)
21:42:26 shellin joins (bab7266a@186.183.38.106)
21:43:30 coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
21:43:52 × Sathiana quits (~kath@185-113-98-38.cust.bredband2.com) (Quit: WeeChat 3.1)
21:44:10 <ski> @tell redmp try <https://ircbrowse.tomsmeding.com/browse/haskell>
21:44:10 <lambdabot> Consider it noted.
21:47:37 × _flow_ quits (~none@salem.informatik.uni-erlangen.de) (Quit: WeeChat 2.9)
21:48:15 shellin parts (bab7266a@186.183.38.106) ()
21:49:13 <falsifian> @help tell
21:49:13 <lambdabot> tell <nick> <message>. When <nick> shows activity, tell them <message>.
21:49:22 <falsifian> Cool!
21:50:32 acidjnk_new joins (~acidjnk@p200300d0c72b958398d78e73e557de79.dip0.t-ipconnect.de)
21:51:11 × heatsink quits (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9) (Remote host closed the connection)
21:51:19 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds)
21:51:22 × ubert1 quits (~Thunderbi@p200300ecdf25d9f2e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
21:56:28 <lukelau_> Are there any http libraries that allow me to stream http responses in a lightweight manner?
21:57:08 <lukelau_> everything I’ve seen so far either involves setting up conduits or io-streams, but what I really want is just a lazy bytestring that just streams the response
21:58:23 × Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22:02:24 <__minoru__shirae> @help untell
22:02:24 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
22:04:29 usr25 joins (~usr25@unaffiliated/usr25)
22:04:43 forgottenone joins (~forgotten@176.42.23.95)
22:05:38 <__minoru__shirae> lukelau_: how about using network package directly?
22:05:58 Noldorin joins (~noldorin@unaffiliated/noldorin)
22:06:59 <__minoru__shirae> there is a Network.Socket.ByteString.Lazy module: https://hackage.haskell.org/package/network-3.1.2.1/docs/Network-Socket-ByteString-Lazy.html
22:09:31 Rudd0 joins (~Rudd0@185.189.115.108)
22:09:52 <lukelau_> __minoru__shirae: hm was hoping i wouldnt have to drop down to the socket level
22:10:32 <lukelau_> is there a reason though as to why http packages currently wait for the entire response before returning lazy results?
22:11:12 <lukelau_> i gather that some might want to throw an exception if the status code isn’t 200, but thats the first thing that arrives
22:13:57 geowiesnot_bis joins (~user@87-89-181-157.abo.bbox.fr)
22:15:58 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:30aa:5abb:2db7:7fb5)
22:17:20 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Quit: Lost terminal)
22:18:02 × knupfer quits (~Thunderbi@i59F7FF9C.versanet.de) (Ping timeout: 264 seconds)
22:19:16 <__minoru__shirae> lukelau_: I think that an exception you're talking about has different semantics than http response code semantics
22:20:46 <__minoru__shirae> server can start sending you a 200 response with a big body and fail in the middle of it
22:20:57 × stree quits (~stree@68.36.8.116) (Ping timeout: 264 seconds)
22:21:34 × malumore quits (~malumore@151.62.117.161) (Remote host closed the connection)
22:21:44 <__minoru__shirae> http protocol doesn't guarrantee that once started, a transaction of sending an answer can't fail, right?
22:21:59 <lukelau_> I guess
22:22:07 malumore joins (~malumore@151.62.117.161)
22:22:14 <lukelau_> And by fail that presumably means the connection is closed before Content-Length bytes are read?
22:22:34 <__minoru__shirae> yeah, something like that
22:22:42 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 256 seconds)
22:23:04 <__minoru__shirae> because you would need time travel to fix the response code of that response
22:24:40 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:25:35 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
22:25:54 zebrag joins (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr)
22:26:19 <__minoru__shirae> wait, do you have to know the Content-Length beforehand?
22:26:39 <__minoru__shirae> then that's another reason
22:26:47 <Axman6> lukelau_: what about wreq? https://hackage.haskell.org/package/wreq-0.5.3.3/docs/Network-Wreq.html
22:26:48 <__minoru__shirae> but I'm not sure if it's required
22:27:29 <lukelau_> __minoru__shirae: no, the http request i’m making streams blobs of json separated by newlines
22:27:34 <lukelau_> so its content-length is infinite really
22:27:55 <Axman6> get :: String -> IO (Response ByteString) (and that's a lazy bytestring)
22:27:55 <monochrom> wreq looks like what you want.
22:28:04 <lukelau_> iI
22:28:10 <lukelau_> I’ll give wreq a try, thanks
22:28:13 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:30aa:5abb:2db7:7fb5) (Ping timeout: 268 seconds)
22:28:18 <lukelau_> So far HTTP and req have been blocking for me
22:28:20 <monochrom> I just forgot it because I'm not familiar with any http library.
22:29:34 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:29:46 <Axman6> but really, lazy bytestrings are not a great way to deal with streaming data
22:29:53 × dragestil quits (~quassel@fsf/member/dragestil) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
22:30:57 <lukelau_> argh wreq blocks anyway
22:31:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:31:37 conal joins (~conal@64.71.133.70)
22:32:49 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 272 seconds)
22:33:19 <wz1000> unsafeInterleaveIO?
22:34:00 stree joins (~stree@68.36.8.116)
22:34:40 <monochrom> unsafeInterleaveIO doesn't reduce blocking unless you actually have something else to do in the meantime.
22:34:49 × lemmih quits (~lemmih@2406:3003:2072:44:ae54:3bb1:1680:3911) (Remote host closed the connection)
22:35:07 lemmih joins (~lemmih@2406:3003:2072:44:1345:21f1:41a5:e328)
22:35:08 <Gurkenglas> "To make packages available add them to the stack.yaml in the IHaskell directory and run stack solver && stack install." <- stack solver says "Invalid argument: 'solver'", what do I do?
22:35:41 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
22:36:57 <sclv> Did stack delete the solver command? Iirc it may have, not sure...
22:37:06 <Axman6> Perhaps check the release notes for stack to see what happened to it
22:37:43 × nf quits (~n@monade.li) (Quit: Fairfarren.)
22:38:21 nf joins (~n@monade.li)
22:38:52 <glguy> sclv: IIRC it stopped working when cabal changed and was then deprecated in favor of fixing
22:39:35 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:39:49 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:41:13 heatsink joins (~heatsink@2600:1700:bef1:5e10:b09b:3609:dd4b:42c9)
22:41:44 <sclv> right, so that sadly answers Gurkenglas ' question in the negative
22:41:57 GZJ0X_ joins (~gzj@unaffiliated/gzj)
22:42:03 <sclv> I guess the answer is "you have to figure it all out by hand". i don't know what the standard workflow for that is
22:42:03 <Gurkenglas> It's still in the user guide :( did they say what one should use instead?
22:42:21 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:42:30 <lukelau_> Axman6: yeah, http-conduit works, looks like i’m going into the conduit ecosystem now!
22:42:52 × Nik05 quits (~Nik05@unaffiliated/nik05) (Quit: ZNC 1.8.2 - https://znc.in)
22:43:04 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
22:43:17 <Axman6> good luck!
22:43:33 <Gurkenglas> like, i would like to import modules from a package whose name I know. what do I need to do?
22:43:44 Nik05 joins (~Nik05@unaffiliated/nik05)
22:44:42 × LKoen quits (~LKoen@194.250.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.”)
22:44:51 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
22:45:26 <sclv> Gurkenglas: add it to the extra deps section https://docs.haskellstack.org/en/stable/GUIDE/#curated-package-sets
22:45:39 <sclv> i assume you did that, and then stack solver failed to run
22:45:50 wonko7 joins (~wonko7@45.15.17.60)
22:45:56 × gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 265 seconds)
22:45:59 <sclv> so what that means is I think that you can still try to proceed, but you may get a failure because some transitive dep of that package is missing
22:46:10 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:30aa:5abb:2db7:7fb5)
22:46:12 <sclv> so you need to go add that transitive dep to extra deps, and repeat
22:46:17 × malumore quits (~malumore@151.62.117.161) (Ping timeout: 260 seconds)
22:46:34 <sclv> and hope you don't accidentally introduce a conflict, or take care using Mad Thinking Skillz to ensure you don't
22:46:39 <sclv> (i.e. run a solver in your head)
22:47:11 texasmynsted joins (~texasmyns@99.96.221.112)
22:47:16 <wz1000> Does Conduit really have to way to mask exceptions?
22:47:22 codygman__ joins (~user@47.186.207.161)
22:47:30 <wz1000> How do people write any exception safe code with it?
22:47:40 <sclv> they don't
22:47:55 conal joins (~conal@64.71.133.70)
22:47:57 <Axman6> I thought ResourceT was part of doing that
22:48:00 <wz1000> huh, pipes doesn't either
22:48:23 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
22:48:37 <Axman6> I would guess you rely on being able to do it in the monad your conduits use, not the conduits themselves
22:48:44 × vchlup_ quits (~vchlup@nat.brnet.cz) (Remote host closed the connection)
22:49:27 <wz1000> But I want to mask around await!
22:50:21 <Axman6> BEst I can do is, no you don't :)
22:50:56 <sclv> or don't use conduit
22:51:01 vchlup joins (~vchlup@nat.brnet.cz)
22:51:11 <wz1000> how do I ensure values don't get lost in the ether when I send a timeout and recover from it
22:51:31 <wz1000> do people really use this for network applications?
22:51:33 <sclv> i don't think you can do that with conduit
22:51:57 <wz1000> seems like a fundamental limitation
22:52:00 <sclv> agreed
22:52:11 <wz1000> which streaming library should I use?
22:52:23 <sclv> what's the full use case
22:53:08 × fendor_ quits (~fendor@91.141.1.53.wireless.dyn.drei.com) (Remote host closed the connection)
22:53:13 <wz1000> parsing/validating a stream of values
22:53:41 <sclv> what's the IO component?
22:53:51 <wz1000> it is interactive
22:54:04 <sclv> how is stream produced
22:54:05 <Axman6> I guess one answer is using threads which send values using MVars/Chans/TMVars/TChans etc. to another thread which processes values using conduit
22:54:17 <sclv> or not using conduit
22:54:22 <wz1000> via interaction with a server
22:54:23 <sclv> its extraneous to a parallel architecture
22:54:24 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
22:54:36 <wz1000> think request/response
22:54:37 <sclv> yeah i always just structure that stuff with tchans and especially bounded tchans
22:54:58 <Axman6> yeah for rerquests response stuff, threads are the way to go usually
22:56:53 aarvar joins (~foewfoiew@2601:602:a080:fa0:49ff:dc3d:e55f:8dd)
22:58:28 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
22:58:37 × farzad_ quits (~farzad@46.100.80.143) (Quit: Leaving)
22:59:32 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
22:59:37 frankdmartinez joins (~frankdmar@62.182.99.65)
23:02:32 poljar1 joins (~poljar@93-139-86-101.adsl.net.t-com.hr)
23:03:48 × poljar quits (~poljar@93-139-86-101.adsl.net.t-com.hr) (Read error: Connection reset by peer)
23:06:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
23:08:57 × wonko7 quits (~wonko7@45.15.17.60) (Ping timeout: 264 seconds)
23:10:10 Raito_Bezarius joins (~Raito@unaffiliated/raito-bezarius/x-8764578)
23:11:32 <Axman6> mo threads, less problems
23:15:08 × Franciman quits (~francesco@host-79-53-62-46.retail.telecomitalia.it) (Quit: Leaving)
23:17:15 <hpc> what is the ideal ratio of threads to regexes?
23:17:38 <Axman6> 1/0:0
23:18:06 <hpc> surely that would just mean you have -1/12 problems
23:18:33 <Axman6> depending on which mathematician you ask, yes
23:18:44 <sclv> but a regex ain't one!
23:19:21 <sclv> "if you're having Perl problems I feel bad for you son / I got -1/12 problems but a regex ain't one"
23:20:06 × frankdmartinez quits (~frankdmar@62.182.99.65) (Quit: frankdmartinez)
23:22:29 frankdmartinez joins (~frankdmar@62.182.99.65)
23:23:58 myShoggoth joins (~myShoggot@75.164.81.55)
23:26:43 × frankdmartinez quits (~frankdmar@62.182.99.65) (Ping timeout: 245 seconds)
23:27:15 × geowiesnot_bis quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
23:27:49 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 256 seconds)
23:28:09 × nf quits (~n@monade.li) (Quit: Fairfarren.)
23:28:45 nf joins (~n@monade.li)
23:28:58 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
23:31:04 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
23:33:37 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 272 seconds)
23:34:38 × elliott_ quits (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
23:34:47 × Guest79447 quits (~textual@zrcout.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:35:01 × xsperry quits (~as@unaffiliated/xsperry) ()
23:37:32 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
23:40:40 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:44d0:48c2:7912:8b23) (Quit: Leaving)
23:44:26 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
23:51:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
23:51:58 xsperry joins (~as@unaffiliated/xsperry)
23:52:05 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:54:12 × sw1nn quits (~sw1nn@2a00:23c7:622f:2c00:b196:7c21:3dc:6adc) (Ping timeout: 244 seconds)
23:56:43 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 245 seconds)
23:59:21 <MarcelineVQ> good job today, you

All times are in UTC on 2021-03-23.