2021/10/06

2021-10-06 00:00:01 +0200 <Franciman> i wonder, is there a way to mix strictness with this added modularity
2021-10-06 00:00:36 +0200 <Franciman> lol awpr
2021-10-06 00:01:10 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-10-06 00:03:38 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-06 00:04:19 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-06 00:06:04 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
2021-10-06 00:07:25 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
2021-10-06 00:07:49 +0200ubert(~Thunderbi@178.115.35.209.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
2021-10-06 00:10:08 +0200rekahsoft(~rekahsoft@2605:8d80:6e1:e79b:d89:2184:8ba7:bd43) (Ping timeout: 250 seconds)
2021-10-06 00:17:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f81d:7133:81c9:b91d)
2021-10-06 00:19:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-10-06 00:26:53 +0200acidjnk_new(~acidjnk@p200300d0c703cb83c18eec9e6894a9d9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-10-06 00:30:18 +0200emf(~emf@2620:10d:c090:400::5:5481) (Ping timeout: 260 seconds)
2021-10-06 00:30:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 00:30:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 00:30:52 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 00:35:19 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-10-06 00:38:39 +0200 <cdsmith> You ought to be able to derive Bounded for an ADT with all Bounded fields. GHC says it has to be an enumeration type or have only one constructor. Is there a reason I'm missing?
2021-10-06 00:39:13 +0200 <awpr> https://hackage.haskell.org/package/finite-table `deriving Finite via Wrapped Generic MyADT`
2021-10-06 00:39:14 +0200 <geekosaur> just because it's easier, I think
2021-10-06 00:39:59 +0200 <geekosaur> but also possibly because you could argue about traversal order
2021-10-06 00:40:42 +0200 <cdsmith> Bounded doesn't need a traversal order, does it?. Only a min and max bound.
2021-10-06 00:41:46 +0200 <cdsmith> Well, I'm just being grumpy. I can write an instance.
2021-10-06 00:42:14 +0200 <geekosaur> with only one field, that field specifies the order. with two, you can choose which order to increment the fields in
2021-10-06 00:42:19 +0200 <awpr> ah yeah, that does seem to make sense even independently of a conversion to/from integers. for some reason I was thinking Bounded had an Enum superclass
2021-10-06 00:42:39 +0200 <geekosaur> no, it just has some special behavior when combined with Enum
2021-10-06 00:43:00 +0200 <geekosaur> (which is kinda sad as it should be split out, not just "special behavior")
2021-10-06 00:43:03 +0200 <cdsmith> But two fields is fine if you have only one constructor? Or not? (I didn't try)
2021-10-06 00:43:30 +0200 <cdsmith> > data Foo = Foo Int Int deriving (Bounded)
2021-10-06 00:43:31 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘data’
2021-10-06 00:43:40 +0200 <cdsmith> Too bad
2021-10-06 00:43:41 +0200 <geekosaur> use yahb (% prefix)
2021-10-06 00:43:54 +0200 <cdsmith> % data Foo = Foo Int Int deriving (Bounded)
2021-10-06 00:43:55 +0200 <yahb> cdsmith:
2021-10-06 00:44:02 +0200 <monochrom> Hrm, the Haskell 2010 exact wording (section 11.3) may be thought of as leaving it open. It has prescribed what happens to an enumeration, and what happens to a single-ctor type. But it interestingly lacks wording for either "nothing else allowed" or "what other scenerios are allowed".
2021-10-06 00:44:03 +0200 <awpr> so Finite would be useful if it should also be Enum, but it doesn't do anything for e.g. `data Thing = Thing Float Bool`
2021-10-06 00:44:41 +0200 <monochrom> My conjecture is that the committee could not reach a consensus so they just agreed to say nothing. :)
2021-10-06 00:44:43 +0200 <cdsmith> % data Bar = Bar1 Int | Bar2 Int deriving (Bounded)
2021-10-06 00:44:43 +0200 <yahb> cdsmith: ; <interactive>:2:42: error:; * Can't make a derived instance of `Bounded Bar':; `Bar' must be an enumeration type (an enumeration consists of one or more nullary, non-GADT constructors); or; `Bar' must have precisely one constructor; * In the data declaration for `Bar'
2021-10-06 00:44:46 +0200 <awpr> if I don't have an `instance Bounded (Wrapped Finite a)` I definitely should
2021-10-06 00:45:02 +0200 <cdsmith> % data Baz = Baz1 | Baz2
2021-10-06 00:45:02 +0200 <yahb> cdsmith:
2021-10-06 00:45:05 +0200CiaoSen(~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-10-06 00:45:14 +0200 <cdsmith> % data Baz = Baz1 | Baz2 deriving (Bounded)
2021-10-06 00:45:14 +0200 <yahb> cdsmith:
2021-10-06 00:45:44 +0200 <cdsmith> Yep, time to get out the ghc-proposal writing pen, I guess. Except that's a lot of work...
2021-10-06 00:46:16 +0200 <awpr> could just write a Generic instance, e.g. cribbing from `wrapped-generic-default`
2021-10-06 00:46:45 +0200 <cdsmith> It's three lines of code to write a normal instance, though. Like I said, I'm being grumpy. :)
2021-10-06 00:47:07 +0200 <monochrom> This one should be not too bad. "For multi-ctors, minBound = 1stctor minBound's, maxBound = lastctor maxBound's" is on par with the quality of writing of Haskell 2010. :)
2021-10-06 00:47:09 +0200 <awpr> it's 300 lines of code to write 100 normal instances :)
2021-10-06 00:47:15 +0200 <cdsmith> I mostly wondered if there was some good reason I was missing
2021-10-06 00:47:48 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-10-06 00:48:22 +0200 <monochrom> I think something is fishy here. Because 11.2 Enum for example, there is wording explicitly saying "derivable for only such-and-such".
2021-10-06 00:48:36 +0200 <monochrom> But no such wording for Bounded.
2021-10-06 00:49:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 00:49:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 00:49:23 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 00:49:54 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-10-06 00:51:49 +0200yielduck(~yielduck@176.120.238.10) (Remote host closed the connection)
2021-10-06 00:52:06 +0200yielduck(~yielduck@176.120.238.10)
2021-10-06 00:53:37 +0200 <cdsmith> monochrom: I guess you could argue that the report just leaves the behavior unspecified. But it clearly doesn't specify a behavior, so I'm happier assuming the report makes it illegal than allowing undefined behavior so easily.
2021-10-06 00:54:12 +0200hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-10-06 00:54:41 +0200hiruji(~hiruji@user/hiruji)
2021-10-06 00:58:04 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-10-06 00:59:31 +0200 <monochrom> The other annoying part of Haskell 2010 is that even "data/newtype X = MkX Bool" is not eligible for deriving Enum.
2021-10-06 01:00:16 +0200 <cdsmith> Yeah, makes sense for more than one field, but could be allowed for one field.
2021-10-06 01:00:28 +0200 <monochrom> The stated condition is "only possible for enumerations". They didn't even kindly add "or single-ctor single-field where the field type has Enum".
2021-10-06 01:01:17 +0200 <monochrom> Overall I sense that the committee was being very, very paranoid about this.
2021-10-06 01:04:55 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-06 01:09:04 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 01:11:11 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 01:11:37 +0200 <Cajun> well what was the paranoia founded in? there must have been *some* reasoning, right?
2021-10-06 01:12:31 +0200 <geekosaur> sadly I think the documentation about why the language committee made its decisions is long gone
2021-10-06 01:12:55 +0200 <geekosaur> (and the 2010 docs would not help, this was copied straight from the H98 report)
2021-10-06 01:18:14 +0200mestre(~mestre@191.177.175.57)
2021-10-06 01:21:34 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893) (Remote host closed the connection)
2021-10-06 01:21:50 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893)
2021-10-06 01:24:17 +0200max22-(~maxime@2a01cb088335980036d4a1972afb126b.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-10-06 01:29:34 +0200hiruji(~hiruji@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in)
2021-10-06 01:30:24 +0200hiruji(~hiruji@user/hiruji)
2021-10-06 01:30:58 +0200DNH(~DNH@2a02:8108:1100:16d8:d1f8:65da:debb:16ba) (Quit: Textual IRC Client: www.textualapp.com)
2021-10-06 01:31:29 +0200theproffesor(~theproffe@2601:282:847f:8010::c471)
2021-10-06 01:31:29 +0200theproffesor(~theproffe@2601:282:847f:8010::c471) (Changing host)
2021-10-06 01:31:29 +0200theproffesor(~theproffe@user/theproffesor)
2021-10-06 01:32:59 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893) (Remote host closed the connection)
2021-10-06 01:33:39 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893)
2021-10-06 01:36:38 +0200theproffesor(~theproffe@user/theproffesor) (Leaving)
2021-10-06 01:40:51 +0200goepsilongo(~chacho@2603-7000-ab00-62ed-e8e0-40c9-c788-8ef8.res6.spectrum.com) (Quit: Konversation terminated!)
2021-10-06 01:41:08 +0200vysn(~vysn@user/vysn) (Ping timeout: 250 seconds)
2021-10-06 01:51:30 +0200srk(~sorki@user/srk) (Ping timeout: 260 seconds)
2021-10-06 01:52:33 +0200srk(~sorki@user/srk)
2021-10-06 01:59:30 +0200lbseale_lbseale
2021-10-06 02:00:25 +0200 <lbseale> I am trying to read an input from stdin using Data.Text.IO, why would using `putStr` not show my prompt, but `putStrLn` show it?
2021-10-06 02:00:35 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection)
2021-10-06 02:00:44 +0200 <lbseale> When I use `putStr`, it only prints after the program is finished
2021-10-06 02:01:40 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-10-06 02:02:18 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Client Quit)
2021-10-06 02:02:21 +0200 <lbseale> And I only have this problem after I compile it with GHC, it does not occur if I run it with `runhaskell`
2021-10-06 02:02:33 +0200 <monochrom> Buffering.
2021-10-06 02:02:35 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-10-06 02:02:54 +0200 <monochrom> Use "hFlush stdout". (import System.IO)
2021-10-06 02:03:49 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893) (Read error: Connection reset by peer)
2021-10-06 02:04:00 +0200 <monochrom> Or look under System.IO for "hSetBuffering".
2021-10-06 02:04:04 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893)
2021-10-06 02:04:12 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-10-06 02:04:59 +0200 <monochrom> In a Unix-and-C course I pose a related puzzle to my students.
2021-10-06 02:05:21 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 02:05:37 +0200 <monochrom> have a printf("hello"), then fork, then printf(" there\n"). Why do you see two hello's, not just one?
2021-10-06 02:08:31 +0200 <lbseale> thank you very much! I used `hSetBuffering` and it did just what I wanted
2021-10-06 02:09:35 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-10-06 02:13:20 +0200jespada(~jespada@2803:9800:9842:7a62:2d4b:7b80:ce15:fc84) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-06 02:15:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-06 02:16:21 +0200jlamothe(~jlamothe@104.158.48.100)
2021-10-06 02:17:50 +0200 <geekosaur> and the reason it works with runhaskell (and ghci) is that those automatically turn off buffering
2021-10-06 02:18:09 +0200 <lbseale> ah thanks geekosaur , I was wondering
2021-10-06 02:21:47 +0200notzmv(~zmv@user/notzmv)
2021-10-06 02:22:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-06 02:23:58 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-10-06 02:26:37 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893) (Remote host closed the connection)
2021-10-06 02:49:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-10-06 02:51:26 +0200 <zzz> quick question: what's the function we use to turn a list into a list of same sized chunks?
2021-10-06 02:51:45 +0200 <geekosaur> @index chunksOf
2021-10-06 02:51:45 +0200 <lambdabot> bzzt
2021-10-06 02:51:48 +0200 <geekosaur> bah
2021-10-06 02:51:51 +0200 <geekosaur> :t chunksOf
2021-10-06 02:51:53 +0200 <lambdabot> Int -> [e] -> [[e]]
2021-10-06 02:52:19 +0200 <geekosaur> in Data.List.Split from the split package. also look there for other kinds of list splitters
2021-10-06 02:52:22 +0200 <zzz> is that from Data.List?
2021-10-06 02:52:26 +0200 <zzz> ah... ok
2021-10-06 02:52:28 +0200 <zzz> Split
2021-10-06 02:52:40 +0200 <zzz> that's what i was forgetting
2021-10-06 02:55:28 +0200pgib(~textual@173.38.117.88) (Ping timeout: 252 seconds)
2021-10-06 03:05:25 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-06 03:10:08 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-10-06 03:10:20 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2021-10-06 03:12:05 +0200xff0x(~xff0x@2001:1a81:52e7:9700:89ea:128b:cbad:e425) (Ping timeout: 246 seconds)
2021-10-06 03:13:24 +0200sleblanc(~sleblanc@user/sleblanc)
2021-10-06 03:14:01 +0200xff0x(~xff0x@2001:1a81:5322:8500:eff4:1133:1236:ed4a)
2021-10-06 03:16:47 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-10-06 03:21:07 +0200kimjetwav(~user@2607:fea8:235f:9730:733c:b68b:7b22:df97)
2021-10-06 03:21:30 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 03:26:09 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-10-06 03:27:14 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 03:27:14 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 03:27:14 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 03:34:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-10-06 03:36:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-10-06 03:38:12 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 03:38:12 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 03:38:12 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 03:38:37 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-10-06 03:38:47 +0200abrantesasf(~abrantesa@187.36.170.211) (Remote host closed the connection)
2021-10-06 03:42:52 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-10-06 03:44:02 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 03:56:22 +0200xiongxin(~quassel@119.123.102.49)
2021-10-06 04:06:28 +0200benin0369323016(~benin@183.82.205.238) (Ping timeout: 252 seconds)
2021-10-06 04:07:32 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-10-06 04:10:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-10-06 04:11:25 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 252 seconds)
2021-10-06 04:11:50 +0200benin0369323016(~benin@183.82.176.241)
2021-10-06 04:12:24 +0200alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-10-06 04:12:27 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-06 04:13:26 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 04:20:52 +0200ahappydeath_(~ahappydea@dsl-74-83-53-157.fuse.net)
2021-10-06 04:25:48 +0200ahappydeath_(~ahappydea@dsl-74-83-53-157.fuse.net) (Ping timeout: 250 seconds)
2021-10-06 04:29:44 +0200sprout(~quassel@2a02:a467:ccd6:1:7da6:2d3:65ff:ac76) (Ping timeout: 268 seconds)
2021-10-06 04:34:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 04:34:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 04:34:32 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 04:38:30 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893)
2021-10-06 04:40:43 +0200yinghua(~yinghua@181.228.40.183) (Quit: Leaving)
2021-10-06 04:42:02 +0200terrorjack(~terrorjac@static.3.200.12.49.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat)
2021-10-06 04:43:17 +0200Null_A(~null_a@2601:645:8700:2290:e8ac:2b75:e714:d893) (Ping timeout: 264 seconds)
2021-10-06 04:47:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-06 04:53:13 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-10-06 04:54:04 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-10-06 04:56:09 +0200td_(~td@muedsl-82-207-238-165.citykom.de) (Ping timeout: 245 seconds)
2021-10-06 04:58:10 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2021-10-06 04:58:10 +0200td_(~td@94.134.91.91)
2021-10-06 04:59:07 +0200sprout(~quassel@2a02:a467:ccd6:1:3914:a7b1:2a0f:e9d8)
2021-10-06 04:59:49 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-10-06 04:59:58 +0200cheater(~Username@user/cheater)
2021-10-06 05:03:35 +0200rkrishnan(~user@2402:e280:215c:2cd:6d16:f9a5:49d8:1fa5)
2021-10-06 05:08:38 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 05:08:38 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 05:08:38 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 05:14:38 +0200jiribenes(~jiribenes@rosa.jiribenes.com) (Remote host closed the connection)
2021-10-06 05:14:54 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-10-06 05:15:08 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 05:15:22 +0200jiribenes(~jiribenes@rosa.jiribenes.com)
2021-10-06 05:15:23 +0200_0x47(sid508683@id-508683.tinside.irccloud.com) (Read error: Connection reset by peer)
2021-10-06 05:15:32 +0200_0x47(sid508683@id-508683.tinside.irccloud.com)
2021-10-06 05:15:52 +0200kristjansson_(sid126207@id-126207.tinside.irccloud.com) (Read error: Connection reset by peer)
2021-10-06 05:15:52 +0200agander_m(sid407952@id-407952.tinside.irccloud.com) (Read error: Connection reset by peer)
2021-10-06 05:15:54 +0200angerman(sid209936@id-209936.ilkley.irccloud.com) (Read error: Connection reset by peer)
2021-10-06 05:16:01 +0200agander_m(sid407952@id-407952.tinside.irccloud.com)
2021-10-06 05:16:03 +0200angerman(sid209936@id-209936.ilkley.irccloud.com)
2021-10-06 05:16:09 +0200kristjansson_(sid126207@id-126207.tinside.irccloud.com)
2021-10-06 05:16:14 +0200codedmart(codedmart@2600:3c01::f03c:92ff:fefe:8511) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-10-06 05:16:15 +0200astra`(sid289983@user/amish) (Read error: Connection reset by peer)
2021-10-06 05:16:17 +0200ProofTechnique(sid79547@id-79547.ilkley.irccloud.com) (Read error: Connection reset by peer)
2021-10-06 05:16:19 +0200nrr(sid20938@id-20938.lymington.irccloud.com) (Read error: Connection reset by peer)
2021-10-06 05:16:26 +0200ProofTechnique(sid79547@id-79547.ilkley.irccloud.com)
2021-10-06 05:16:27 +0200astra`(sid289983@user/amish)
2021-10-06 05:16:28 +0200nrr(sid20938@id-20938.lymington.irccloud.com)
2021-10-06 05:16:30 +0200codedmart(codedmart@2600:3c01::f03c:92ff:fefe:8511)
2021-10-06 05:18:08 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 265 seconds)
2021-10-06 05:18:08 +0200YoungChiefBTW(~youngchie@user/youngchiefbtw) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200Topik[m](~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200lwe[m](~dendrumat@2001:470:69fc:105::2f9b) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200ericson23141(~ericson23@2001:470:69fc:105::70c) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200rosariopulella[m(~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 265 seconds)
2021-10-06 05:18:37 +0200MatrixTravelerb4(~voyagert2@2001:470:69fc:105::22) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200maerwald[m](~maerwaldm@user/maerwald) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200dualinverter[m](~dualinver@2001:470:69fc:105::16a7) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200Drew[m](~drewefenw@2001:470:69fc:105::c8c4) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200psydroid(~psydroid@user/psydroid) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200lieven(~mal@ns2.wyrd.be) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200greenbourne277(~greenbour@2001:4b98:dc2:45:216:3eff:fe8a:bbf0) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200mstruebing(~maex@2001:41d0:8:93c7::1) (Ping timeout: 265 seconds)
2021-10-06 05:18:38 +0200bwe(~bwe@2a01:4f8:1c1c:4878::2) (Ping timeout: 265 seconds)
2021-10-06 05:19:03 +0200bwe(~bwe@2a01:4f8:1c1c:4878::2)
2021-10-06 05:19:06 +0200carmysilna(~brightly-@2001:470:69fc:105::2190) (Ping timeout: 265 seconds)
2021-10-06 05:19:06 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 265 seconds)
2021-10-06 05:19:07 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd) (Ping timeout: 265 seconds)
2021-10-06 05:19:07 +0200hsiktas[m](~hsiktasma@2001:470:69fc:105::30d4) (Ping timeout: 265 seconds)
2021-10-06 05:19:07 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Ping timeout: 265 seconds)
2021-10-06 05:19:07 +0200jophish(~jophish@2001:470:69fc:105::670) (Ping timeout: 265 seconds)
2021-10-06 05:19:07 +0200lieven(~mal@ns2.wyrd.be)
2021-10-06 05:19:11 +0200mstruebing(~maex@2001:41d0:8:93c7::1)
2021-10-06 05:20:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-10-06 05:20:26 +0200alx741(~alx741@186.178.109.65) (Quit: alx741)
2021-10-06 05:21:38 +0200YoungChiefBTW(~youngchie@2001:470:69fc:105::214c)
2021-10-06 05:21:59 +0200hsiktas[m](~hsiktasma@2001:470:69fc:105::30d4)
2021-10-06 05:22:09 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-10-06 05:22:30 +0200rosariopulella[m(~rosariopu@2001:470:69fc:105::a57)
2021-10-06 05:22:32 +0200lwe[m](~dendrumat@2001:470:69fc:105::2f9b)
2021-10-06 05:23:15 +0200psydroid(~psydroid@user/psydroid)
2021-10-06 05:24:18 +0200MatrixTravelerb4(~voyagert2@2001:470:69fc:105::22)
2021-10-06 05:25:40 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-10-06 05:25:57 +0200mbuf(~Shakthi@223.178.119.120)
2021-10-06 05:27:46 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
2021-10-06 05:30:47 +0200greenbourne277(~greenbour@2001:4b98:dc2:45:216:3eff:fe8a:bbf0)
2021-10-06 05:32:13 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2021-10-06 05:32:39 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2021-10-06 05:33:03 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2021-10-06 05:33:08 +0200Drew[m](~drewefenw@2001:470:69fc:105::c8c4)
2021-10-06 05:34:26 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2021-10-06 05:35:41 +0200Topik[m](~topikmatr@2001:470:69fc:105::a082)
2021-10-06 05:36:15 +0200ericson23141(~ericson23@2001:470:69fc:105::70c)
2021-10-06 05:36:30 +0200dualinverter[m](~dualinver@2001:470:69fc:105::16a7)
2021-10-06 05:38:07 +0200carmysilna(~brightly-@2001:470:69fc:105::2190)
2021-10-06 05:38:10 +0200hjulle[m](~hjullemat@2001:470:69fc:105::1dd)
2021-10-06 05:38:58 +0200jophish(~jophish@2001:470:69fc:105::670)
2021-10-06 05:39:29 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-10-06 05:40:19 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2021-10-06 05:41:20 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2021-10-06 05:46:50 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 250 seconds)
2021-10-06 05:48:13 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
2021-10-06 05:52:09 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-10-06 05:52:18 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-10-06 05:52:34 +0200YoungChiefBTW(~youngchie@2001:470:69fc:105::214c) (Changing host)
2021-10-06 05:52:34 +0200YoungChiefBTW(~youngchie@user/youngchiefbtw)
2021-10-06 05:54:33 +0200Psybur(~Psybur@mobile-166-170-32-197.mycingular.net) (Remote host closed the connection)
2021-10-06 05:58:14 +0200xiongxin(~quassel@119.123.102.49) (Ping timeout: 245 seconds)
2021-10-06 05:59:13 +0200geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-10-06 06:09:32 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 246 seconds)
2021-10-06 06:09:34 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 06:12:36 +0200emf(~emf@2620:10d:c090:400::5:b405)
2021-10-06 06:17:39 +0200shriekingnoise(~shrieking@186.137.144.80) (Ping timeout: 268 seconds)
2021-10-06 06:23:06 +0200emf(~emf@2620:10d:c090:400::5:b405) (Ping timeout: 260 seconds)
2021-10-06 06:26:39 +0200ByronJohnson(~bairyn@mail.digitalkingdom.org) (Remote host closed the connection)
2021-10-06 06:29:54 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-10-06 06:31:40 +0200dajoer(~david@user/gvx)
2021-10-06 06:42:28 +0200lavaman(~lavaman@98.38.249.169)
2021-10-06 06:58:30 +0200ByronJohnson(~bairyn@mail.digitalkingdom.org)
2021-10-06 07:04:25 +0200Guest41(~Guest41@l37-195-64-169.novotelecom.ru)
2021-10-06 07:09:20 +0200Guest41vins
2021-10-06 07:12:31 +0200turlando(~turlando@user/turlando) (Read error: Connection reset by peer)
2021-10-06 07:13:47 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-10-06 07:16:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-06 07:17:05 +0200turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-10-06 07:17:05 +0200turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2021-10-06 07:17:05 +0200turlando(~turlando@user/turlando)
2021-10-06 07:22:59 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-06 07:24:41 +0200Heisen(~Heisen@77.240.67.20)
2021-10-06 07:26:11 +0200chomwitt(~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
2021-10-06 07:28:51 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-06 07:29:55 +0200vins(~Guest41@l37-195-64-169.novotelecom.ru) (Quit: Client closed)
2021-10-06 07:30:09 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-10-06 07:31:35 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-10-06 07:33:18 +0200phma(~phma@host-67-44-208-158.hnremote.net) (Read error: Connection reset by peer)
2021-10-06 07:33:55 +0200Guest20(~Guest20@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds)
2021-10-06 07:34:26 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-10-06 07:34:28 +0200phma(~phma@host-67-44-208-228.hnremote.net)
2021-10-06 07:39:50 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-10-06 07:42:32 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 250 seconds)
2021-10-06 07:47:00 +0200Heisen(~Heisen@77.240.67.20) (Quit: Client closed)
2021-10-06 07:49:18 +0200fef(~thedawn@user/thedawn)
2021-10-06 07:50:14 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 265 seconds)
2021-10-06 07:50:29 +0200ubert(~Thunderbi@77.119.164.97.wireless.dyn.drei.com)
2021-10-06 07:50:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-10-06 07:57:37 +0200mei(~mei@user/mei)
2021-10-06 08:02:29 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2021-10-06 08:03:05 +0200xiongxin(~quassel@119.123.102.49)
2021-10-06 08:08:08 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-10-06 08:10:41 +0200Guest82(~Guest82@l37-195-64-169.novotelecom.ru)
2021-10-06 08:17:08 +0200vinstre(~vinstre@l37-195-64-169.novotelecom.ru)
2021-10-06 08:21:46 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-10-06 08:23:08 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-10-06 08:25:09 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:285c:5722:2a44:fb76)
2021-10-06 08:28:14 +0200 <vinstre> !cloakme
2021-10-06 08:29:17 +0200sshinegives vinstre a cloak and wizard hat
2021-10-06 08:29:40 +0200 <sshine> you've been initiated!
2021-10-06 08:30:40 +0200 <tomsmeding> monochrom: okay yeah, that point of how untyped lambda calculus gives you power by essentially allowing you to unify a and a->a is kind of compelling
2021-10-06 08:31:29 +0200lavaman(~lavaman@98.38.249.169)
2021-10-06 08:32:32 +0200Axman6runs over and wraps vinstre in his wizard cloak - "You are safe now, they won't find you here"
2021-10-06 08:32:45 +0200 <tomsmeding> still, that's within a functional world. If you go claiming that even in the non-functional world, you need self-reference to do anything (which I guess is true for the right definition of self-reference, with the labels discussed earlier), you don't even need this functional argument anymore: your FPL interpreter runs on a very imperative processor :p
2021-10-06 08:33:13 +0200vysn(~vysn@user/vysn)
2021-10-06 08:35:21 +0200vinstre(~vinstre@l37-195-64-169.novotelecom.ru) ()
2021-10-06 08:35:37 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz)
2021-10-06 08:35:56 +0200jakalx(~jakalx@base.jakalx.net)
2021-10-06 08:36:18 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-10-06 08:41:46 +0200libertyprime(~libertypr@118.149.75.34)
2021-10-06 08:43:08 +0200 <libertyprime> Hey guys. need some help figuring out why I am getting "Could not find module ‘Data.Aeson’". Here is my code: http://github.com/semiosis/ilambda/blob/master/hs-stack/app/Main.hs
2021-10-06 08:43:23 +0200 <libertyprime> I have tried running hlint through stack, and that checks out fine with no errors.
2021-10-06 08:43:37 +0200yielduck(~yielduck@176.120.238.10) (Ping timeout: 256 seconds)
2021-10-06 08:44:02 +0200xiongxin(~quassel@119.123.102.49) (Ping timeout: 265 seconds)
2021-10-06 08:44:08 +0200 <libertyprime> However I am using hie which is providing the error through my LSP client
2021-10-06 08:44:44 +0200 <libertyprime> I have tried creating both cabal and stack projects, the stack project which defers to cabal anyway for the adding of the dependency
2021-10-06 08:44:58 +0200 <jneira[m]> i hope it will be haskell-language-server(hls) and not hie :-)
2021-10-06 08:45:31 +0200 <libertyprime> Oh, sorry, you're right. I'm using hls
2021-10-06 08:45:52 +0200 <jneira[m]> hie was the predecessor of hls, still is mentioning in some docs and config files though
2021-10-06 08:47:11 +0200chomwitt(~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds)
2021-10-06 08:47:12 +0200 <jneira[m]> ok, i think maybe you are hitting https://github.com/haskell/haskell-language-server/issues/366
2021-10-06 08:47:48 +0200 <jneira[m]> so you need to succesfully build the package with `stack clean && stack build`, before opening it in the editor
2021-10-06 08:48:26 +0200Guest82(~Guest82@l37-195-64-169.novotelecom.ru) (Quit: Client closed)
2021-10-06 08:48:53 +0200 <jneira[m]> if the lib was not built or contain compile errors when opening the editor, tests and executables cant be loaded
2021-10-06 08:49:10 +0200 <jneira[m]> 😥
2021-10-06 08:50:43 +0200 <jneira[m]> it should work for cabal, but to make hls picks cabal to load the project you have to delete/rename stack.yaml or create a explicit `hie.yaml` config file telling hls using cabal
2021-10-06 08:53:26 +0200 <libertyprime> jneira[m]: thank you very much for this info. extremely helpful. i will try again for cabal exclusively. i have a bit of my own legacy scripts. wondering now if i can avoid all of this by using nix
2021-10-06 08:54:04 +0200 <jneira[m]> well you will avoid some issues and will have some new ones :-D
2021-10-06 08:55:07 +0200 <jneira[m]> but that is the fate of programming i suppose, at least the new ones could be more interesting :-P
2021-10-06 08:56:28 +0200 <libertyprime> ah hell. yeah. upon beginning working on my project as you can see with haskell, and an otherwise sexy emacs setup, i have realised getting over this hill is sooooo worth it. i had a glimpse at basically using this hacky as project with my shell interop working inside haskell. ill give my setup some more work tonight. just want hls to be g.
2021-10-06 08:58:32 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-06 09:00:35 +0200 <libertyprime> jneira[m]: how important is the linting to the workings of hls? if i ignore the issue will hls function normally areas? or is the linter coupled with other things such as code actions?
2021-10-06 09:00:39 +0200 <libertyprime> https://asciinema.org/a/v6HGLeIDtQju4qQIBsurRRnsh
2021-10-06 09:01:31 +0200 <jneira[m]> it is totally optional and you can disable it via configuration
2021-10-06 09:02:35 +0200 <libertyprime> oh, perfect. :) i have something that works well enough then
2021-10-06 09:02:39 +0200 <jneira[m]> https://haskell-language-server.readthedocs.io/en/latest/configuration.html#generic-plugin-configu…
2021-10-06 09:02:42 +0200 <libertyprime> thanks. not going to test fate
2021-10-06 09:03:04 +0200neurocyte013288(~neurocyte@46.243.81.207)
2021-10-06 09:03:04 +0200neurocyte013288(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 09:03:04 +0200neurocyte013288(~neurocyte@user/neurocyte)
2021-10-06 09:03:13 +0200 <libertyprime> do you want to see some haskell pick up lines?
2021-10-06 09:03:15 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 09:03:40 +0200 <jneira[m]> so `haskell.plugin.hlint.globalOn: false`should make it be silenced
2021-10-06 09:04:25 +0200 <jneira[m]> not sure how to set it in emacs, lsp-haskell plugin docs might help you
2021-10-06 09:07:22 +0200michalz(~michalz@185.246.204.94)
2021-10-06 09:13:41 +0200azeem(~azeem@2a00:801:23d:c203:2f8f:c97c:ce0f:f54f) (Read error: Connection reset by peer)
2021-10-06 09:13:47 +0200kuribas(~user@ptr-25vy0i833ltdcqizn0k.18120a2.ip6.access.telenet.be)
2021-10-06 09:14:06 +0200azeem(~azeem@2a00:801:23d:c203:2f8f:c97c:ce0f:f54f)
2021-10-06 09:17:08 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-10-06 09:19:04 +0200arahael(~arahael@118.211.178.62) (Quit: WeeChat 2.7.1)
2021-10-06 09:20:05 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-10-06 09:21:14 +0200chomwitt(~chomwitt@94.66.61.137)
2021-10-06 09:22:32 +0200tremon(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2021-10-06 09:22:39 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-10-06 09:22:44 +0200azeem(~azeem@2a00:801:23d:c203:2f8f:c97c:ce0f:f54f) (Read error: Connection reset by peer)
2021-10-06 09:23:27 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-10-06 09:24:03 +0200azeem(~azeem@emp-183-4.eduroam.uu.se)
2021-10-06 09:30:51 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-06 09:37:32 +0200ubert(~Thunderbi@77.119.164.97.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-10-06 09:37:32 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 09:39:51 +0200ububert
2021-10-06 09:42:27 +0200dextaa(~DV@user/dextaa) (Ping timeout: 240 seconds)
2021-10-06 09:47:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-06 09:49:37 +0200chele(~chele@user/chele)
2021-10-06 09:52:36 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-10-06 09:55:34 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-10-06 09:55:35 +0200Heisen(~Heisen@77.240.67.20)
2021-10-06 09:56:40 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-10-06 09:58:16 +0200neurocyte013288(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-10-06 09:59:04 +0200neurocyte013288(~neurocyte@46.243.81.207)
2021-10-06 09:59:05 +0200neurocyte013288(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 09:59:05 +0200neurocyte013288(~neurocyte@user/neurocyte)
2021-10-06 10:01:32 +0200mc47(~mc47@xmonad/TheMC47)
2021-10-06 10:02:08 +0200Guest20(~Guest20@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-10-06 10:04:38 +0200 <Guest20> How would I take an input list in HSpec and compare it to an output list while also describing what each comparison means (through a list of descriptions) ?
2021-10-06 10:05:14 +0200neurocyte013288(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-10-06 10:05:15 +0200 <Guest20> I guess I could just compare the lists but that would waste a lot of the information
2021-10-06 10:05:57 +0200hendursa1(~weechat@user/hendursaga)
2021-10-06 10:06:01 +0200neurocyte013288(~neurocyte@46.243.81.207)
2021-10-06 10:06:01 +0200neurocyte013288(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 10:06:01 +0200neurocyte013288(~neurocyte@user/neurocyte)
2021-10-06 10:08:02 +0200neurocyte013288(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-10-06 10:08:39 +0200neurocyte013288(~neurocyte@46.243.81.207)
2021-10-06 10:08:39 +0200neurocyte013288(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 10:08:39 +0200neurocyte013288(~neurocyte@user/neurocyte)
2021-10-06 10:09:06 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-06 10:10:48 +0200neurocyte0132889(~neurocyte@46.243.81.207)
2021-10-06 10:10:49 +0200neurocyte0132889(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 10:10:49 +0200neurocyte0132889(~neurocyte@user/neurocyte)
2021-10-06 10:12:22 +0200neurocyte0132889(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-10-06 10:13:18 +0200neurocyte013288(~neurocyte@user/neurocyte) (Ping timeout: 265 seconds)
2021-10-06 10:13:38 +0200notzmv(~zmv@user/notzmv)
2021-10-06 10:14:14 +0200cfricke(~cfricke@user/cfricke)
2021-10-06 10:15:10 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-10-06 10:18:46 +0200wonko(~wjc@62.115.229.50)
2021-10-06 10:19:19 +0200neurocyte0132889(~neurocyte@46.243.81.207)
2021-10-06 10:19:19 +0200neurocyte0132889(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 10:19:19 +0200neurocyte0132889(~neurocyte@user/neurocyte)
2021-10-06 10:19:37 +0200xiongxin(~quassel@119.123.102.49)
2021-10-06 10:20:59 +0200acidjnk_new(~acidjnk@p200300d0c703cb14e484f2ea659578d3.dip0.t-ipconnect.de)
2021-10-06 10:23:03 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-10-06 10:23:20 +0200Heisen(~Heisen@77.240.67.20) (Quit: Client closed)
2021-10-06 10:31:27 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-10-06 10:34:41 +0200phma(~phma@host-67-44-208-228.hnremote.net) (Read error: Connection reset by peer)
2021-10-06 10:35:34 +0200phma(~phma@host-67-44-209-33.hnremote.net)
2021-10-06 10:52:29 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-10-06 10:59:47 +0200Guest55(~Guest55@l37-195-64-169.novotelecom.ru)
2021-10-06 11:00:07 +0200vinstre(~vinstre@l37-195-64-169.novotelecom.ru)
2021-10-06 11:00:21 +0200ubert1(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 11:02:31 +0200 <Guest20> I _almost_ figured it out. now I just need a way to run a [IO ()]
2021-10-06 11:02:36 +0200ubert(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-10-06 11:02:37 +0200ubert1ubert
2021-10-06 11:02:49 +0200 <Guest20> this sounds like I'm writing garbage haskell (and I probably am)
2021-10-06 11:03:49 +0200 <merijn> Guest20: Sounds like you want sequence/sequence_
2021-10-06 11:04:01 +0200 <merijn> Guest20: Or, more likely: mapM_
2021-10-06 11:04:04 +0200 <merijn> :t sequence
2021-10-06 11:04:05 +0200 <lambdabot> (Traversable t, Monad m) => t (m a) -> m (t a)
2021-10-06 11:04:06 +0200 <merijn> :t sequence_
2021-10-06 11:04:07 +0200 <lambdabot> (Foldable t, Monad m) => t (m a) -> m ()
2021-10-06 11:04:11 +0200 <merijn> :t mapM_
2021-10-06 11:04:12 +0200 <lambdabot> (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
2021-10-06 11:04:31 +0200 <kuribas> merijn: traverse_
2021-10-06 11:04:54 +0200 <Guest20> :t traverse_
2021-10-06 11:04:55 +0200 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
2021-10-06 11:05:22 +0200 <Guest20> ok so sequence_ it is
2021-10-06 11:05:51 +0200 <Guest20> what doc do I need to read to be aware of this? x)
2021-10-06 11:06:25 +0200 <kuribas> Guest20: base :)
2021-10-06 11:06:46 +0200 <kuribas> https://hackage.haskell.org/package/base
2021-10-06 11:07:18 +0200 <kuribas> Guest20: if it's monadic, it'll be probably in Control.Monad or Control.Applicative.
2021-10-06 11:07:50 +0200 <kuribas> well traverse_ is in Data.Foldable.
2021-10-06 11:08:02 +0200 <kuribas> maybe just ask here :)
2021-10-06 11:08:05 +0200 <merijn> Guest20: Foldable/Traversable are important enough that you usually encounter them fairly quickly
2021-10-06 11:08:25 +0200 <Guest20> kuribas: thank you that means a lot :)
2021-10-06 11:08:35 +0200 <merijn> Guest20: In general, skimming the module list of "base" and skimming some random modules in it every few weeks is a good way to discover a lot of neat stuff :)
2021-10-06 11:08:35 +0200vinstre(~vinstre@l37-195-64-169.novotelecom.ru) ()
2021-10-06 11:09:05 +0200 <kuribas> When I started learning haskell I went over every function in the prelude.
2021-10-06 11:09:30 +0200vinstre(~vinstre@l37-195-64-169.novotelecom.ru)
2021-10-06 11:09:31 +0200qwedfg_(~qwedfg@user/qwedfg) (Remote host closed the connection)
2021-10-06 11:10:54 +0200qwedfg(~qwedfg@user/qwedfg)
2021-10-06 11:12:14 +0200 <kuribas> but you don't need to memorise base, just skimming as merijn said, so you know what is there, and can come back later to look it up.
2021-10-06 11:12:41 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068)
2021-10-06 11:13:07 +0200vinstre(~vinstre@l37-195-64-169.novotelecom.ru) ()
2021-10-06 11:14:14 +0200vinstre(~vinstre@user/vinstre)
2021-10-06 11:14:23 +0200arahael(~arahael@118.211.178.62)
2021-10-06 11:14:27 +0200 <arahael> join #haskell-offtopic
2021-10-06 11:14:42 +0200Guest55(~Guest55@l37-195-64-169.novotelecom.ru) (Quit: Client closed)
2021-10-06 11:14:47 +0200 <arahael> Uh... Yes.... I'm advertising a channel, sorry guys!
2021-10-06 11:15:01 +0200arahaeltypes it correctly, this time.
2021-10-06 11:15:02 +0200 <kuribas> free monads!
2021-10-06 11:16:58 +0200 <Guest20> TIL I can't do IO inside an HSpec describe block
2021-10-06 11:17:27 +0200 <Guest20> the docs say I just use before_
2021-10-06 11:18:16 +0200 <Guest20> but I'm not just trying to flush a database somewhere, I want to read a file and test with it
2021-10-06 11:20:54 +0200 <dminuoso> Of course you can
2021-10-06 11:21:43 +0200 <dminuoso> describe :: HasCallStack => String -> SpecWith a -> SpecWith a
2021-10-06 11:21:46 +0200 <dminuoso> type SpecWith a = SpecM a ()
2021-10-06 11:21:55 +0200 <dminuoso> runIO :: IO r -> SpecM a r
2021-10-06 11:23:09 +0200 <Guest20> but ghc complains that it couldn't match type IO with SpecWith o_o
2021-10-06 11:23:29 +0200 <Guest20> https://paste.tomsmeding.com/YgN1ODrh
2021-10-06 11:24:30 +0200 <Guest20> I only get it on getDirectoryContents
2021-10-06 11:24:44 +0200 <dminuoso> Guest20: Use `runIO`
2021-10-06 11:26:06 +0200 <merijn> I find hspec's types entirely undecipherable
2021-10-06 11:26:19 +0200 <dminuoso> Well they are clearly not undecipherable.
2021-10-06 11:26:24 +0200 <dminuoso> You probably meant annoying to decipher.
2021-10-06 11:26:45 +0200 <dminuoso> Normally I wouldn't care, but I expect more language precision from you, merijn.
2021-10-06 11:27:54 +0200 <merijn> They are undecipherable to me, because by the 2nd indirection of clicking through things I run out of motivation/care and give up
2021-10-06 11:30:06 +0200 <arahael> merijn: We need more people like you here. :)
2021-10-06 11:32:49 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 11:33:41 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 265 seconds)
2021-10-06 11:34:00 +0200cfricke(~cfricke@user/cfricke)
2021-10-06 11:34:38 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
2021-10-06 11:34:56 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 11:35:04 +0200 <kuribas> haskellers have a tendency to overcomplicate things.
2021-10-06 11:35:17 +0200 <kuribas> where it's the opposite in clojure, they oversimplify things.
2021-10-06 11:35:44 +0200 <arahael> One can't overly-simplify.
2021-10-06 11:35:46 +0200oxide(~lambda@user/oxide)
2021-10-06 11:35:51 +0200cfricke(~cfricke@user/cfricke) (Client Quit)
2021-10-06 11:36:04 +0200cfricke(~cfricke@user/cfricke)
2021-10-06 11:36:47 +0200 <kuribas> yes, one can. By pushing complexity around.
2021-10-06 11:36:55 +0200sm2n_sm2n
2021-10-06 11:38:26 +0200 <kuribas> then you get a seemingly very simple solution, only you have to deal later with the consequences.
2021-10-06 11:38:32 +0200 <merijn> I mean it seems weird to demand "more precise" natural language about subjective statements
2021-10-06 11:39:04 +0200 <kuribas> Like in clojure requiring a huge testsuite if you want to get some degree of robustness.
2021-10-06 11:39:37 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-10-06 11:40:46 +0200 <kuribas> or like using nil everywhere, look we got rid of those pesky Maybe's!
2021-10-06 11:44:49 +0200 <dminuoso> I think a major issue is that programmers in general have a misconception about what abstraction is, and when to use it.
2021-10-06 11:44:56 +0200 <dminuoso> To quote Dijkstra "The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise"
2021-10-06 11:45:07 +0200lavaman(~lavaman@98.38.249.169)
2021-10-06 11:45:32 +0200 <dminuoso> More often than not, programmers make vague things and label it "an abstraction" for an increase in perceived professionality
2021-10-06 11:45:44 +0200benin03693230163(~benin@183.82.176.241)
2021-10-06 11:46:25 +0200 <kuribas> OO design patterns...
2021-10-06 11:47:24 +0200benin0369323016(~benin@183.82.176.241) (Ping timeout: 245 seconds)
2021-10-06 11:47:25 +0200benin03693230163benin0369323016
2021-10-06 11:47:41 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-10-06 11:48:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-10-06 11:49:36 +0200libertyprime(~libertypr@118.149.75.34) (Quit: leaving)
2021-10-06 11:49:58 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-10-06 11:50:56 +0200chomwitt(~chomwitt@94.66.61.137) (Ping timeout: 265 seconds)
2021-10-06 11:53:07 +0200robosexual(~spaceoyst@88.85.216.62)
2021-10-06 11:54:48 +0200koishi_(~user@2001:da8:d800:611:95e1:c9a3:1a48:f791)
2021-10-06 11:55:12 +0200 <koishi_> Is it possible to enable 'RebindableSyntax' locally?
2021-10-06 11:57:29 +0200 <koishi_> Hmm, I have to move some functions into a separate module anyways due to 'import'...
2021-10-06 11:58:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-10-06 11:58:31 +0200koishi_koishi`
2021-10-06 11:59:00 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-10-06 11:59:18 +0200koishi`(~user@2001:da8:d800:611:95e1:c9a3:1a48:f791) ()
2021-10-06 12:00:41 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-06 12:00:50 +0200 <Guest20> Is it normal for https://hackage.haskell.org/package/megaparsec-9.2.0/docs/Text-Megaparsec-Char-Lexer.html#v:charLi…
2021-10-06 12:00:53 +0200ormaaj(~ormaaj@user/ormaaj)
2021-10-06 12:01:02 +0200 <Guest20> to error out on parsing "\/" ?
2021-10-06 12:01:12 +0200 <Guest20> lexical error in string/character literal at character '/'
2021-10-06 12:01:46 +0200 <Guest20> there are no issues with other escape chars like \n, \t ...
2021-10-06 12:02:21 +0200 <Guest20> is there something specific about haskell conventions that makes this possible?
2021-10-06 12:05:10 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-10-06 12:13:17 +0200xff0x(~xff0x@2001:1a81:5322:8500:eff4:1133:1236:ed4a) (Ping timeout: 264 seconds)
2021-10-06 12:13:51 +0200azeem(~azeem@emp-183-4.eduroam.uu.se) (Ping timeout: 245 seconds)
2021-10-06 12:16:37 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-10-06 12:17:45 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 12:19:16 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 12:19:56 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 12:20:57 +0200 <dminuoso> Guest20: I dont quite understand the problem.
2021-10-06 12:21:04 +0200 <dminuoso> Can you provide the input and the code you're using?
2021-10-06 12:21:40 +0200 <Guest20> the code is simply `parseTest charLiteral "\/"`
2021-10-06 12:21:46 +0200 <Guest20> on ghci
2021-10-06 12:21:59 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
2021-10-06 12:22:39 +0200azeem(~azeem@2a00:801:238:7b15:4e2a:7c39:18f9:6354)
2021-10-06 12:23:02 +0200azeem(~azeem@2a00:801:238:7b15:4e2a:7c39:18f9:6354) (Read error: Connection reset by peer)
2021-10-06 12:23:38 +0200azeem(~azeem@emp-183-4.eduroam.uu.se)
2021-10-06 12:23:47 +0200 <Guest20> dminuoso: trying `parseTest charLiteral "\n" doesn't throw a parse error
2021-10-06 12:23:59 +0200 <Guest20> (this is Megaparsec)
2021-10-06 12:25:13 +0200 <dminuoso> % import Data.Char
2021-10-06 12:25:13 +0200 <yahb> dminuoso:
2021-10-06 12:25:30 +0200 <dminuoso> % readLitChar "\/"
2021-10-06 12:25:30 +0200 <yahb> dminuoso: ; <interactive>:6:15: error: lexical error in string/character literal at character '/'
2021-10-06 12:25:51 +0200 <dminuoso> Guest20: So yeah, megaparsec ends up using readLitChar as per note:
2021-10-06 12:26:09 +0200 <dminuoso> "The literal character is parsed according to the grammar rules defined in the Haskell report."
2021-10-06 12:26:52 +0200 <dminuoso> What this essentially means is:
2021-10-06 12:26:58 +0200 <dminuoso> "\/" is not a valid haskell string.
2021-10-06 12:27:34 +0200 <dminuoso> Because \/ is not considered a valid character according to the grammar rules defined in the Haskell report.
2021-10-06 12:27:48 +0200 <dminuoso> More to the point:
2021-10-06 12:27:58 +0200 <dminuoso> % '\/' -- is not a valid haskell character
2021-10-06 12:27:59 +0200 <yahb> dminuoso: ; <interactive>:9:3: error: lexical error in string/character literal at character '/'
2021-10-06 12:28:03 +0200 <dminuoso> Guest20: Does this make sense?
2021-10-06 12:28:37 +0200olibiera(~olibiera@194.117.40.220)
2021-10-06 12:28:40 +0200 <Guest20> is makes perfect sense but the implications scare me
2021-10-06 12:28:53 +0200 <Guest20> how would replace readLitCHar
2021-10-06 12:29:08 +0200 <Guest20> s/would/would I
2021-10-06 12:29:35 +0200 <dminuoso> Well you have to define what this would even mean to you.
2021-10-06 12:29:47 +0200 <dminuoso> But really, you can simply do this yourself.
2021-10-06 12:29:49 +0200 <dminuoso> Use lookahead
2021-10-06 12:30:13 +0200 <dminuoso> *lookAhead
2021-10-06 12:30:22 +0200 <Guest20> Alright I have some reading to do
2021-10-06 12:30:42 +0200 <olibiera> is there any function that takes a list and divides it? for example [1,2,3,4,5,6] turns into ([1,2,3],[4,5,6])
2021-10-06 12:31:23 +0200 <dminuoso> olibiera: You mean something like https://hackage.haskell.org/package/split-0.2.3.4/docs/Data-List-Split.html#v:chunksOf ?
2021-10-06 12:31:37 +0200 <dminuoso> You can find variations of it on hackage, or you can just roll it yourself.
2021-10-06 12:31:44 +0200 <dminuoso> It's a relatively straight forward 4-5 liner
2021-10-06 12:32:05 +0200cfricke(~cfricke@user/cfricke)
2021-10-06 12:32:54 +0200 <olibiera> not really i needed it in tuple
2021-10-06 12:33:11 +0200Guest20(~Guest20@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-10-06 12:34:28 +0200chomwitt(~chomwitt@94.66.61.137)
2021-10-06 12:35:56 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 245 seconds)
2021-10-06 12:38:32 +0200rosariopulella[mRosuavio[m]
2021-10-06 12:38:49 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-10-06 12:39:46 +0200edroedr
2021-10-06 12:53:24 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-06 12:54:12 +0200xff0x(~xff0x@2001:1a81:5322:8500:eff4:1133:1236:ed4a)
2021-10-06 12:55:19 +0200darkstardevx(~darkstard@c-24-21-53-33.hsd1.or.comcast.net) (Ping timeout: 245 seconds)
2021-10-06 12:55:33 +0200 <kuribas> olibiera: span?
2021-10-06 12:55:35 +0200 <kuribas> or splitAt?
2021-10-06 12:55:37 +0200 <kuribas> :t span
2021-10-06 12:55:38 +0200 <lambdabot> (a -> Bool) -> [a] -> ([a], [a])
2021-10-06 12:55:41 +0200 <kuribas> :t splitAt
2021-10-06 12:55:42 +0200 <lambdabot> Int -> [a] -> ([a], [a])
2021-10-06 12:55:49 +0200darkstardevx(~darkstard@c-24-21-53-33.hsd1.or.comcast.net)
2021-10-06 12:57:43 +0200 <kuribas> > splitAt 3 [1..6]
2021-10-06 12:57:45 +0200 <lambdabot> ([1,2,3],[4,5,6])
2021-10-06 12:57:54 +0200 <kuribas> > span (< 4) [1..6]
2021-10-06 12:57:56 +0200 <lambdabot> ([1,2,3],[4,5,6])
2021-10-06 12:58:05 +0200 <olibiera> ty!
2021-10-06 12:59:09 +0200olibiera(~olibiera@194.117.40.220) (Quit: Client closed)
2021-10-06 12:59:34 +0200azeem(~azeem@emp-183-4.eduroam.uu.se) (Ping timeout: 265 seconds)
2021-10-06 12:59:56 +0200azeem(~azeem@2a00:801:238:7b15:4e2a:7c39:18f9:6354)
2021-10-06 13:00:52 +0200alx741(~alx741@186.178.109.65)
2021-10-06 13:02:27 +0200azeem(~azeem@2a00:801:238:7b15:4e2a:7c39:18f9:6354) (Read error: Connection reset by peer)
2021-10-06 13:02:44 +0200azeem(~azeem@emp-183-4.eduroam.uu.se)
2021-10-06 13:04:43 +0200azeem(~azeem@emp-183-4.eduroam.uu.se) (Read error: Connection reset by peer)
2021-10-06 13:05:05 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-06 13:05:13 +0200azeem(~azeem@emp-183-4.eduroam.uu.se)
2021-10-06 13:12:16 +0200alzgh(~alzgh@user/alzgh)
2021-10-06 13:12:18 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 13:14:42 +0200acidjnk_new(~acidjnk@p200300d0c703cb14e484f2ea659578d3.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-10-06 13:18:36 +0200hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-10-06 13:18:50 +0200hiruji(~hiruji@user/hiruji)
2021-10-06 13:20:00 +0200int-e(~noone@int-e.eu) (Remote host closed the connection)
2021-10-06 13:20:43 +0200int-e(~noone@int-e.eu)
2021-10-06 13:22:18 +0200vinstre(~vinstre@user/vinstre) (Remote host closed the connection)
2021-10-06 13:22:50 +0200lambdabot(~lambdabot@haskell/bot/lambdabot) (Quit: ...)
2021-10-06 13:23:23 +0200lambdabot(~lambdabot@silicon.int-e.eu)
2021-10-06 13:23:23 +0200lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-10-06 13:23:23 +0200lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-10-06 13:26:38 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi)
2021-10-06 13:27:44 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2021-10-06 13:27:59 +0200ftzm[m](~ftzmmatri@2001:470:69fc:105::1:dfc)
2021-10-06 13:33:39 +0200mestre(~mestre@191.177.175.57) (Quit: Lost terminal)
2021-10-06 13:34:46 +0200Amras(~Amras@user/Amras)
2021-10-06 13:36:14 +0200CiaoSen(~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-10-06 13:36:42 +0200aidy(~aidy@2001:470:69fc:105::c7b4) (Quit: Reconnecting)
2021-10-06 13:36:42 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-10-06 13:36:56 +0200aidy(~aidy@2001:470:69fc:105::c7b4)
2021-10-06 13:39:53 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-06 13:41:46 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
2021-10-06 13:42:16 +0200cfricke(~cfricke@user/cfricke)
2021-10-06 13:42:53 +0200Everything(~Everythin@37.115.210.35) (Ping timeout: 268 seconds)
2021-10-06 13:44:22 +0200Everything(~Everythin@37.115.210.35)
2021-10-06 13:46:42 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
2021-10-06 13:46:52 +0200acidjnk_new(~acidjnk@p200300d0c703cb14e484f2ea659578d3.dip0.t-ipconnect.de)
2021-10-06 13:46:56 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-10-06 13:47:22 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068)
2021-10-06 13:49:54 +0200mmhat(~mmh@55d43024.access.ecotel.net)
2021-10-06 13:54:34 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-10-06 13:59:35 +0200max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 246 seconds)
2021-10-06 13:59:59 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-06 14:02:00 +0200jespada(~jespada@2803:9800:9842:7a62:2d4b:7b80:ce15:fc84)
2021-10-06 14:04:04 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 245 seconds)
2021-10-06 14:12:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-06 14:13:08 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-10-06 14:13:31 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-10-06 14:14:51 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 14:19:45 +0200fendor(~fendor@91.141.79.91.wireless.dyn.drei.com)
2021-10-06 14:27:19 +0200Guest87(~Guest87@194.117.40.220)
2021-10-06 14:27:26 +0200 <Guest87> halve :: [a] -> ([a],[a])
2021-10-06 14:27:27 +0200 <Guest87> halve [] = ([],[])
2021-10-06 14:27:27 +0200 <Guest87> halve [x] = ([x],[])
2021-10-06 14:27:28 +0200 <Guest87> halve xs = ([x | x <- take (length xs `div` 2) xs], [y | y <- ys])
2021-10-06 14:27:28 +0200 <Guest87> where ys = if (length xs `div` 2 /= 0)
2021-10-06 14:27:29 +0200 <Guest87> then drop (length xs `div` 2) + 1
2021-10-06 14:27:29 +0200 <Guest87> else drop (length xs `div` 2)
2021-10-06 14:27:41 +0200 <Guest87> can someone tell me what is wrong with this code?
2021-10-06 14:28:52 +0200Guest8747(~Guest87@194.117.40.220)
2021-10-06 14:29:21 +0200 <merijn> Aside from the list comprehensions being redundant and the repeat length calls being super slow?
2021-10-06 14:29:42 +0200 <merijn> "[ y | y <- ys]" <- why not just write "ys"?
2021-10-06 14:30:08 +0200 <Guest8747> right
2021-10-06 14:30:17 +0200 <merijn> Same for "[x | x <- take (length xs `div` 2) xs]", that's just "take (length xs `div` 2) xs" with extra steps...
2021-10-06 14:31:11 +0200 <hpc> you might also consider using mod, instead of that if
2021-10-06 14:31:14 +0200 <merijn> Oh
2021-10-06 14:31:14 +0200 <hpc> > 5 `mod` 2
2021-10-06 14:31:16 +0200 <lambdabot> 1
2021-10-06 14:31:27 +0200 <merijn> I have questions about your if condition
2021-10-06 14:31:39 +0200 <merijn> Ah, no, I guess that if it typechecks it's fine
2021-10-06 14:31:57 +0200 <merijn> But also, it's useless because that branch is only taken if xs has at least 2 elements, so it's always true
2021-10-06 14:32:41 +0200Guest87(~Guest87@194.117.40.220) (Ping timeout: 256 seconds)
2021-10-06 14:32:54 +0200 <Guest8747> halve :: [a] -> ([a],[a])
2021-10-06 14:32:54 +0200 <Guest8747> halve [] = ([],[])
2021-10-06 14:32:55 +0200 <Guest8747> halve [x] = ([x],[])
2021-10-06 14:32:55 +0200 <Guest8747> halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:32:56 +0200 <Guest8747> where ys = if (length xs `div` 2 /= 0)
2021-10-06 14:32:56 +0200 <Guest8747> then drop (length xs `div` 2) + 1
2021-10-06 14:32:57 +0200 <Guest8747> else drop (length xs `div` 2)
2021-10-06 14:33:13 +0200 <Guest8747> it still doesnt compile
2021-10-06 14:33:37 +0200 <merijn> because: 1) the "then" case isn't correctly parenthesised
2021-10-06 14:33:46 +0200 <merijn> 2) you forgot to give a list argument to drop
2021-10-06 14:34:03 +0200 <merijn> "drop ((length xs `div` 2) + 1)"
2021-10-06 14:34:23 +0200 <merijn> Your current version parses as "(drop (length xs `div` 2)) + 1"
2021-10-06 14:35:30 +0200geranim0(~geranim0@modemcable242.171-178-173.mc.videotron.ca)
2021-10-06 14:35:32 +0200 <maerwald> @hoogle (k -> a -> m Bool) -> Map k a -> Map k a
2021-10-06 14:35:34 +0200 <lambdabot> No results found
2021-10-06 14:35:34 +0200 <maerwald> srsly...
2021-10-06 14:35:38 +0200 <maerwald> oops
2021-10-06 14:35:42 +0200 <Guest8747> can u explain 2)?
2021-10-06 14:35:50 +0200 <maerwald> @hoogle (k -> a -> m Bool) -> Map k a -> m (Map k a)
2021-10-06 14:35:51 +0200 <lambdabot> No results found
2021-10-06 14:35:53 +0200 <maerwald> ...
2021-10-06 14:36:08 +0200 <Guest8747> are u saying it should be where ys xs...
2021-10-06 14:36:09 +0200 <Guest8747> ?
2021-10-06 14:36:22 +0200 <merijn> Guest8747: "drop f list"
2021-10-06 14:36:35 +0200 <merijn> Guest8747: In your code "ys" is a function
2021-10-06 14:36:39 +0200 <merijn> i.e. partially applied drop
2021-10-06 14:39:06 +0200 <Guest8747> halve :: [a] -> ([a],[a])
2021-10-06 14:39:06 +0200 <Guest8747> halve [] = ([],[])
2021-10-06 14:39:07 +0200 <Guest8747> halve [x] = ([x],[])
2021-10-06 14:39:07 +0200 <Guest8747> halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:39:08 +0200 <Guest8747> where ys xs = if (length xs `div` 2 /= 0)
2021-10-06 14:39:08 +0200 <Guest8747> then drop ((length xs `div` 2) + 1)
2021-10-06 14:39:09 +0200 <Guest8747> else drop (length xs `div` 2)
2021-10-06 14:39:13 +0200 <Guest8747> so what do i change here?
2021-10-06 14:39:24 +0200 <Guest8747> merijn
2021-10-06 14:39:46 +0200 <sshine> > let halve xs = splitAt (length xs `quot` 2) xs in halve [1,2,3] -- it rounds the wrong way, but other than that...?
2021-10-06 14:39:47 +0200 <lambdabot> ([1],[2,3])
2021-10-06 14:40:22 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-10-06 14:40:36 +0200 <merijn> Change it to "drop (length xs `div` 2) xs"
2021-10-06 14:40:43 +0200 <sshine> https://hackage.haskell.org/package/base-4.15.0.0/docs/Prelude.html#v:splitAt
2021-10-06 14:41:08 +0200 <merijn> splitAt and length is still inefficient!
2021-10-06 14:41:30 +0200 <merijn> Clearly the way to go: https://gist.github.com/merijn/c163cc106fd245d1cf2e :p
2021-10-06 14:41:45 +0200 <Guest8747> merijn but if the list has an odd number of elements?
2021-10-06 14:42:12 +0200 <merijn> Guest8747: You need to add "xs" to both calls to drop
2021-10-06 14:42:24 +0200 <merijn> Guest8747: Also, your currentl logic doesn't check for odd number of elements
2021-10-06 14:42:31 +0200 <merijn> Guest8747: It checks for "less than 2" elements
2021-10-06 14:42:41 +0200 <merijn> > 3 `div` 2
2021-10-06 14:42:43 +0200 <lambdabot> 1
2021-10-06 14:44:12 +0200 <Guest8747> it was that thx!
2021-10-06 14:45:12 +0200lavaman(~lavaman@98.38.249.169)
2021-10-06 14:46:42 +0200lbseale_(~lbseale@user/ep1ctetus)
2021-10-06 14:46:59 +0200oxide(~lambda@user/oxide) (Ping timeout: 245 seconds)
2021-10-06 14:49:07 +0200oxide(~lambda@user/oxide)
2021-10-06 14:49:16 +0200vysn(~vysn@user/vysn) (Ping timeout: 245 seconds)
2021-10-06 14:49:29 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
2021-10-06 14:49:54 +0200lbseale(~lbseale@user/ep1ctetus) (Ping timeout: 245 seconds)
2021-10-06 14:50:47 +0200hexfive(~eric@50.35.83.177)
2021-10-06 14:51:35 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-10-06 14:51:35 +0200sleblanc(~sleblanc@user/sleblanc)
2021-10-06 14:54:36 +0200 <Guest8747> > let halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:54:37 +0200 <Guest8747> then drop ((length xs `div` 2) + 1) xs
2021-10-06 14:54:37 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-10-06 14:54:37 +0200 <Guest8747> else drop (length xs `div` 2) xs
2021-10-06 14:54:37 +0200 <lambdabot> <no location info>: error:
2021-10-06 14:54:37 +0200 <lambdabot> not an expression: ‘let halve xs = (take (length xs `div` 2) xs, ys)’
2021-10-06 14:55:05 +0200 <merijn> You can't do multiline code in lambdabot
2021-10-06 14:55:22 +0200 <Guest8747> halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:55:23 +0200 <Guest8747> where ys = if (length xs `mod` 2 /= 0) then drop ((length xs `div` 2) + 1) xs else drop (length xs `div` 2) xs
2021-10-06 14:55:34 +0200 <Guest8747> > halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:55:35 +0200 <Guest8747> where ys = if (length xs `mod` 2 /= 0) then drop ((length xs `div` 2) + 1) xs else drop (length xs `div` 2) xs
2021-10-06 14:55:36 +0200 <lambdabot> <hint>:1:10: error: parse error on input ‘=’
2021-10-06 14:56:02 +0200Psybur(~Psybur@mobile-166-170-32-197.mycingular.net)
2021-10-06 14:56:19 +0200 <Guest8747> > let halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:56:19 +0200 <Guest8747> where ys = if (length xs `mod` 2 /= 0) then drop ((length xs `div` 2) + 1) xs else drop (length xs `div` 2) xs
2021-10-06 14:56:21 +0200 <lambdabot> <no location info>: error:
2021-10-06 14:56:21 +0200 <lambdabot> not an expression: ‘let halve xs = (take (length xs `div` 2) xs, ys)’
2021-10-06 14:56:27 +0200 <Guest8747> nvm
2021-10-06 14:57:34 +0200 <Guest8747> i want [1,2,3,4] to turn in ([1,2],[3,4]) for exemple
2021-10-06 14:57:43 +0200 <Guest8747> halve :: [a] -> ([a],[a])
2021-10-06 14:57:44 +0200 <Guest8747> halve [] = ([],[])
2021-10-06 14:57:44 +0200 <Guest8747> halve [x] = ([x],[])
2021-10-06 14:57:45 +0200 <Guest8747> halve xs = (take (length xs `div` 2) xs, ys)
2021-10-06 14:57:45 +0200 <Guest8747> where ys = if (length xs `mod` 2 /= 0)
2021-10-06 14:57:46 +0200 <Guest8747> then drop ((length xs `div` 2) + 1) xs
2021-10-06 14:57:46 +0200 <Guest8747> else drop (length xs `div` 2) xs
2021-10-06 14:57:51 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 14:58:36 +0200 <Guest8747> like this it turns in ([1,2],[4])
2021-10-06 14:58:48 +0200 <Guest8747> cant tell why
2021-10-06 15:00:09 +0200 <Guest8747> its working nvm
2021-10-06 15:00:31 +0200 <robosexual> try this instead of reinventing splitting algorithm: https://hackage.haskell.org/package/base-4.15.0.0/docs/src/GHC-List.html#splitAt
2021-10-06 15:01:19 +0200 <merijn> Nothing wrong with reinventing algorithms
2021-10-06 15:01:24 +0200Alex_test(~al_test@94.233.240.2) (Quit: ;-)
2021-10-06 15:01:34 +0200 <merijn> The problem is that, as I said before, your code *always* picks the true branch
2021-10-06 15:01:37 +0200AlexZenon(~alzenon@94.233.240.2) (Quit: ;-)
2021-10-06 15:01:44 +0200 <merijn> And thus drops 3 items, not 2
2021-10-06 15:01:45 +0200AlexNoo(~AlexNoo@94.233.240.2) (Quit: Leaving)
2021-10-06 15:02:44 +0200 <tdammers> (technically this isn't even reinventing an algorithm, just reimplementing it)
2021-10-06 15:03:03 +0200 <merijn> tdammers: Nothing wrong with that either :p
2021-10-06 15:03:13 +0200 <tdammers> indeed
2021-10-06 15:03:21 +0200 <tdammers> just need to be aware of the pros and cons
2021-10-06 15:03:24 +0200 <Guest8747> halve [1,2,3,4,5] is returning ([1,2],[4,5]) for some reason :(
2021-10-06 15:03:32 +0200 <merijn> Guest8747: Same as my previous answer
2021-10-06 15:03:39 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-10-06 15:03:48 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Quit: ub)
2021-10-06 15:03:50 +0200 <Guest8747> instead of ([1,2],[3,4,5])
2021-10-06 15:04:10 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 15:04:16 +0200 <Hecate> :9
2021-10-06 15:04:55 +0200 <Guest8747> merijn can u tell why?
2021-10-06 15:05:04 +0200 <Guest8747> i thought adding +1 would solve it
2021-10-06 15:05:20 +0200 <merijn> What is the if/else supposed to do?
2021-10-06 15:06:29 +0200 <Guest8747> if the length is an odd number it would drop length/2 + 1
2021-10-06 15:06:38 +0200 <merijn> Well, it doesn't do that
2021-10-06 15:06:42 +0200 <Guest8747> if its even just the other half
2021-10-06 15:06:50 +0200 <merijn> Because, as stated before, you're not checking if the length is odd
2021-10-06 15:07:02 +0200 <merijn> You're checking if the length is less than 2
2021-10-06 15:07:44 +0200 <Guest8747> if (length xs `mod` 2 /= 0)
2021-10-06 15:08:20 +0200 <Guest8747> how isnt this checking the length being odd
2021-10-06 15:08:21 +0200 <Guest8747> ?
2021-10-06 15:09:02 +0200 <merijn> oh, wait, it's mod now, in one of the original version it was div >.>
2021-10-06 15:09:13 +0200 <merijn> Anyway, you drop 1 more
2021-10-06 15:09:19 +0200yinghua(~yinghua@2800:2121:1400:900:9813:e2cc:52c1:9b50)
2021-10-06 15:09:20 +0200 <merijn> But you don't take 1 more when that happens
2021-10-06 15:09:36 +0200 <merijn> So if it's true, you drop 1 extra, but don't take 1 more
2021-10-06 15:09:46 +0200rkrishnan(~user@2402:e280:215c:2cd:6d16:f9a5:49d8:1fa5) (Ping timeout: 252 seconds)
2021-10-06 15:11:13 +0200gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2021-10-06 15:11:14 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-10-06 15:11:40 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-10-06 15:12:02 +0200gehmehgeh(~user@user/gehmehgeh)
2021-10-06 15:12:19 +0200 <Guest8747> ohhh i was looking at drop the wrong way!
2021-10-06 15:12:23 +0200 <Guest8747> ty
2021-10-06 15:15:26 +0200zebrag(~chris@user/zebrag)
2021-10-06 15:20:47 +0200AlexZenon(~alzenon@94.233.240.2)
2021-10-06 15:20:56 +0200Guest8747(~Guest87@194.117.40.220) (Quit: Client closed)
2021-10-06 15:21:04 +0200AlexNoo(~AlexNoo@94.233.240.2)
2021-10-06 15:21:41 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-10-06 15:22:18 +0200Alex_test(~al_test@94.233.240.2)
2021-10-06 15:23:01 +0200lbseale_lbseale
2021-10-06 15:23:26 +0200CiaoSen(~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2021-10-06 15:25:11 +0200sneedsfeed(~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com)
2021-10-06 15:26:37 +0200fendor_(~fendor@178.115.78.172.wireless.dyn.drei.com)
2021-10-06 15:27:34 +0200 <sneedsfeed> can this be written as a pure composition? sndMapAccumL a b c = snd $ mapAccumL a b c
2021-10-06 15:28:11 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 15:28:14 +0200 <Franciman> sneedsfeed: you mean like
2021-10-06 15:28:20 +0200 <Franciman> sndMapAccumL a b = snd . mapAccumL a b
2021-10-06 15:28:23 +0200 <Franciman> ?
2021-10-06 15:28:27 +0200 <Franciman> sorry I can't do better :<
2021-10-06 15:28:49 +0200 <sneedsfeed> Well I couldnt even figure that out!
2021-10-06 15:29:11 +0200 <Franciman> when you have multivalued functions
2021-10-06 15:29:18 +0200 <sneedsfeed> but yea it does beg the question still now how better.
2021-10-06 15:29:19 +0200 <Franciman> :t (.)
2021-10-06 15:29:20 +0200 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2021-10-06 15:29:24 +0200fendor(~fendor@91.141.79.91.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-10-06 15:29:33 +0200 <Franciman> if you have multiparam functions
2021-10-06 15:29:36 +0200 <Franciman> in this case
2021-10-06 15:29:38 +0200 <Franciman> :t mapAccumL
2021-10-06 15:29:39 +0200 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2021-10-06 15:29:48 +0200 <Franciman> the b in there becomes
2021-10-06 15:29:49 +0200 <byorgey> anything can always be written in "point-free" style, with no parameters, though it's often not worth it.
2021-10-06 15:30:00 +0200 <Franciman> a -> t b -> (a, t c)
2021-10-06 15:30:20 +0200 <Franciman> wait so you can do
2021-10-06 15:30:26 +0200 <Franciman> no nothing
2021-10-06 15:30:54 +0200 <byorgey> :t ((.).(.).(.)) snd mapAccumL
2021-10-06 15:30:56 +0200 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> t c
2021-10-06 15:31:10 +0200 <Franciman> byorgey: you blowed my mind
2021-10-06 15:32:15 +0200 <sneedsfeed> byorgey yea but... and i'm a noob I know... but i've always been operating under the assumption that these "not worth it" cases are not situations where the parameter applications come at the end of the function in the same order. its weird to me to have sndMapAccumL a b = snd . mapAccumL a b... why cant I just take off the a and the b???
2021-10-06 15:33:14 +0200 <sneedsfeed> and yea i know just type :t and the answer is always right there in the type signature... but i'm not smart enough to just figure everything out like that...
2021-10-06 15:33:32 +0200 <merijn> sneedsfeed: Because "snd . mapAccumL a b" is "snd . (mapAccumL a b)"
2021-10-06 15:33:34 +0200 <byorgey> sneedsfeed: yeah, if they are not in the same order then that is even worse, then you need some applications of 'flip' in there
2021-10-06 15:33:42 +0200 <Franciman> sneedsfeed: i think you can get a tast of what's happening by looking at this:
2021-10-06 15:33:44 +0200 <Franciman> :t (.)
2021-10-06 15:33:45 +0200 <lambdabot> (b -> c) -> (a -> b) -> a -> c
2021-10-06 15:33:48 +0200 <Franciman> :t (.).(.)
2021-10-06 15:33:49 +0200 <lambdabot> (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
2021-10-06 15:33:52 +0200 <merijn> sneedsfeed: If you remove a b you make it "(snd . mapAccumL) a b"
2021-10-06 15:33:56 +0200 <byorgey> sneedsfeed: it's a good question, but yeah, snd . mapAccumL a b is not the same as (snd . mapAccumL) a b
2021-10-06 15:34:45 +0200 <byorgey> (f . g x) y = f (g x y), but ((f . g) x) y = (f . g) x y = f (g x) y
2021-10-06 15:35:34 +0200 <byorgey> sneedsfeed: you are smart enough, you just don't have enough experience. Big difference. =)
2021-10-06 15:35:47 +0200 <sneedsfeed> "snd . mapAccumL a b is not the same as (snd . mapAccumL) a b o" okay that makes sense
2021-10-06 15:36:02 +0200 <sneedsfeed> byorgey would that I were 23 coming into this and not 33 :D
2021-10-06 15:36:52 +0200 <byorgey> hah, well, we work with what we've got
2021-10-06 15:37:49 +0200 <merijn> sneedsfeed: The key insight is that (.) and ($) aren't magical "braces-away" notation, but simply function that take two arguments and what those two arguments are, matters.
2021-10-06 15:38:01 +0200 <byorgey> sneedsfeed: you still probably have at least another 40 years of productive Haskell use ahead of you =D
2021-10-06 15:38:11 +0200 <Franciman> will my language ever be better than haskell? Surely no, because I am not as smart as people here. Will I have lots of fun doing it? HELL YEAH, sneedsfeed
2021-10-06 15:38:14 +0200 <Franciman> so don't worry
2021-10-06 15:38:17 +0200 <Franciman> just have fun
2021-10-06 15:40:14 +0200 <shapr> I joined a small Haskell chat group, we meet weekly. This week we're going to wander through this new game swarm
2021-10-06 15:41:41 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-10-06 15:42:17 +0200 <shapr> byorgey: glad you published swarm, the source code is fun to read!
2021-10-06 15:42:20 +0200 <byorgey> =D
2021-10-06 15:43:02 +0200 <shapr> I haven't played it yet, but I joined a text user interface group that's planning to host a whole bunch of TUI games, it might end up on there.
2021-10-06 15:43:11 +0200 <shapr> specifically https://bluebird.sh/
2021-10-06 15:44:35 +0200hrdl(~hrdl@mail.hrdl.eu) (Remote host closed the connection)
2021-10-06 15:44:36 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-10-06 15:44:36 +0200 <byorgey> shapr: cool!
2021-10-06 15:45:58 +0200neurocyte0132889(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-10-06 15:46:17 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-06 15:46:17 +0200 <byorgey> shapr: I mean maybe wait a bit until it is more feature-complete, but it'll get there
2021-10-06 15:47:01 +0200jakalx(~jakalx@base.jakalx.net)
2021-10-06 15:52:59 +0200hrdl(~hrdl@mail.hrdl.eu)
2021-10-06 15:56:08 +0200acidjnk_new(~acidjnk@p200300d0c703cb14e484f2ea659578d3.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-10-06 15:58:06 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-06 16:01:38 +0200sprout(~quassel@2a02:a467:ccd6:1:3914:a7b1:2a0f:e9d8) (Ping timeout: 268 seconds)
2021-10-06 16:05:15 +0200max22-(~maxime@2a01cb08833598007fcfb2955ee7c812.ipv6.abo.wanadoo.fr)
2021-10-06 16:06:29 +0200xsperry(~xs@user/xsperry) (Remote host closed the connection)
2021-10-06 16:06:58 +0200xsperry(~xs@user/xsperry)
2021-10-06 16:06:59 +0200xsperry(~xs@user/xsperry) (Excess Flood)
2021-10-06 16:08:35 +0200fendor_fendor
2021-10-06 16:10:30 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-10-06 16:10:54 +0200concrete-houses(~g@209.6.150.53)
2021-10-06 16:11:05 +0200 <concrete-houses> anyone here try happstack.com?
2021-10-06 16:11:18 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2021-10-06 16:12:00 +0200Sgeo(~Sgeo@user/sgeo)
2021-10-06 16:12:48 +0200cfricke(~cfricke@user/cfricke)
2021-10-06 16:13:06 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-10-06 16:14:10 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-10-06 16:15:58 +0200sprout(~quassel@2a02:a467:ccd6:1:aca2:ad7b:536b:eb53)
2021-10-06 16:17:44 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 265 seconds)
2021-10-06 16:20:31 +0200sprout(~quassel@2a02:a467:ccd6:1:aca2:ad7b:536b:eb53) (Ping timeout: 245 seconds)
2021-10-06 16:26:55 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2021-10-06 16:27:53 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-06 16:31:38 +0200sprout(~quassel@2a02:a467:ccd6:1:aca2:ad7b:536b:eb53)
2021-10-06 16:33:14 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-10-06 16:45:17 +0200Lord_of_Life(~Lord@46.217.216.227)
2021-10-06 16:45:18 +0200Lord_of_Life(~Lord@46.217.216.227) (Changing host)
2021-10-06 16:45:18 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-06 16:45:46 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
2021-10-06 16:47:50 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 16:48:27 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-10-06 16:49:42 +0200 <kuribas> Franciman: it's possible to make a language better than haskell. It's not easy to make people use it :)
2021-10-06 16:50:24 +0200 <dminuoso> Is it easy to make a *performant* better version of Haskell? That's going to be extremely tricky now.
2021-10-06 16:50:37 +0200 <kuribas> dminuoso: maybe using GRIN + LLVM?
2021-10-06 16:50:46 +0200 <kuribas> though GRIN is still lacking optimizations.
2021-10-06 16:50:47 +0200 <dminuoso> Just tossing GRIN or LLVM at it will not make it magically go fast.
2021-10-06 16:51:08 +0200 <kuribas> dminuoso: it helps :)
2021-10-06 16:51:23 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com)
2021-10-06 16:51:32 +0200 <Franciman> kuribas: not for me :P
2021-10-06 16:51:45 +0200 <kuribas> Franciman: what are you doing then?
2021-10-06 16:51:52 +0200 <Franciman> I just enjoy writing things
2021-10-06 16:51:53 +0200 <kuribas> what kind of language is it?
2021-10-06 16:52:01 +0200 <Franciman> now I copied an idea from a langjam winner
2021-10-06 16:52:06 +0200 <Franciman> Debug.trace in comments
2021-10-06 16:52:06 +0200 <kuribas> Franciman: in that case you don't care about going fast.
2021-10-06 16:52:08 +0200 <Franciman> i love the idea
2021-10-06 16:52:13 +0200 <dminuoso> kuribas: And LLVM is very incompatible with the type of code that GHC produces, for instance.
2021-10-06 16:52:19 +0200 <dminuoso> Which is why the LLVM is regularly slower
2021-10-06 16:52:22 +0200 <dminuoso> Which is why the LLVM backend is regularly slower
2021-10-06 16:52:24 +0200 <Franciman> kuribas: it's a strict functional language with System F types
2021-10-06 16:52:26 +0200 <kuribas> dminuoso: yeah, that's the usecase of GRIN.
2021-10-06 16:52:53 +0200 <Franciman> I wanted to add: a more ML like module system, that would help in whishful thinking, i.e. you declar eyour module as wishful
2021-10-06 16:53:03 +0200 <kuribas> dminuoso: it's true that GRIN is lacking useful optimizations.
2021-10-06 16:53:05 +0200 <Franciman> so you don't have to provide implementations and the compiler can only go as far as typechecking
2021-10-06 16:53:11 +0200 <Franciman> then I want to add codata
2021-10-06 16:53:17 +0200 <Franciman> as an explicit construction
2021-10-06 16:53:20 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-10-06 16:53:20 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-10-06 16:53:22 +0200 <Franciman> later linear logic, when I learn about it
2021-10-06 16:53:24 +0200allbery_bgeekosaur
2021-10-06 16:53:39 +0200 <kuribas> wishful?
2021-10-06 16:53:52 +0200 <Franciman> wishful module Vector where
2021-10-06 16:54:01 +0200 <Franciman> and you only define its interface, without implementing it
2021-10-06 16:54:07 +0200 <kuribas> you mean putting holes for functions?
2021-10-06 16:54:10 +0200 <Franciman> in haskell I usually do it by writing functionName = undefined
2021-10-06 16:54:11 +0200 <dminuoso> kuribas: My experience with GRIN is fairly limited, so I cant speak much about it.
2021-10-06 16:54:12 +0200 <Franciman> yep
2021-10-06 16:54:48 +0200 <kuribas> dminuoso: it doesn't do extensive inlining or specialization (yet). But it removes higher order functions and lazyness.
2021-10-06 16:54:59 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2021-10-06 16:55:01 +0200 <kuribas> dminuoso: so it can be better compiled by a lower level backend, like LLVM.
2021-10-06 16:55:35 +0200 <dminuoso> kuribas: Is it comparably fast to the GHC core>simpl>cmm pipeline?
2021-10-06 16:55:49 +0200 <kuribas> dminuoso: I have no idea...
2021-10-06 16:55:52 +0200 <dminuoso> (not in terms of produced code, but its own execution time)
2021-10-06 16:56:16 +0200 <kuribas> fast as in compilation times, or as in runtime performance?
2021-10-06 16:56:23 +0200 <Franciman> can you use grinn for an interpreter too? or does it only do compilation?
2021-10-06 16:56:26 +0200 <dminuoso> Did someone try to bolt GRIN onto GHC already?
2021-10-06 16:56:37 +0200 <Franciman> dminuoso: there is JHC using GRIN iiuc
2021-10-06 16:56:47 +0200 <dminuoso> https://github.com/grin-compiler/ghc-grin
2021-10-06 16:56:49 +0200 <dminuoso> Interesting
2021-10-06 16:57:09 +0200 <merijn> dminuoso: There's a guy working on it
2021-10-06 16:57:18 +0200 <merijn> Franciman: Use typed holes!
2021-10-06 16:57:25 +0200 <merijn> Franciman: Undefined is strictly inferior
2021-10-06 16:57:51 +0200 <dminuoso> GRIN seems like a really cool idea then. :)
2021-10-06 16:57:54 +0200 <merijn> "functionName = _"
2021-10-06 16:58:00 +0200 <Franciman> merijn: oh cool
2021-10-06 16:58:14 +0200 <Franciman> do I have to put some extension on?
2021-10-06 16:58:17 +0200 <merijn> No
2021-10-06 16:58:24 +0200 <Franciman> n-nice, thank you!
2021-10-06 16:58:26 +0200 <Franciman> TIL
2021-10-06 16:58:34 +0200 <dminuoso> GRIN kind of reminds me of the Truffle Language Implementation framework.
2021-10-06 16:58:45 +0200 <merijn> Franciman: Typed holes produce an error saying "found typed hole of type: Type that should go there"
2021-10-06 16:59:11 +0200 <Franciman> this may be better than my wishful moduels
2021-10-06 16:59:14 +0200 <Franciman> nice!
2021-10-06 16:59:15 +0200 <merijn> Franciman: There's -fdefer-typed-holes" which turns the error into a warning, which means you can run the code (like you could with undefined)
2021-10-06 16:59:35 +0200 <Franciman> I see
2021-10-06 16:59:36 +0200 <Franciman> useful
2021-10-06 16:59:44 +0200 <merijn> But unlike "undefined" you can delete -fdefer-typed-holes from your GHC flags and get a compile error if you forgot any :p
2021-10-06 16:59:57 +0200 <Franciman> yaaap! it's really nice, thanks merijn
2021-10-06 17:00:02 +0200 <merijn> With undefined you gotta hope you remember to implement all them :p
2021-10-06 17:00:10 +0200 <tomsmeding> merijn: HLS feedback seems to take a little longer to appear in my editor whenever there's a typed hole in the file. It feels like GHC proceeds until a later stage of compilation than normal or something, due to which it takes longer, but this is just a feeling, not based on anything. Do you have any idea why this happens?
2021-10-06 17:00:11 +0200 <lortabac> Franciman: similarly, there is also an extension to enable partial type signatures, when you want to put holes in types
2021-10-06 17:00:40 +0200 <merijn> tomsmeding: longer than compared to what?
2021-10-06 17:00:45 +0200 <lortabac> PartialTypeSignatures
2021-10-06 17:01:00 +0200 <tomsmeding> compared to if there are no typed holes, but only other type errors
2021-10-06 17:01:06 +0200 <Franciman> ty lortabac
2021-10-06 17:01:19 +0200 <tomsmeding> it's not a problem or anything, just seems weird to me
2021-10-06 17:02:01 +0200 <tomsmeding> hm can't really reproduce it now, but it was certainly there earlier (on a slower machine, maybe that's the reason)
2021-10-06 17:02:17 +0200 <lortabac> tomsmeding: I guess it takes time because it looks for possible matches
2021-10-06 17:02:24 +0200 <tomsmeding> oooooooo yes
2021-10-06 17:02:29 +0200 <tomsmeding> that makes total sense
2021-10-06 17:02:30 +0200 <merijn> tomsmeding: I'm not up to date on the current implementation :)
2021-10-06 17:02:38 +0200 <tomsmeding> lortabac++
2021-10-06 17:02:38 +0200 <merijn> oh, you can disable the possible matches
2021-10-06 17:03:22 +0200 <merijn> I'm just shilling typed holes, because I don't want my effort to get -fdefer-typed-holes to go to waste :p
2021-10-06 17:03:26 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
2021-10-06 17:03:39 +0200 <tomsmeding> I know :p
2021-10-06 17:04:00 +0200 <tomsmeding> but that makes you the typed holes man for me in this channel
2021-10-06 17:04:33 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-10-06 17:04:53 +0200 <shapr> tritlo wrote some nice papers on typed holes
2021-10-06 17:05:11 +0200 <shapr> at least, I think that's the right person
2021-10-06 17:05:27 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
2021-10-06 17:06:33 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-10-06 17:07:15 +0200cigsender(~mbrown@74.124.58.162)
2021-10-06 17:14:26 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-10-06 17:18:14 +0200alx741(~alx741@186.178.109.65) (Ping timeout: 245 seconds)
2021-10-06 17:19:07 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 265 seconds)
2021-10-06 17:21:40 +0200zmt00(~zmt00@user/zmt00)
2021-10-06 17:21:47 +0200vysn(~vysn@user/vysn)
2021-10-06 17:28:15 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net)
2021-10-06 17:29:39 +0200 <zzz> what's the default fixity for infix data constructors?
2021-10-06 17:30:14 +0200lbseale(~lbseale@user/ep1ctetus) (Ping timeout: 265 seconds)
2021-10-06 17:30:17 +0200 <merijn> infixl 9
2021-10-06 17:30:27 +0200 <merijn> Or rather, that's the default fixity, period :p
2021-10-06 17:30:30 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-06 17:30:33 +0200 <cigsender> pretty sure everything defaults to infixl 9, like merijn said
2021-10-06 17:30:48 +0200mc47(~mc47@xmonad/TheMC47)
2021-10-06 17:30:56 +0200alx741(~alx741@181.196.69.122)
2021-10-06 17:31:07 +0200 <zzz> ok just checking
2021-10-06 17:31:14 +0200alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-10-06 17:31:24 +0200alzgh(~alzgh@user/alzgh)
2021-10-06 17:32:45 +0200xsperry(~xs@user/xsperry)
2021-10-06 17:33:03 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-10-06 17:39:24 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:285c:5722:2a44:fb76) (Quit: WeeChat 2.8)
2021-10-06 17:40:06 +0200Guest3130(~Guest31@45.148.198.128)
2021-10-06 17:40:30 +0200 <tomsmeding> in an error message stating that a particular constraint 'C a' cannot be satisfied, if applicable, ghc says that one could fix the error by adding that constraint in the GADT that you're matching, or somewhere else. But this type variable 'a' is derived from some random type signature somewhere, which is sometimes a completely different one than it tells you to put the constraint on
2021-10-06 17:40:39 +0200Guest3130(~Guest31@45.148.198.128) (Client Quit)
2021-10-06 17:41:03 +0200 <tomsmeding> so you have like 'data T b where Constr :: Bool -> T Int', and it tells you to add 'C a' to the context of Constr
2021-10-06 17:41:08 +0200 <tomsmeding> like, that ain't going to work, ghc :p
2021-10-06 17:41:20 +0200 <geekosaur> ghc's suggestions are usually lousy in my experience
2021-10-06 17:41:29 +0200 <tomsmeding> in general ghc seems to confuse type variable names in error messages all over the place
2021-10-06 17:41:55 +0200 <geekosaur> like it will tell you to enable some extension iunstead of fixing the realproblem
2021-10-06 17:41:57 +0200 <tomsmeding> in fact the suggestion is completely valid in this case, and even what I wanted to do, but for the incorrect variable name :p
2021-10-06 17:42:27 +0200azeem(~azeem@emp-183-4.eduroam.uu.se) (Read error: Connection reset by peer)
2021-10-06 17:42:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-10-06 17:42:47 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-10-06 17:42:49 +0200azeem(~azeem@emp-183-4.eduroam.uu.se)
2021-10-06 17:44:12 +0200econo(uid147250@user/econo)
2021-10-06 17:44:24 +0200 <zzz> it ain't easy being ghc
2021-10-06 17:44:28 +0200 <monochrom> I too confuse type variables between parametric polymorphism, GADTs, and type families. :)
2021-10-06 17:45:37 +0200 <tomsmeding> it definitely ain't easy being ghc
2021-10-06 17:47:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f81d:7133:81c9:b91d) (Remote host closed the connection)
2021-10-06 17:49:13 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-10-06 17:49:16 +0200wonko(~wjc@62.115.229.50) (Ping timeout: 245 seconds)
2021-10-06 17:49:34 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 265 seconds)
2021-10-06 17:50:03 +0200azeem(~azeem@emp-183-4.eduroam.uu.se) (Ping timeout: 265 seconds)
2021-10-06 17:50:14 +0200azeem(~azeem@2a00:801:2d6:ef11:512b:756c:612a:d872)
2021-10-06 17:53:52 +0200azeem(~azeem@2a00:801:2d6:ef11:512b:756c:612a:d872) (Read error: Connection reset by peer)
2021-10-06 17:54:36 +0200azeem(~azeem@2a00:801:2d6:ef11:512b:756c:612a:d872)
2021-10-06 17:54:37 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-10-06 17:56:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f81d:7133:81c9:b91d)
2021-10-06 17:56:54 +0200 <ggVGc> I think we might be due a GHC fork with an extension purge
2021-10-06 17:57:05 +0200 <ggVGc> and get rid of all the ones that turned out not super great ideas
2021-10-06 17:57:21 +0200Null_A(~null_a@2601:645:8700:2290:99d8:b393:f0ac:dbda)
2021-10-06 17:58:29 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-10-06 17:58:57 +0200 <ProofTechnique> Also with Alexis King's delimited continuations work so I can finally use `eff` 🥺
2021-10-06 18:00:02 +0200 <monochrom> Which extensions actually turned out to be not super great ideas?
2021-10-06 18:00:10 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-06 18:00:23 +0200 <c_wraith> PolymorphicComponents. :P
2021-10-06 18:00:45 +0200 <monochrom> Yeah that's superseded by RankNTypes, no?
2021-10-06 18:01:12 +0200 <c_wraith> yeah. They're just different names for the same thing now
2021-10-06 18:01:24 +0200 <monochrom> I am going for "all of them are already obsoleted or replaced".
2021-10-06 18:02:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-10-06 18:02:55 +0200 <ggVGc> I don't have concrete suggestions right now... But, I'm sure I've read quite a lot about some extensions not working well with others, and we have some tackling quite similar issues from different angles, right?
2021-10-06 18:03:06 +0200 <monochrom> i.e., a cry for "fork GHC to purge them" is basically vacuous.
2021-10-06 18:03:25 +0200 <ggVGc> I wasn't being entirely serious :)
2021-10-06 18:06:58 +0200xiongxin(~quassel@119.123.102.49) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-06 18:11:29 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-10-06 18:11:34 +0200__monty__(~toonn@user/toonn)
2021-10-06 18:13:26 +0200vicfred(~vicfred@user/vicfred)
2021-10-06 18:16:54 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Quit: ub)
2021-10-06 18:17:11 +0200 <dolio> PolymorphicComponents came after RankNTypes, I think, as a way to have certain data types without turning on the whole extended type system.
2021-10-06 18:17:12 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 18:17:15 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 18:18:08 +0200 <geekosaur> iirc it came after Rank2Types; RankNTypes came later and subsumed Rank2Types
2021-10-06 18:18:31 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 18:18:36 +0200 <geekosaur> and PolymorphicComponents
2021-10-06 18:18:50 +0200 <c_wraith> but these days Rank2Types and PolymorphicComponents both just enable RankNTypes
2021-10-06 18:19:01 +0200 <geekosaur> right
2021-10-06 18:19:14 +0200 <dolio> Ah.
2021-10-06 18:19:31 +0200bsima(~bsima@2604:a880:400:d0::19f1:7001)
2021-10-06 18:19:32 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
2021-10-06 18:20:11 +0200neurocyte0132889(~neurocyte@46.243.81.207)
2021-10-06 18:20:12 +0200neurocyte0132889(~neurocyte@46.243.81.207) (Changing host)
2021-10-06 18:20:12 +0200neurocyte0132889(~neurocyte@user/neurocyte)
2021-10-06 18:20:13 +0200 <dolio> It seems kind of pointless to just remove another name for the same extension. It will just break programs.
2021-10-06 18:23:02 +0200chele(~chele@user/chele) (Remote host closed the connection)
2021-10-06 18:23:40 +0200dibblego(~dibblego@122-199-1-30.ip4.superloop.com)
2021-10-06 18:23:41 +0200dibblego(~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
2021-10-06 18:23:41 +0200dibblego(~dibblego@haskell/developer/dibblego)
2021-10-06 18:25:19 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 18:26:33 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 18:27:00 +0200hendursa1(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-10-06 18:35:29 +0200hendursaga(~weechat@user/hendursaga)
2021-10-06 18:37:08 +0200Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com)
2021-10-06 18:39:08 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-10-06 18:41:34 +0200cheater(~Username@user/cheater) (Ping timeout: 245 seconds)
2021-10-06 18:43:41 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-06 18:48:10 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-10-06 18:48:27 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 18:52:05 +0200robosexual(~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
2021-10-06 18:57:36 +0200lavaman(~lavaman@98.38.249.169)
2021-10-06 18:58:03 +0200mbuf(~Shakthi@223.178.119.120) (Quit: Leaving)
2021-10-06 18:58:38 +0200Null_A(~null_a@2601:645:8700:2290:99d8:b393:f0ac:dbda) ()
2021-10-06 18:58:41 +0200yinghua(~yinghua@2800:2121:1400:900:9813:e2cc:52c1:9b50) (Read error: Connection reset by peer)
2021-10-06 18:59:00 +0200yinghua(~yinghua@2800:2121:1400:900:550d:5356:b600:ab96)
2021-10-06 19:00:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-06 19:02:04 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-10-06 19:02:24 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 19:05:58 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-10-06 19:06:14 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068)
2021-10-06 19:06:16 +0200pavonia(~user@user/siracusa)
2021-10-06 19:08:01 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-10-06 19:09:26 +0200 <kuribas> is using the `Ap` Monoid fancy haskell?
2021-10-06 19:09:49 +0200 <vaibhavsagar[m]> fancy haskell is whatever i don't know
2021-10-06 19:09:51 +0200 <vaibhavsagar[m]> so yes
2021-10-06 19:10:03 +0200 <kuribas> I have "Validation (ann, Text) (DeviceTables ann -> DeviceTables ann)"
2021-10-06 19:10:26 +0200 <kuribas> if I use Endo and Ap, I can more easily compose them.
2021-10-06 19:10:41 +0200 <vaibhavsagar[m]> I was being facetious
2021-10-06 19:10:57 +0200 <vaibhavsagar[m]> there is no definition of "fancy haskell" that makes sense
2021-10-06 19:11:15 +0200 <vaibhavsagar[m]> if it makes your code better then it's probably good
2021-10-06 19:11:24 +0200 <vaibhavsagar[m]> it it makes your code worse then it's probably bad
2021-10-06 19:11:36 +0200 <kuribas> it makes it better if you know what Ap and Endo do...
2021-10-06 19:11:56 +0200 <vaibhavsagar[m]> I looked it up just now, seems reasonable to me
2021-10-06 19:12:03 +0200 <kuribas> ok, thanks :)
2021-10-06 19:12:36 +0200Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
2021-10-06 19:12:52 +0200 <vaibhavsagar[m]> IME when people talk about "fancy haskell" it involves type-level programming, lens, etc
2021-10-06 19:13:04 +0200 <vaibhavsagar[m]> but again, there is no consistent definition
2021-10-06 19:13:10 +0200 <kuribas> lens also :-(
2021-10-06 19:13:20 +0200 <kuribas> I think basic lenses should be ok.
2021-10-06 19:13:35 +0200 <vaibhavsagar[m]> but that's the thing, sometimes lenses are simpler than the alternative
2021-10-06 19:13:38 +0200 <awpr> hmm, I need to delete my own reimplementation of `Ap`. didn't know that existed in `base`
2021-10-06 19:13:39 +0200 <kuribas> like view, set, over
2021-10-06 19:13:53 +0200 <vaibhavsagar[m]> I wrote some code to update JSON without lenses that is incredibly ugly
2021-10-06 19:13:53 +0200 <monochrom> :)
2021-10-06 19:14:24 +0200 <vaibhavsagar[m]> so it might actually be an improvement to rewrite that
2021-10-06 19:14:31 +0200 <kuribas> I've found the more fancy lenses are easy to avoid.
2021-10-06 19:15:13 +0200 <kuribas> For example (view (#field % to f)) => (f . view #field)
2021-10-06 19:15:16 +0200cheater(~Username@user/cheater)
2021-10-06 19:16:25 +0200 <vaibhavsagar[m]> I don't have a good grasp of lenses but I believe you
2021-10-06 19:16:32 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 19:16:54 +0200 <awpr> this is at least vaguely on-topic: I don't think you need to lose (.) composition to have a sensible OverloadedLabels instance for optics
2021-10-06 19:17:34 +0200 <awpr> the instance head can just be `OpticWrapper p f a b -> OpticWrapper p f s t`
2021-10-06 19:17:41 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-10-06 19:18:09 +0200 <kuribas> awpr: for optics the composition operator is `%`
2021-10-06 19:18:16 +0200 <awpr> that's what I was responding to
2021-10-06 19:18:29 +0200 <kuribas> You don't loose it, it's just a different operator
2021-10-06 19:18:38 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04)
2021-10-06 19:18:45 +0200 <awpr> "(.) composition" is different from "any form of composition"
2021-10-06 19:18:56 +0200 <awpr> I mean literally the ability to use (.) for composition
2021-10-06 19:19:07 +0200 <kuribas> awpr: are you refering to Control.Category?
2021-10-06 19:19:17 +0200 <awpr> no, literally (Prelude..)
2021-10-06 19:19:32 +0200 <kuribas> in that case, not using (.) is a good thing.
2021-10-06 19:19:42 +0200 <awpr> I don't agree with that
2021-10-06 19:20:00 +0200 <kuribas> because Optics are a concept, a function is an implementation detail.
2021-10-06 19:20:12 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 19:20:13 +0200 <kuribas> you don't want to leak implementation into your API.
2021-10-06 19:20:35 +0200 <kuribas> (.) for lenses is quite confusing.
2021-10-06 19:21:07 +0200 <dminuoso> awpr: The point of using % rather than . has nothing to do with not being able to.
2021-10-06 19:21:11 +0200 <awpr> *shrug* it doesn't confuse me. it's not objectively confusing
2021-10-06 19:21:19 +0200sprout(~quassel@2a02:a467:ccd6:1:aca2:ad7b:536b:eb53) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-10-06 19:22:00 +0200 <dminuoso> awpr: It's about being able to generate legible diagnostics at composition time, rather than deferring illegible diagnostics to consumption time.
2021-10-06 19:22:20 +0200 <dminuoso> (%) :: forall k l m is js ks s t u v a b . (JoinKinds k l m, AppendIndices is js ks) => Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
2021-10-06 19:22:31 +0200 <dminuoso> So the magic juice is JoinKinds and AppendIndices
2021-10-06 19:23:07 +0200 <awpr> yeah, I guess that makes sense. I still prefer `.` and error messages relating to what's actually going on, myself
2021-10-06 19:24:26 +0200 <dminuoso> Me personally I prefer if GHC produces a type error that says "A Getter cannot be composed with a Setter", rather than being able to satisfy some cryptic constraints.
2021-10-06 19:24:40 +0200 <dminuoso> I dont need to understand what profunctor typeclasses are used
2021-10-06 19:24:57 +0200 <awpr> yeah, I'm the opposite. different libraries for different preferences, I guess
2021-10-06 19:25:01 +0200 <dminuoso> Absolutely. :)
2021-10-06 19:26:13 +0200 <dminuoso> It's also quite possibly relating to the fact that if you're already familiar with the involved constraints, you might not care much.
2021-10-06 19:26:27 +0200 <dminuoso> For a new user who really doesn't care about the implementation, it might be different.
2021-10-06 19:27:04 +0200 <dminuoso> I know some do think that being forced to understand the inner workings is preferrable, but as long as the optics involved have clear semantics, is that really necessary?
2021-10-06 19:27:11 +0200 <dminuoso> But this is definitely personal preference
2021-10-06 19:27:14 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-06 19:27:22 +0200 <awpr> yeah, definitely curated error messages are more newcomer-friendly
2021-10-06 19:27:29 +0200 <monochrom> I haven't used lens and optics, but I have a related philosophy comparing C++ operator overloading and Haskell type classes.
2021-10-06 19:28:31 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04) (Remote host closed the connection)
2021-10-06 19:28:38 +0200 <awpr> part of the downside to me though is that it turns the internally-consistent mechanism into what looks like an ad-hoc set of specific rules
2021-10-06 19:28:57 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04)
2021-10-06 19:28:59 +0200 <dminuoso> awpr: these ad-hoc rules are formalized though.
2021-10-06 19:29:22 +0200 <dminuoso> awpr: In lens you simply have https://i.imgur.com/ALlbPRa.png
2021-10-06 19:29:24 +0200 <awpr> and for me it's easier to internalize the profunctor workings than to memorize the table of composition rules
2021-10-06 19:29:41 +0200 <dminuoso> So (%) isnt some adhoc nonsense, it's just an implementation of that very hierarchy. :)
2021-10-06 19:29:49 +0200 <dminuoso> (or equivalent for profunctors)
2021-10-06 19:29:51 +0200 <monochrom> If you make the mistake of using a polymorphic function that needs (+) on a type, say T, that doesn't support (+), ...
2021-10-06 19:29:58 +0200 <sshine> as long as they provide an ergonomic, internally-consistent DSL, I don't mind that some parts are opaque. in fact, I prefer it, until I suddenly find that I don't. I guess you always reach a point where you wanna knock down a wall.
2021-10-06 19:30:18 +0200 <awpr> right, I'm not saying it _is_ ad-hoc, just that if you're approaching from a new learner perspective, it looks ad-hoc and nobody ever lets you see the underlying principle
2021-10-06 19:30:23 +0200 <dminuoso> awpr: Perhabs the ideal library would be backpack driven, such that you could pick your flavour.
2021-10-06 19:30:33 +0200 <monochrom> C++ be like "at line 1023 in the polymorphic function, it uses (+), which is not supported"
2021-10-06 19:30:42 +0200 <dminuoso> Assuming we had a working and documented backpack.
2021-10-06 19:30:46 +0200 <monochrom> Haskell be like "T is not an instance of Num".
2021-10-06 19:31:08 +0200 <dminuoso> Such that some users could use say `optics` in the raw profunctor style, and others could use it in the newtype style.
2021-10-06 19:31:17 +0200 <monochrom> I prefer the Haskell way. It's clearly more modular. Why do I need to know that it's line 1023 in the function I'm calling.
2021-10-06 19:31:55 +0200 <awpr> that would be pretty nice. I prefer the profunctor-only presentation over the weird hybrid van laarhoven + profunctors thing of `lens`, so I think a "veil-lifted" `optics` might be my ideal choice
2021-10-06 19:33:14 +0200 <awpr> C++ concepts have been around for ... *looks at standardization progress* ...oh.
2021-10-06 19:33:15 +0200 <dminuoso> awpr: Out of curiosity, what do you find to be "in the way" or "annoying" with the newtype style?
2021-10-06 19:33:35 +0200 <monochrom> C++ concept is very recent.
2021-10-06 19:33:43 +0200 <dminuoso> So far I haven't found anything that was arbitrarily constrained by it, everything that seems legal is also supported/allowed by optics.
2021-10-06 19:34:01 +0200 <dminuoso> With some minor bits like being unable to view through a traversal (which lens supports), that I absolutely loathe.
2021-10-06 19:34:16 +0200 <dminuoso> Oh that was poorly phrased. I absolutely loathe that lens does this.
2021-10-06 19:34:18 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
2021-10-06 19:34:22 +0200 <dminuoso> but that too is personal opinion
2021-10-06 19:34:22 +0200 <awpr> I don't have any actual experience with `optics`, it's just a philosophical preference
2021-10-06 19:34:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-10-06 19:34:32 +0200 <awpr> I'm sure it works great in practice
2021-10-06 19:35:14 +0200 <dminuoso> awpr: If that's even a philosophical preference, shouldn't we just abandon data and newtype entirely?
2021-10-06 19:35:32 +0200 <dminuoso> Or is there a limit to that philosophy?
2021-10-06 19:36:28 +0200 <dminuoso> In my experience, hiding implementation details behind a veil that you cant accidentally pierce is generally a good thing.
2021-10-06 19:36:47 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-10-06 19:36:51 +0200 <awpr> it's specific to optics: IMO there isn't a need for that to be a protected abstraction, because as far as I'm concerned the underlying mechanism is a clean enough thing to merit having a library for
2021-10-06 19:37:34 +0200 <dminuoso> Yeah, I guess I can sympathize with that.
2021-10-06 19:37:59 +0200 <dminuoso> profunctor optics is incredibly interesting, it has a certain mathematical beauty and it arises just naturally
2021-10-06 19:38:14 +0200 <awpr> I guess the laws for the various optic types contradict that position, though. I've often wanted to export "a thing that has the type of a lens but isn't a lens", which doesn't fit into the un-newtyped view very well
2021-10-06 19:38:39 +0200fef(~thedawn@user/thedawn)
2021-10-06 19:38:43 +0200 <awpr> like, it is a bit weird that `lens` imposes laws on types that exist independently of the `lens` package
2021-10-06 19:38:52 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04) (Remote host closed the connection)
2021-10-06 19:38:55 +0200 <awpr> (modulo type aliases)
2021-10-06 19:39:16 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04)
2021-10-06 19:39:33 +0200 <c_wraith> optics lets you create unlawful lenses
2021-10-06 19:39:56 +0200ThatsWhatIDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net)
2021-10-06 19:40:24 +0200 <awpr> hmm, I suppose that's a pragmatic choice. but it doesn't really change the situation
2021-10-06 19:40:42 +0200 <dminuoso> Yeah I think this is a bit orthogonal, c_wraith.
2021-10-06 19:40:45 +0200 <awpr> it's not that it's /possible/ to break the laws, it's that breaking the laws is a no-op
2021-10-06 19:41:41 +0200 <awpr> as far as `lens` and GHC's type checker are concerned, my `forall f. Functor f => (a -> f b) -> s -> f t` that doesn't claim to uphold the lens laws /is/ a `Lens`, even though I didn't say it was
2021-10-06 19:42:00 +0200 <dminuoso> awpr: I just dont see what real value you gain by having these details exposed. In my experience, it does somewhat frequently (depending your level of expertise and complexity of code) generate horrible to decipher diagnostics.
2021-10-06 19:42:34 +0200 <c_wraith> well, trivially, you gain the ability to do things the library authors did not divine that you'd need
2021-10-06 19:42:41 +0200 <dminuoso> About the only thing I can think of is that (.) is visually less annoying than (%), but emacs + font locking can address that if its a real issue...
2021-10-06 19:43:16 +0200 <dminuoso> c_wraith: But that's not true. The Optic data constructor is exported.
2021-10-06 19:43:29 +0200 <dminuoso> So you can break optics open or repackage them to construct anything of your chosing.
2021-10-06 19:43:43 +0200 <dminuoso> The entire set of possible compositions is already built
2021-10-06 19:43:56 +0200 <awpr> `view` being polymorphic over `Traversal`s would be one example of that. it's a fair point that it's error-prone, but I prefer less hand-holding over more
2021-10-06 19:44:19 +0200 <c_wraith> I don't see any way to use optics combinators with new things that aren't already in the library
2021-10-06 19:44:24 +0200 <dminuoso> awpr: you can still use foldOf mmm.
2021-10-06 19:44:37 +0200 <awpr> I'm not trying to convince anyone to ditch `optics`, just explaining my personal preference
2021-10-06 19:44:48 +0200emf(~emf@2620:10d:c090:400::5:ad58)
2021-10-06 19:44:52 +0200 <dminuoso> You just have to be explicit here, with `view` the behavior is completely hidden and relies on you ambiently knowing what a given composition even is
2021-10-06 19:44:56 +0200 <dminuoso> Absolutely!
2021-10-06 19:45:09 +0200 <dminuoso> Im not convincing you anyway, I really want to understand your position.
2021-10-06 19:45:20 +0200 <awpr> totally valid to prefer `optics`, too, and perhaps even a truly better choice for codebases that frequently get newcomers
2021-10-06 19:45:34 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 265 seconds)
2021-10-06 19:45:39 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 19:46:25 +0200 <maerwald> I don't think this is about newcomers
2021-10-06 19:46:57 +0200 <awpr> I feel the same way as with `instance Foldable ((,) a)`: it's a perfectly valid thing to have and use, and removing it is only desirable inasmuch as you want the compiler to second-guess you when you might have unintentionally used it
2021-10-06 19:47:24 +0200 <dminuoso> awpr: The difference with that instance though, is that it's very easy to see that the argument to some fold happens to be a tuple.,
2021-10-06 19:47:31 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-06 19:47:35 +0200 <awpr> okay, s/newcomers/non-ivory-tower-elitists/ :)
2021-10-06 19:47:44 +0200 <dminuoso> awpr: but realizing that your composition is suddenly no longer a lens but an (affine) traversal because there's a prism you didnt quite see... that's very hard
2021-10-06 19:47:51 +0200 <dminuoso> because as long as there's a monoid instance, it will just work
2021-10-06 19:47:54 +0200 <maerwald> awpr: I still don't understand
2021-10-06 19:48:46 +0200 <maerwald> optics isn't a watered down version of lens for newcomers or noobs
2021-10-06 19:48:52 +0200 <dminuoso> awpr: So with `view` you dont readily know whether this will fold a traversal, or view a singular point. That's my take on it.
2021-10-06 19:48:55 +0200 <maerwald> it's a drop-in replacement
2021-10-06 19:49:12 +0200 <dminuoso> maerwald: I dont think its their position that optics is for newcomers.
2021-10-06 19:49:12 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04) (Remote host closed the connection)
2021-10-06 19:49:22 +0200 <awpr> no, but it adds complexity for the sake of better error messages, and I don't find that necessary for my own preferences
2021-10-06 19:49:34 +0200 <maerwald> sure
2021-10-06 19:49:37 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04)
2021-10-06 19:49:50 +0200 <awpr> so, if it's just me working on something, I'd rather have an un-newtyped form
2021-10-06 19:49:54 +0200 <maerwald> but your preferences have little to do with newcomers
2021-10-06 19:50:06 +0200 <dminuoso> awpr: to be fair, optics does have its problems. at times the type machinery for the diagnostics fails, and I get *truly* cryptic errors involving the helper typefamilies that are designed to help me.
2021-10-06 19:50:19 +0200 <dminuoso> So yeah, rarely diagnostics get tons worse
2021-10-06 19:50:48 +0200 <maerwald> the main reason I use optics is because `view` is stricter and the lens Monoid constraint caused a pretty bad production bug for me
2021-10-06 19:51:05 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 19:51:16 +0200 <awpr> must just be an issue of poor wording. I just meant to acknowledge that for codebases with multiple contributors who aren't me or who don't share my admittedly eccentric preference, it's probably better to just use `optics`
2021-10-06 19:51:17 +0200 <dminuoso> maerwald: My thought of, you can easily just use foldOf, and make the monoid folding an explicit choice!
2021-10-06 19:52:14 +0200 <dminuoso> awpr: But perhaps you've already hilighted the core essence of what Im trying to understand.
2021-10-06 19:52:19 +0200 <awpr> hmm. "this caused a real bug" is usually a convincing argument for me
2021-10-06 19:52:27 +0200 <dminuoso> Your preference is based on a personal philosophical view
2021-10-06 19:52:45 +0200 <maerwald> my coding preferences are mainly shaped by PTSD experiences
2021-10-06 19:53:05 +0200 <awpr> er, "multiple contributors who aren't me" <- not to suggest there are multiple of me
2021-10-06 19:53:47 +0200 <awpr> notwithstanding any Champaign meteorologist, UK storm photographer, or former UK drug lord who might share my name
2021-10-06 19:53:50 +0200 <dminuoso> My personal story behind optics is, I never used lens becaue I could never translate these magical constraint compositions into what type of optic they were. And I like putting things like optics into bindings, but that conflicted with my other rule of annotating almost every binding.
2021-10-06 19:54:08 +0200 <dminuoso> And `optics` allowed me to do this, so `optics` is when I started using this DSL. :P
2021-10-06 19:55:43 +0200 <maerwald> I still haven't found a real use case for optics... it's more like convenience, being cool or having too much time on your hands. If you don't use them a lot, the intelectual complexity penalty isn't worth it most of the time
2021-10-06 19:55:53 +0200 <maerwald> because I can't understand then lens code I wrote a couple months ago
2021-10-06 19:56:03 +0200 <dminuoso> maerwald: yeah, we only use them extensively in one project
2021-10-06 19:56:08 +0200 <geekosaur> same here
2021-10-06 19:56:09 +0200 <dminuoso> but we really go bold with optics in that one. :)
2021-10-06 19:56:35 +0200 <geekosaur> every so often I look lens/optics over again and decide I don't really have a use for them yet
2021-10-06 19:56:54 +0200 <awpr> for me the only highly compelling use case is compositions of traversals, especially over things that don't fit the kind signature of `Traversable`
2021-10-06 19:57:05 +0200 <c_wraith> Man, optics really doesn't support most of the things I do with lenses. (trivial data access is boring. concise expression of complex data access is where it's at)
2021-10-06 19:57:16 +0200 <c_wraith> optics doesn't even have universeOf. :(
2021-10-06 19:58:10 +0200 <c_wraith> err. cosmosOf is the one I was thinking of. But optics doesn't have that, either
2021-10-06 19:59:00 +0200 <dminuoso> Mmm, why was I thinking optics had Plated
2021-10-06 20:00:11 +0200 <ProofTechnique> My main use of optics lately has been dealing with responses from really terribly designed GraphQL schemas. Nested optional data is _gross_
2021-10-06 20:00:32 +0200 <dminuoso> c_wraith: In some way this actually hilights how lenses/optics are sometimes used really well. You have this particular usage pattern you can best describe with this style.
2021-10-06 20:00:38 +0200 <dminuoso> And nothing else comes close.
2021-10-06 20:00:51 +0200 <c_wraith> yeah, that's true
2021-10-06 20:03:15 +0200 <dminuoso> https://gist.github.com/dminuoso/38033cec207a51cf191fad8976e69a40
2021-10-06 20:03:27 +0200 <dminuoso> This is the kind of pattern we use in our sdn compiler very often
2021-10-06 20:08:17 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-06 20:09:34 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 20:11:22 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04) (Remote host closed the connection)
2021-10-06 20:11:46 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04)
2021-10-06 20:12:44 +0200ThatsWhatIDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net) (Quit: Leaving)
2021-10-06 20:12:58 +0200ubert(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Remote host closed the connection)
2021-10-06 20:12:59 +0200ububert
2021-10-06 20:13:26 +0200emf(~emf@2620:10d:c090:400::5:ad58) (Ping timeout: 245 seconds)
2021-10-06 20:13:53 +0200mortemeur(~mortemeur@pool-173-76-107-201.bstnma.fios.verizon.net)
2021-10-06 20:17:52 +0200emf(~emf@163.114.132.5)
2021-10-06 20:20:06 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 20:20:23 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 20:21:42 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04) (Remote host closed the connection)
2021-10-06 20:22:07 +0200Null_A(~null_a@2601:645:8700:2290:7419:a622:3a5a:ee04)
2021-10-06 20:27:07 +0200kuribas(~user@ptr-25vy0i833ltdcqizn0k.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-10-06 20:27:20 +0200kaol(~kaol@178.62.241.234) (Remote host closed the connection)
2021-10-06 20:27:50 +0200ThatsWhatIDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net)
2021-10-06 20:27:54 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 20:30:59 +0200kimjetwav(~user@2607:fea8:235f:9730:733c:b68b:7b22:df97) (Remote host closed the connection)
2021-10-06 20:31:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f81d:7133:81c9:b91d) (Remote host closed the connection)
2021-10-06 20:37:46 +0200ThatsWhatIDo(~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net) (Quit: Leaving)
2021-10-06 20:38:24 +0200emf_(~emf@2620:10d:c090:400::5:ad58)
2021-10-06 20:40:14 +0200wonko(~wjc@62.115.229.50)
2021-10-06 20:40:31 +0200emf(~emf@163.114.132.5) (Ping timeout: 245 seconds)
2021-10-06 20:41:18 +0200ub(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 20:41:59 +0200ubert(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
2021-10-06 20:42:00 +0200ububert
2021-10-06 20:42:11 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 20:43:01 +0200emf_(~emf@2620:10d:c090:400::5:ad58) (Ping timeout: 245 seconds)
2021-10-06 20:44:59 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 20:45:07 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 20:45:29 +0200jespada(~jespada@2803:9800:9842:7a62:2d4b:7b80:ce15:fc84) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-10-06 20:46:06 +0200fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2021-10-06 20:47:00 +0200emf(~emf@2620:10d:c090:400::5:9760)
2021-10-06 20:48:18 +0200mmohammadi9812(~Mohammad@188.210.104.46)
2021-10-06 20:55:16 +0200NinjaTrappeur(~ninja@user/ninjatrappeur) (Ping timeout: 252 seconds)
2021-10-06 20:56:11 +0200yinghua(~yinghua@2800:2121:1400:900:550d:5356:b600:ab96) (Remote host closed the connection)
2021-10-06 20:56:34 +0200DNH(~DNH@2a02:8108:1100:16d8:a11a:d19d:8c20:4068)
2021-10-06 20:57:44 +0200yinghua(~yinghua@2800:2121:1400:900:9813:e2cc:52c1:9b50)
2021-10-06 21:03:07 +0200sneedsfeed(~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Ping timeout: 256 seconds)
2021-10-06 21:03:14 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 21:04:02 +0200Pickchea(~private@user/pickchea)
2021-10-06 21:07:01 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2021-10-06 21:07:34 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-10-06 21:07:56 +0200NinjaTrappeur(~ninja@user/ninjatrappeur)
2021-10-06 21:09:48 +0200ubert(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Quit: ubert)
2021-10-06 21:09:49 +0200jespada(~jespada@2803:9800:9842:7a62:24b8:8bfb:be5c:585b)
2021-10-06 21:09:57 +0200raoul(~raoul@95.179.203.88) (Quit: Ping timeout (120 seconds))
2021-10-06 21:12:20 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
2021-10-06 21:13:39 +0200unmanbearpig(~unmanbear@user/unmanbearpig) (Ping timeout: 245 seconds)
2021-10-06 21:14:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 21:14:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 21:14:07 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 21:15:28 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 265 seconds)
2021-10-06 21:16:03 +0200ubert(~Thunderbi@178.115.45.189.wireless.dyn.drei.com)
2021-10-06 21:16:32 +0200kawpuh(~kawpuh@66.42.81.80) (Quit: Ping timeout (120 seconds))
2021-10-06 21:16:48 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f513:8be8:adee:de02)
2021-10-06 21:18:22 +0200CiaoSen(~Jura@p200300c9571e34002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-10-06 21:19:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f513:8be8:adee:de02) (Remote host closed the connection)
2021-10-06 21:23:58 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-10-06 21:29:13 +0200elcaro(~anonymous@45.32.191.75) (Ping timeout: 252 seconds)
2021-10-06 21:30:02 +0200Andrew(~andrew@user/andrewyu) (Remote host closed the connection)
2021-10-06 21:30:27 +0200ubert(~Thunderbi@178.115.45.189.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
2021-10-06 21:30:57 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 21:31:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-10-06 21:34:08 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 21:34:28 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
2021-10-06 21:34:46 +0200byorgey(~byorgey@155.138.238.211) (Ping timeout: 252 seconds)
2021-10-06 21:35:38 +0200tfeb(~tfb@88.98.95.237)
2021-10-06 21:36:26 +0200byorgey(~byorgey@155.138.238.211)
2021-10-06 21:37:38 +0200raoul(~raoul@95.179.203.88)
2021-10-06 21:40:30 +0200AndrewYu(~andrew@user/andrewyu)
2021-10-06 21:40:48 +0200elcaro(~anonymous@45.32.191.75)
2021-10-06 21:41:14 +0200kawpuh(~kawpuh@66.42.81.80)
2021-10-06 21:41:22 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-10-06 21:46:04 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 21:47:22 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Ping timeout: 265 seconds)
2021-10-06 21:47:25 +0200unmanbearpig(~unmanbear@user/unmanbearpig)
2021-10-06 21:47:38 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-10-06 21:50:45 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-06 21:53:39 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-10-06 21:55:10 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2021-10-06 21:55:11 +0200hendursaga(~weechat@user/hendursaga) (Remote host closed the connection)
2021-10-06 21:55:28 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2021-10-06 21:55:34 +0200hendursaga(~weechat@user/hendursaga)
2021-10-06 21:58:51 +0200cigsender(~mbrown@74.124.58.162) (Quit: leaving)
2021-10-06 22:00:47 +0200mmohammadi9812(~Mohammad@188.210.104.46) (Remote host closed the connection)
2021-10-06 22:01:10 +0200acidjnk_new(~acidjnk@p200300d0c703cb14e484f2ea659578d3.dip0.t-ipconnect.de)
2021-10-06 22:04:47 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-10-06 22:05:02 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 246 seconds)
2021-10-06 22:05:31 +0200yinghua(~yinghua@2800:2121:1400:900:9813:e2cc:52c1:9b50) (Ping timeout: 245 seconds)
2021-10-06 22:06:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-10-06 22:06:37 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-10-06 22:07:24 +0200juhp(~juhp@128.106.188.220)
2021-10-06 22:09:26 +0200tfeb(~tfb@88.98.95.237) (Quit: died)
2021-10-06 22:11:43 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 22:15:09 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 22:16:50 +0200yinghua(~yinghua@2800:2121:1400:900:9813:e2cc:52c1:9b50)
2021-10-06 22:18:18 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 22:19:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f513:8be8:adee:de02)
2021-10-06 22:21:21 +0200wonko(~wjc@62.115.229.50) (Ping timeout: 245 seconds)
2021-10-06 22:23:11 +0200cigsender(~cigsender@74.124.58.162)
2021-10-06 22:23:13 +0200terrorjack(~terrorjac@static.3.200.12.49.clients.your-server.de)
2021-10-06 22:23:51 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f513:8be8:adee:de02) (Ping timeout: 245 seconds)
2021-10-06 22:24:35 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2021-10-06 22:26:32 +0200mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-10-06 22:27:06 +0200mei(~mei@user/mei)
2021-10-06 22:27:24 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 245 seconds)
2021-10-06 22:27:38 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net)
2021-10-06 22:33:14 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 245 seconds)
2021-10-06 22:34:18 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 22:39:05 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 265 seconds)
2021-10-06 22:41:44 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-10-06 22:42:27 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 22:44:29 +0200jumper149(~jumper149@80.240.31.34)
2021-10-06 22:47:24 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 22:49:14 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2021-10-06 22:49:25 +0200hyiltiz(~quassel@31.220.5.250)
2021-10-06 22:53:16 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-06 22:53:57 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
2021-10-06 22:54:47 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-10-06 23:09:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-10-06 23:09:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-10-06 23:09:30 +0200wroathe(~wroathe@user/wroathe)
2021-10-06 23:09:36 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-10-06 23:11:00 +0200jjhoo(~jahakala@user/jjhoo) (Ping timeout: 260 seconds)
2021-10-06 23:14:22 +0200neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 265 seconds)
2021-10-06 23:14:51 +0200mei(~mei@user/mei) (Ping timeout: 265 seconds)
2021-10-06 23:15:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:f513:8be8:adee:de02)
2021-10-06 23:17:42 +0200ru0mad(~ru0mad@82-64-17-144.subs.proxad.net)
2021-10-06 23:18:50 +0200ru0mad(~ru0mad@82-64-17-144.subs.proxad.net) ()
2021-10-06 23:19:27 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-10-06 23:19:54 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2021-10-06 23:22:12 +0200Lord_of_Life_Lord_of_Life
2021-10-06 23:23:28 +0200Cajun(~Cajun@user/cajun)
2021-10-06 23:23:45 +0200bdaed(~bdaed@185.234.208.208.r.toneticgroup.pl)
2021-10-06 23:24:16 +0200chomwitt(~chomwitt@94.66.61.137) (Ping timeout: 245 seconds)
2021-10-06 23:24:43 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2021-10-06 23:25:21 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 23:25:28 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-10-06 23:28:38 +0200ec(~ec@gateway/tor-sasl/ec)
2021-10-06 23:33:48 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-10-06 23:34:49 +0200fendor(~fendor@178.115.78.172.wireless.dyn.drei.com) (Remote host closed the connection)
2021-10-06 23:37:59 +0200brainfreeze(~brainfree@2a03:1b20:4:f011::20d)
2021-10-06 23:38:51 +0200bdaed(~bdaed@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 245 seconds)
2021-10-06 23:43:41 +0200abrantesasf(~abrantesa@187.36.170.211)
2021-10-06 23:45:41 +0200yinghua(~yinghua@2800:2121:1400:900:9813:e2cc:52c1:9b50) (Remote host closed the connection)
2021-10-06 23:45:58 +0200yinghua(~yinghua@2800:2121:1400:900:550d:5356:b600:ab96)
2021-10-06 23:50:46 +0200dermato(~dermatobr@cpe-70-114-219-76.austin.res.rr.com)
2021-10-06 23:53:36 +0200max22-(~maxime@2a01cb08833598007fcfb2955ee7c812.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-10-06 23:54:24 +0200Cajun(~Cajun@user/cajun) (Quit: Client closed)