2021/08/28

2021-08-28 00:00:43 +0200sszark(~sszark@h-155-4-128-59.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
2021-08-28 00:04:28 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-08-28 00:05:03 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 250 seconds)
2021-08-28 00:05:37 +0200azeem(~azeem@5.168.199.98)
2021-08-28 00:12:10 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 240 seconds)
2021-08-28 00:13:41 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-08-28 00:14:21 +0200azeem(~azeem@5.168.199.98)
2021-08-28 00:14:55 +0200Cajun(~Cajun@user/cajun)
2021-08-28 00:17:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5b4:3a1f:2123:21ea) (Remote host closed the connection)
2021-08-28 00:19:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5b4:3a1f:2123:21ea)
2021-08-28 00:19:41 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 00:21:34 +0200doors(~a@p200300ef970830a645b8de8f8152bf35.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
2021-08-28 00:22:10 +0200son0p(~ff@181.136.122.143)
2021-08-28 00:22:20 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-08-28 00:23:18 +0200Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
2021-08-28 00:24:01 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
2021-08-28 00:25:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-28 00:29:24 +0200lavaman(~lavaman@98.38.249.169)
2021-08-28 00:33:05 +0200Gurkenglas(~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) (Ping timeout: 248 seconds)
2021-08-28 00:33:27 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-08-28 00:35:14 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-28 00:41:46 +0200CnnibisIndicaCannabisIndica
2021-08-28 00:43:07 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-08-28 00:43:40 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 240 seconds)
2021-08-28 00:45:47 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-08-28 00:47:50 +0200azeem(~azeem@5.168.199.98)
2021-08-28 00:48:32 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
2021-08-28 00:49:49 +0200 <jle`> hm .. what's the version of %%= for lens that only modifies/doesn't return a result?
2021-08-28 00:50:25 +0200 <glguy> %= ?
2021-08-28 00:50:26 +0200 <jle`> #mylens %%= \x -> ((), f x)
2021-08-28 00:50:44 +0200 <jle`> ah, thanks :)
2021-08-28 00:51:10 +0200 <jle`> ooh, it was in Control.Lens.Setter
2021-08-28 00:55:34 +0200minimario(~minimario@2603:900a:1600:ba00:a4f2:2ae3:8f32:437f) (Ping timeout: 246 seconds)
2021-08-28 00:57:27 +0200mikoto-chan(~mikoto-ch@83.137.2.251) (Ping timeout: 240 seconds)
2021-08-28 00:58:17 +0200 <hololeap> what was the function that takes a list and repeats infinitely?
2021-08-28 00:59:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5b4:3a1f:2123:21ea) (Remote host closed the connection)
2021-08-28 01:00:14 +0200 <nitrix> repeat ._.
2021-08-28 01:00:26 +0200 <nitrix> Oh, cycle?
2021-08-28 01:00:40 +0200 <nitrix> > cycle [1,2,3]
2021-08-28 01:00:41 +0200 <lambdabot> [1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2...
2021-08-28 01:09:22 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-08-28 01:09:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5b4:3a1f:2123:21ea)
2021-08-28 01:11:21 +0200vysn(~vysn@user/vysn) (Ping timeout: 250 seconds)
2021-08-28 01:13:57 +0200eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-28 01:15:34 +0200argento(~argent0@191.81.228.237) (Ping timeout: 250 seconds)
2021-08-28 01:15:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b5b4:3a1f:2123:21ea) (Read error: Connection reset by peer)
2021-08-28 01:17:32 +0200argento(~argent0@168-227-96-26.ptr.westnet.com.ar)
2021-08-28 01:25:19 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 252 seconds)
2021-08-28 01:27:37 +0200azeem(~azeem@5.168.199.98)
2021-08-28 01:28:55 +0200dajoer(~david@user/gvx)
2021-08-28 01:38:47 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 240 seconds)
2021-08-28 01:43:51 +0200acidjnk_new(~acidjnk@p200300d0c72b95925da55fe159cc0756.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-28 01:44:58 +0200azeem(~azeem@5.168.199.98)
2021-08-28 01:49:31 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 252 seconds)
2021-08-28 01:50:11 +0200azeem(~azeem@5.168.199.98)
2021-08-28 02:01:05 +0200azeem(~azeem@5.168.199.98) (Ping timeout: 248 seconds)
2021-08-28 02:05:56 +0200 <hololeap> cycle. thanks
2021-08-28 02:08:51 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:f142:8765:520:6c04)
2021-08-28 02:09:12 +0200yin[m](~zwromatri@2001:470:69fc:105::1d4)
2021-08-28 02:11:09 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds)
2021-08-28 02:11:26 +0200MQ-17J(~MQ-17J@8.6.144.209)
2021-08-28 02:12:42 +0200azeem(~azeem@5.168.221.147)
2021-08-28 02:15:55 +0200MQ-17J(~MQ-17J@8.6.144.209) (Ping timeout: 250 seconds)
2021-08-28 02:16:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 02:21:25 +0200azeem(~azeem@5.168.221.147) (Ping timeout: 252 seconds)
2021-08-28 02:21:34 +0200azeem(~azeem@5.168.221.147)
2021-08-28 02:22:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 02:28:01 +0200azeem(~azeem@5.168.221.147) (Ping timeout: 252 seconds)
2021-08-28 02:28:47 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-28 02:29:59 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:f142:8765:520:6c04) (Remote host closed the connection)
2021-08-28 02:30:31 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:f142:8765:520:6c04)
2021-08-28 02:31:52 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-08-28 02:34:27 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:f142:8765:520:6c04) (Ping timeout: 240 seconds)
2021-08-28 02:37:08 +0200markpythonicbtc(~textual@2601:647:5a00:35:f814:103:43a8:3466) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-28 02:37:28 +0200azeem(~azeem@5.168.221.147)
2021-08-28 02:38:24 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-08-28 02:38:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-08-28 02:38:28 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2021-08-28 02:38:45 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 02:39:38 +0200Lord_of_Life_Lord_of_Life
2021-08-28 02:41:26 +0200img(~img@user/img)
2021-08-28 02:50:09 +0200azeem(~azeem@5.168.221.147) (Ping timeout: 248 seconds)
2021-08-28 02:50:17 +0200iqubic(~user@c-67-180-134-109.hsd1.ca.comcast.net)
2021-08-28 02:50:24 +0200azeem(~azeem@5.168.221.147)
2021-08-28 02:51:32 +0200 <iqubic> So, I'm trying to remember how to use parsec, and I'm hitting a roadblock. I would like to be able to parse a string full of only digits (I.E. "1432912902156") into a [Int]. What's the best way to do that?
2021-08-28 02:52:42 +0200 <pavonia> To [1,4,3,2,...] in that example?
2021-08-28 02:53:07 +0200 <iqubic> Yes. Correct.
2021-08-28 02:53:28 +0200 <iqubic> I want to parse it to a [Int] where each element is in the range 0-9 inclusive
2021-08-28 02:53:29 +0200markpythonicbtc(~textual@2601:647:5a00:35:c862:7d44:846c:a0b5)
2021-08-28 02:54:13 +0200 <pavonia> many1 $ (\c -> ord c - ord '0') <$> satisfy isDigit
2021-08-28 02:55:18 +0200 <iqubic> How does that work?
2021-08-28 02:56:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-28 02:56:20 +0200 <dsal> > ord '3' - ord '0'
2021-08-28 02:56:22 +0200 <lambdabot> 3
2021-08-28 02:56:45 +0200 <dsal> I think megaparsec has a digit.
2021-08-28 02:57:37 +0200 <dsal> > digitToInt '3'
2021-08-28 02:57:39 +0200 <lambdabot> 3
2021-08-28 02:57:59 +0200 <pavonia> Ah nice
2021-08-28 02:58:21 +0200 <dsal> Megaparsec has digitChar. I assume that's `satisfy isDigit`
2021-08-28 02:58:55 +0200 <dsal> digitChar = satisfy isDigit <?> "digit"
2021-08-28 02:59:10 +0200 <pavonia> Is GHC able to optimize constant function application like ord '0'?
2021-08-28 02:59:32 +0200 <eggplant_> yes
2021-08-28 03:00:45 +0200 <dsal> digitToInt includes `dec = ord c - ord '0'` but is more complicated with hex and what-not
2021-08-28 03:02:36 +0200 <pavonia> > map digitToInt "09afg"
2021-08-28 03:02:38 +0200 <lambdabot> [0,9,10,15,*Exception: Char.digitToInt: not a digit 'g'
2021-08-28 03:03:01 +0200 <dsal> Yeah, it's also partial
2021-08-28 03:04:15 +0200 <pavonia> > digitToInt '0'
2021-08-28 03:04:16 +0200 <lambdabot> *Exception: Char.digitToInt: not a digit '\65296'
2021-08-28 03:04:23 +0200 <pavonia> Too bad
2021-08-28 03:05:16 +0200 <pavonia> There are many Unicode characters that have a numerical value
2021-08-28 03:08:40 +0200roboguy_(~roboguy_@136.37.123.186)
2021-08-28 03:09:39 +0200roboguy_(~roboguy_@136.37.123.186) (Client Quit)
2021-08-28 03:12:01 +0200neurocyte0(~neurocyte@45.131.39.239)
2021-08-28 03:12:01 +0200neurocyte0(~neurocyte@45.131.39.239) (Changing host)
2021-08-28 03:12:01 +0200neurocyte0(~neurocyte@user/neurocyte)
2021-08-28 03:12:34 +0200lavaman(~lavaman@98.38.249.169)
2021-08-28 03:13:54 +0200xsperry(~as@user/xsperry) ()
2021-08-28 03:14:19 +0200xsperry(~as@user/xsperry)
2021-08-28 03:14:25 +0200neurocyte(~neurocyte@user/neurocyte) (Ping timeout: 250 seconds)
2021-08-28 03:14:25 +0200neurocyte0neurocyte
2021-08-28 03:15:00 +0200kimjetwav(~user@2607:fea8:235f:9730:98d1:a22e:1d0c:6a1f) (Remote host closed the connection)
2021-08-28 03:15:49 +0200markpythonicbtc(~textual@2601:647:5a00:35:c862:7d44:846c:a0b5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-28 03:17:01 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-28 03:22:41 +0200azeem(~azeem@5.168.221.147) (Ping timeout: 248 seconds)
2021-08-28 03:23:01 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-08-28 03:23:14 +0200kimjetwav(~user@2607:fea8:235f:9730:4718:18aa:30c8:2ab8)
2021-08-28 03:23:18 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 03:23:21 +0200 <iqubic> So is there no built in megaparsec parser for single digit numbers? I have to roll my own?
2021-08-28 03:27:17 +0200azeem(~azeem@5.168.221.147)
2021-08-28 03:27:21 +0200 <dsal> @hoogle digitChar
2021-08-28 03:27:21 +0200 <lambdabot> Text.Megaparsec.Byte digitChar :: (MonadParsec e s m, Token s ~ Word8) => m (Token s)
2021-08-28 03:27:21 +0200 <lambdabot> Text.Megaparsec.Char digitChar :: (MonadParsec e s m, Token s ~ Char) => m (Token s)
2021-08-28 03:27:21 +0200 <lambdabot> Toml.Parser.Core digitChar :: (MonadParsec e s m, Token s ~ Char) => m (Token s)
2021-08-28 03:27:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 03:29:01 +0200 <iqubic> What I want is this:
2021-08-28 03:29:03 +0200 <iqubic> type Parser = Parsec Void String
2021-08-28 03:29:09 +0200 <iqubic> singleDigit :: Num a => Parser a
2021-08-28 03:29:31 +0200 <iqubic> Which will parse a single character, and succeed only if that character is a digit.
2021-08-28 03:30:12 +0200markpythonicbtc(~textual@2601:647:5a00:35:15d1:827c:596e:b228)
2021-08-28 03:30:16 +0200sim590(~simon@76.65.67.73)
2021-08-28 03:30:19 +0200 <iqubic> How can get that?
2021-08-28 03:30:36 +0200 <hololeap> iqubic: look at Text.Parsec.Char.alphaNum
2021-08-28 03:30:42 +0200 <dsal> You fmap digitToInt over digitChar
2021-08-28 03:31:00 +0200 <iqubic> dsal, won't that give me an Int?
2021-08-28 03:31:13 +0200 <iqubic> won't I have to then fmap fromIntegral?
2021-08-28 03:31:48 +0200 <dsal> OK, then `fmap (fromIntegral . digitToInt) digitChar`
2021-08-28 03:32:05 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-08-28 03:32:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-08-28 03:33:26 +0200hololeapmeant .digit
2021-08-28 03:35:41 +0200 <iqubic> Weird. Megaparsec only has digitChar.
2021-08-28 03:37:04 +0200 <dsal> I guess if you're going partial, you've also got `fmap read digitChar`
2021-08-28 03:37:26 +0200 <iqubic> Yeah, I suppose.
2021-08-28 03:37:54 +0200 <iqubic> But it's nice to have this as a megaparsec parser, so that I can put this into a much large parser later.
2021-08-28 03:38:10 +0200xff0x(~xff0x@2001:1a81:53dc:be00:a197:89df:f531:cbff) (Ping timeout: 240 seconds)
2021-08-28 03:38:18 +0200 <dsal> You can always just give that a name.
2021-08-28 03:38:40 +0200 <iqubic> But for my usecase this is entirely overkill. I'm just solving Advent Of Code 2017 Day 1 right now. https://adventofcode.com/2017/day/1
2021-08-28 03:39:04 +0200 <dsal> Oh, huh. I guess I've not done that year.
2021-08-28 03:40:14 +0200xff0x(~xff0x@2001:1a81:5215:d000:44b2:e3e1:102e:1373)
2021-08-28 03:40:17 +0200 <iqubic> Basically part 1 is, given a large number, find all the digits such that the digit at position N matches the digit at position N + 1, and sum those.
2021-08-28 03:40:41 +0200 <iqubic> Assume the list is circular, so that the first digit comes right after the last one.
2021-08-28 03:41:27 +0200 <dsal> What type were you planning to use?
2021-08-28 03:41:28 +0200 <dsal> > digitToInt <$> "12345"
2021-08-28 03:41:29 +0200 <lambdabot> [1,2,3,4,5]
2021-08-28 03:41:43 +0200 <monochrom> "Num a" is the overkill.
2021-08-28 03:41:56 +0200 <iqubic> I was planning on using Int here.
2021-08-28 03:42:49 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-08-28 03:43:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 03:43:18 +0200 <iqubic> Also, "pairs (x:xs) = let cyclic = xs ++ [x] in zip cyclic (tail cyclic)" is really powerful.
2021-08-28 03:43:53 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
2021-08-28 03:44:18 +0200 <iqubic> Then I just mapMaybe to both turn pairs into single Ints and filter out the non-matching pairs. Then I sum that.
2021-08-28 03:46:32 +0200falafel(~falafel@2600:100e:b144:da16:a499:a934:ae0d:b97)
2021-08-28 03:46:55 +0200 <hololeap> % :m + Text.Parsec
2021-08-28 03:46:55 +0200 <yahb> hololeap:
2021-08-28 03:46:58 +0200 <dsal> I don't quite understand why `pairs` is powerful there. It seems very specific.
2021-08-28 03:47:04 +0200 <hololeap> % :m + Text.Parsec.Char
2021-08-28 03:47:04 +0200 <yahb> hololeap:
2021-08-28 03:47:11 +0200 <hololeap> % parseDigits = fmap (fmap (read . pure)) (Text.Parsec.many digit)
2021-08-28 03:47:11 +0200 <yahb> hololeap:
2021-08-28 03:47:17 +0200 <hololeap> % parseTest (parseDigits :: Parsec String () [Int]) "243439102"
2021-08-28 03:47:18 +0200 <yahb> hololeap: [2,4,3,4,3,9,1,0,2]
2021-08-28 03:47:23 +0200 <hololeap> iqubic: ^ ?
2021-08-28 03:47:43 +0200alx741(~alx741@181.196.68.187) (Quit: alx741)
2021-08-28 03:47:56 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-08-28 03:53:25 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds)
2021-08-28 03:53:42 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 03:54:09 +0200 <iqubic> hololeap, yes that.
2021-08-28 03:54:21 +0200 <iqubic> Why are you fmaping twice?
2021-08-28 03:54:37 +0200aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-08-28 03:54:55 +0200 <dsal> It's reading the result of a parse inside of the parser.
2021-08-28 03:55:09 +0200 <hololeap> because it's operating on `Parsec [Char]` , so there are two functors to get up through to operate on the Char
2021-08-28 03:55:13 +0200azeem(~azeem@5.168.221.147) (Ping timeout: 248 seconds)
2021-08-28 03:55:27 +0200azeem(~azeem@5.168.221.147)
2021-08-28 03:56:00 +0200 <hololeap> the `pure` turns that Char into [Char] (aka String)
2021-08-28 03:56:01 +0200zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-08-28 03:56:10 +0200 <hololeap> and then it gets read
2021-08-28 03:57:08 +0200 <hololeap> I could have also written it: fmap (map (read . pure))
2021-08-28 03:57:39 +0200 <hololeap> or: fmap (map (read . ( \x -> [x] ) ))
2021-08-28 03:59:17 +0200 <iqubic> Ah. I see. Makes sense.
2021-08-28 04:00:25 +0200 <dsal> Oh weird. I apparently have stars on this, but I have no idea where my code went.
2021-08-28 04:01:01 +0200chris(~chris@81.96.113.213)
2021-08-28 04:01:04 +0200chrisGuest9286
2021-08-28 04:01:39 +0200zaquest(~notzaques@5.128.210.178)
2021-08-28 04:03:45 +0200 <hololeap> iqubic: so right after the `pure` the type would be `Parsec http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Char` aka `Parsec [String]`, and then the `read` inside the map turns this into `Read a => Parsec [a]`
2021-08-28 04:04:01 +0200 <hololeap> that was weird
2021-08-28 04:04:29 +0200 <hololeap> * double-list of Char
2021-08-28 04:05:10 +0200hololeapturns off "auto-replace" "feature" in the IRC client
2021-08-28 04:05:22 +0200Pent(sid313808@id-313808.tooting.irccloud.com) (Ping timeout: 256 seconds)
2021-08-28 04:05:28 +0200 <monochrom> Type-level URLs!
2021-08-28 04:05:36 +0200 <hololeap> lol
2021-08-28 04:06:14 +0200gonz__(sid304396@id-304396.tooting.irccloud.com) (Ping timeout: 258 seconds)
2021-08-28 04:07:21 +0200 <iqubic> Anyways, mapMaybe is an excellent list function. Does there exist such a function that works on all Foldables, or would that not really make sense?
2021-08-28 04:07:21 +0200Pent(sid313808@id-313808.tooting.irccloud.com)
2021-08-28 04:07:23 +0200 <hololeap> *so right after the `pure` the type would be `Parsec [[Char]]` aka `Parsec [String]`, and then the `read` inside the map turns this into `Read a => Parsec [a]`
2021-08-28 04:07:34 +0200 <hololeap> iqubic: witherable
2021-08-28 04:07:38 +0200hendi(sid489601@id-489601.tooting.irccloud.com) (Ping timeout: 256 seconds)
2021-08-28 04:07:53 +0200gonz__(sid304396@tooting.irccloud.com)
2021-08-28 04:08:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-08-28 04:08:12 +0200Adeon(sid418992@id-418992.tooting.irccloud.com) (Ping timeout: 256 seconds)
2021-08-28 04:08:13 +0200 <iqubic> But after the pure, you just get a list of strings of length 1. Is that really what you need in order to make the call to read typecheck?
2021-08-28 04:09:20 +0200christiaanb(sid84827@id-84827.tooting.irccloud.com) (Ping timeout: 256 seconds)
2021-08-28 04:09:37 +0200 <hololeap> it always typechecks... because it's partial. it will throw a pure error if it doesn't read, and we're depending on parsec to give it something that it can
2021-08-28 04:10:14 +0200Pent(sid313808@id-313808.tooting.irccloud.com) (Max SendQ exceeded)
2021-08-28 04:10:22 +0200hendi(sid489601@id-489601.tooting.irccloud.com)
2021-08-28 04:10:58 +0200Pent(sid313808@id-313808.tooting.irccloud.com)
2021-08-28 04:11:02 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 04:11:04 +0200nrr(sid20938@id-20938.tooting.irccloud.com) (Ping timeout: 250 seconds)
2021-08-28 04:11:46 +0200christiaanb(sid84827@tooting.irccloud.com)
2021-08-28 04:12:00 +0200adamse(sid72084@user/adamse) (Ping timeout: 272 seconds)
2021-08-28 04:12:06 +0200Adeon(sid418992@id-418992.tooting.irccloud.com)
2021-08-28 04:12:12 +0200 <hololeap> @hoogle Witherable
2021-08-28 04:12:12 +0200 <lambdabot> Data.Witherable.Class class (Traversable t, Filterable t) => Witherable t
2021-08-28 04:12:12 +0200 <lambdabot> package witherable
2021-08-28 04:12:12 +0200 <lambdabot> package witherable-class
2021-08-28 04:12:28 +0200hsiktas(sid224847@tooting.irccloud.com) (Ping timeout: 268 seconds)
2021-08-28 04:12:38 +0200 <hololeap> iqubic: ^ -- in regards to your second question about mapMaybe
2021-08-28 04:13:21 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-28 04:13:43 +0200 <dsal> :t read
2021-08-28 04:13:44 +0200 <lambdabot> Read a => String -> a
2021-08-28 04:14:01 +0200MQ-17J(~MQ-17J@8.6.144.209)
2021-08-28 04:14:40 +0200PotatoGim(sid99505@tooting.irccloud.com) (Ping timeout: 258 seconds)
2021-08-28 04:14:43 +0200adamse(sid72084@user/adamse)
2021-08-28 04:14:53 +0200 <hololeap> pure error meaning a runtime error that can't be caught, e.g. `head []`
2021-08-28 04:15:01 +0200hsiktas(sid224847@id-224847.tooting.irccloud.com)
2021-08-28 04:15:02 +0200 <hololeap> (or maybe you can in IO somehow... can't remember)
2021-08-28 04:15:59 +0200nrr(sid20938@id-20938.tooting.irccloud.com)
2021-08-28 04:16:36 +0200 <Cale> You can, but you definitely don't want to be forced to. I'd sooner fork a library than try to catch an exception it's throwing from evaluation.
2021-08-28 04:16:55 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2021-08-28 04:17:50 +0200 <hololeap> I think that calling `read` here is safe because the input is coming from parsec's `digit`
2021-08-28 04:17:52 +0200elf_fortrez(~elf_fortr@adsl-72-50-4-145.prtc.net) (Ping timeout: 246 seconds)
2021-08-28 04:18:51 +0200 <Cale> if the list is nonempty
2021-08-28 04:18:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-08-28 04:19:02 +0200 <Cale> You can also use reads
2021-08-28 04:19:22 +0200 <hololeap> which list needs to be nonempty?
2021-08-28 04:19:35 +0200 <Cale> the string you're parsing
2021-08-28 04:19:58 +0200 <hololeap> the string is made by running (\x -> [x]) on a Char from parsec
2021-08-28 04:20:11 +0200 <hololeap> so that won't be a problem
2021-08-28 04:20:40 +0200 <Cale> ah, yeah
2021-08-28 04:22:07 +0200falafel(~falafel@2600:100e:b144:da16:a499:a934:ae0d:b97) (Read error: Connection reset by peer)
2021-08-28 04:24:04 +0200Boarders(sid425905@id-425905.tooting.irccloud.com) (Ping timeout: 250 seconds)
2021-08-28 04:24:35 +0200PotatoGim(sid99505@id-99505.tooting.irccloud.com)
2021-08-28 04:24:37 +0200 <hololeap> iqubic: if you use that parser, be sure to change the signature to: (Stream s m Char, Num a, Read a) => ParsecT s u m [a]
2021-08-28 04:24:38 +0200integral(sid296274@user/integral) (Ping timeout: 256 seconds)
2021-08-28 04:25:00 +0200 <hololeap> so that a) it's more flexible b) you can't try to parse anything other than a Num
2021-08-28 04:25:45 +0200AlistairB(~AlistairB@121-200-5-212.79c805.syd.nbn.aussiebb.net)
2021-08-28 04:26:53 +0200integral(sid296274@user/integral)
2021-08-28 04:27:16 +0200Boarders(sid425905@id-425905.tooting.irccloud.com)
2021-08-28 04:27:55 +0200 <iqubic> hololeap: I'm using this signature:
2021-08-28 04:28:05 +0200td_(~td@94.134.91.64) (Ping timeout: 250 seconds)
2021-08-28 04:28:10 +0200 <iqubic> type Parser = Parsec Void String
2021-08-28 04:28:17 +0200 <iqubic> singleDigit :: Num a => Parser a
2021-08-28 04:28:29 +0200 <iqubic> Using definitions from Megaparsec.
2021-08-28 04:28:31 +0200kimjetwav(~user@2607:fea8:235f:9730:4718:18aa:30c8:2ab8) (Ping timeout: 250 seconds)
2021-08-28 04:28:56 +0200 <hololeap> I think you'll need (Read a) as well
2021-08-28 04:28:57 +0200MQ-17J(~MQ-17J@8.6.144.209) (Ping timeout: 250 seconds)
2021-08-28 04:29:57 +0200td_(~td@muedsl-82-207-238-049.citykom.de)
2021-08-28 04:32:07 +0200azeem(~azeem@5.168.221.147) (Ping timeout: 240 seconds)
2021-08-28 04:32:23 +0200azeem(~azeem@5.168.207.77)
2021-08-28 04:32:27 +0200 <iqubic> I won't, if I'm using this definition: "singleDigit = fmap (fromIntegral . digitToInt) digitChar"
2021-08-28 04:32:46 +0200 <iqubic> :t digitToInt
2021-08-28 04:32:47 +0200 <lambdabot> Char -> Int
2021-08-28 04:32:55 +0200 <iqubic> :t digitChar
2021-08-28 04:32:56 +0200 <lambdabot> error: Variable not in scope: digitChar
2021-08-28 04:33:17 +0200 <iqubic> digitChar being this: https://hackage.haskell.org/package/megaparsec-9.1.0/docs/Text-Megaparsec-Char.html#v:digitChar
2021-08-28 04:34:04 +0200 <iqubic> digitChar = satisfy isDigit
2021-08-28 04:34:09 +0200 <iqubic> :t isDigit
2021-08-28 04:34:10 +0200 <lambdabot> Char -> Bool
2021-08-28 04:42:10 +0200matthias1(~igloo@casewireless11.cwru.edu)
2021-08-28 04:43:13 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-08-28 04:43:27 +0200azeem(~azeem@5.168.207.77) (Ping timeout: 240 seconds)
2021-08-28 04:44:39 +0200matthias1(~igloo@casewireless11.cwru.edu) (Remote host closed the connection)
2021-08-28 04:48:00 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-28 04:54:57 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-08-28 04:55:09 +0200azeem(~azeem@5.168.207.77)
2021-08-28 05:01:27 +0200azeem(~azeem@5.168.207.77) (Ping timeout: 250 seconds)
2021-08-28 05:08:46 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-08-28 05:08:59 +0200redeveder(~user@221.232.105.47)
2021-08-28 05:10:17 +0200azeem(~azeem@5.168.207.77)
2021-08-28 05:11:16 +0200img(~img@user/img)
2021-08-28 05:13:27 +0200 <dsal> digitToInt is still partial.
2021-08-28 05:16:52 +0200otto_s(~user@p5de2f51d.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-08-28 05:18:36 +0200otto_s(~user@p5de2f7f6.dip0.t-ipconnect.de)
2021-08-28 05:25:12 +0200HarveyPwca(~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06)
2021-08-28 05:28:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 05:33:28 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:9004:d4f8:82b6:f105)
2021-08-28 05:36:30 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-08-28 05:40:10 +0200markpythonicbtc(~textual@2601:647:5a00:35:15d1:827c:596e:b228) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-28 05:44:47 +0200azeem(~azeem@5.168.207.77) (Ping timeout: 250 seconds)
2021-08-28 05:49:10 +0200sim590(~simon@76.65.67.73) (Quit: WeeChat 2.9)
2021-08-28 05:54:49 +0200azeem(~azeem@5.168.207.77)
2021-08-28 05:56:30 +0200bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2021-08-28 05:56:48 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-08-28 05:58:30 +0200 <arahael> How do I list all the current targets I can build in a cabal project?
2021-08-28 05:58:51 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
2021-08-28 06:01:37 +0200edr(~edr@user/edr) (Ping timeout: 248 seconds)
2021-08-28 06:02:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-28 06:03:56 +0200edr(~edr@enlo.co)
2021-08-28 06:03:56 +0200edr(~edr@enlo.co) (Changing host)
2021-08-28 06:03:56 +0200edr(~edr@user/edr)
2021-08-28 06:10:59 +0200 <sclv> don’t think there’s a command at the moment :-/
2021-08-28 06:18:31 +0200 <arahael> Ah, that's a pity.
2021-08-28 06:19:01 +0200azeem(~azeem@5.168.207.77) (Ping timeout: 252 seconds)
2021-08-28 06:19:53 +0200azeem(~azeem@5.168.207.77)
2021-08-28 06:32:53 +0200azeem(~azeem@5.168.207.77) (Ping timeout: 250 seconds)
2021-08-28 06:38:39 +0200azeem(~azeem@5.168.207.77)
2021-08-28 06:41:39 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-08-28 06:42:07 +0200Guest9286(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2021-08-28 06:44:26 +0200 <arahael> Can I run hoogle on a different port?
2021-08-28 06:46:19 +0200favonia(~favonia@user/favonia) (Ping timeout: 250 seconds)
2021-08-28 06:47:02 +0200chris(~chris@81.96.113.213)
2021-08-28 06:47:05 +0200chrisGuest9689
2021-08-28 06:50:14 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-08-28 06:53:45 +0200Guest9689(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-28 06:54:22 +0200chris(~chris@81.96.113.213)
2021-08-28 06:54:25 +0200chrisGuest3277
2021-08-28 06:58:08 +0200 <hololeap> arahael: see: hoogle server --help
2021-08-28 06:58:25 +0200 <arahael> hololeap: Ah, thanks, I was only using hoogle --help. :)
2021-08-28 06:58:40 +0200Guest3277(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2021-08-28 06:58:46 +0200 <arahael> And my attempts to specify a port only said "Unhandled argument, none expected..."
2021-08-28 06:59:29 +0200 <hololeap> in general, when something has subcommands, those also have flags (including help) that are passed after you specify the subcommand
2021-08-28 06:59:56 +0200 <hololeap> (for haskell stuff anyway)
2021-08-28 07:00:01 +0200 <arahael> Yes, but there was no indication it had subcommands. :)
2021-08-28 07:00:09 +0200AlistairB(~AlistairB@121-200-5-212.79c805.syd.nbn.aussiebb.net) (*.net *.split)
2021-08-28 07:00:09 +0200Cajun(~Cajun@user/cajun) (*.net *.split)
2021-08-28 07:00:34 +0200 <hololeap> if you look at the output of `hoogle --help`, you'll see "Commands:" which is how you can tell
2021-08-28 07:02:40 +0200azeem(~azeem@5.168.207.77) (Ping timeout: 240 seconds)
2021-08-28 07:02:54 +0200 <arahael> Hmm, right now I've got it running, but when I query http://192.168.1.2:8081, it hits the hoogle server (I see the log output), but the web browser basically hangs - something is blocked.
2021-08-28 07:03:58 +0200 <hololeap> probably try it with --local
2021-08-28 07:05:41 +0200azeem(~azeem@5.168.235.73)
2021-08-28 07:05:48 +0200 <arahael> Just did, same thing. I notice that only the / path works, the rest are all broken, including hoogle.css
2021-08-28 07:09:14 +0200 <hololeap> not sure exactly what you're trying to do, but on my system I run `hoogle generate --local` and `hoogle server --local` to have offline access to my installed library docs
2021-08-28 07:09:16 +0200 <arahael> Hmm, seems to be trying to establish a secure connection, but I didn't specify the certificates.
2021-08-28 07:09:36 +0200 <arahael> Yeah, but my dev system is on my server, and I want to access all that stuff from the laptop.
2021-08-28 07:12:55 +0200 <arahael> Ok, it seems that https is mandatory for some reason.
2021-08-28 07:14:20 +0200lavaman(~lavaman@98.38.249.169)
2021-08-28 07:14:40 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 240 seconds)
2021-08-28 07:15:38 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:9004:d4f8:82b6:f105) ()
2021-08-28 07:16:21 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-08-28 07:18:58 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-08-28 07:22:08 +0200azeem(~azeem@5.168.235.73)
2021-08-28 07:27:24 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-08-28 07:31:36 +0200argento(~argent0@168-227-96-26.ptr.westnet.com.ar) (Remote host closed the connection)
2021-08-28 07:33:08 +0200falafel(~falafel@74.214.230.170)
2021-08-28 07:34:14 +0200 <arahael> Ok, and for some weird reason hoogle server's completely broken now. I think I'll make do with the command line hoogle.
2021-08-28 07:40:51 +0200zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-08-28 07:41:10 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 240 seconds)
2021-08-28 07:41:23 +0200azeem(~azeem@5.168.235.73)
2021-08-28 07:45:05 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 248 seconds)
2021-08-28 07:45:25 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-28 07:50:10 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-08-28 07:51:36 +0200markpythonicbtc(~textual@2601:647:5a00:35:15d1:827c:596e:b228)
2021-08-28 07:59:07 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 250 seconds)
2021-08-28 07:59:27 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 240 seconds)
2021-08-28 08:00:11 +0200azeem(~azeem@5.168.235.73)
2021-08-28 08:02:02 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-28 08:02:02 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-28 08:02:02 +0200wroathe(~wroathe@user/wroathe)
2021-08-28 08:02:56 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-08-28 08:02:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 08:06:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-08-28 08:09:53 +0200markpythonicbtc(~textual@2601:647:5a00:35:15d1:827c:596e:b228) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-08-28 08:22:30 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-08-28 08:24:25 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 252 seconds)
2021-08-28 08:24:54 +0200azeem(~azeem@5.168.235.73)
2021-08-28 08:24:54 +0200DJ_Ikstra(~mike@174.127.249.180) (Quit: leaving)
2021-08-28 08:25:28 +0200AlistairB(~AlistairB@121-200-5-212.79c805.syd.nbn.aussiebb.net)
2021-08-28 08:28:53 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-28 08:32:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-28 08:32:23 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-28 08:32:23 +0200wroathe(~wroathe@user/wroathe)
2021-08-28 08:32:48 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2021-08-28 08:33:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-28 08:33:46 +0200Gurkenglas(~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de)
2021-08-28 08:37:37 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-08-28 08:38:44 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-08-28 08:43:38 +0200vysn(~vysn@user/vysn)
2021-08-28 08:52:19 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
2021-08-28 08:59:13 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 248 seconds)
2021-08-28 08:59:23 +0200azeem(~azeem@5.168.235.73)
2021-08-28 09:00:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-08-28 09:05:13 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 09:06:11 +0200Cajun(~Cajun@user/cajun)
2021-08-28 09:08:27 +0200mud(~mud@user/kadoban) (Ping timeout: 250 seconds)
2021-08-28 09:08:43 +0200fendor(~fendor@77.119.210.198.wireless.dyn.drei.com)
2021-08-28 09:10:37 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 252 seconds)
2021-08-28 09:11:07 +0200azeem(~azeem@5.168.235.73)
2021-08-28 09:13:28 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-28 09:14:45 +0200AlistairB(~AlistairB@121-200-5-212.79c805.syd.nbn.aussiebb.net) (Quit: Client closed)
2021-08-28 09:20:10 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 240 seconds)
2021-08-28 09:20:28 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 250 seconds)
2021-08-28 09:20:52 +0200azeem(~azeem@5.168.235.73)
2021-08-28 09:22:53 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-28 09:31:51 +0200azeem(~azeem@5.168.235.73) (Ping timeout: 250 seconds)
2021-08-28 09:33:05 +0200azeem(~azeem@62.18.164.196)
2021-08-28 09:37:34 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 252 seconds)
2021-08-28 09:37:57 +0200azeem(~azeem@62.18.164.196)
2021-08-28 09:41:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 09:42:08 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 250 seconds)
2021-08-28 09:49:38 +0200acidjnk_new(~acidjnk@p200300d0c72b95925da55fe159cc0756.dip0.t-ipconnect.de)
2021-08-28 09:49:40 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 240 seconds)
2021-08-28 09:50:49 +0200eggplant_(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-08-28 09:51:23 +0200azeem(~azeem@62.18.164.196)
2021-08-28 09:51:52 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-28 09:57:30 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-28 09:59:07 +0200redeveder(~user@221.232.105.47) (Ping timeout: 240 seconds)
2021-08-28 10:02:09 +0200falafel(~falafel@74.214.230.170) (Ping timeout: 248 seconds)
2021-08-28 10:05:13 +0200hendursa1(~weechat@user/hendursaga)
2021-08-28 10:08:27 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-08-28 10:09:15 +0200maerwald(~maerwald@user/maerwald) (Quit: gone)
2021-08-28 10:10:30 +0200maerwald(~maerwald@mail.hasufell.de)
2021-08-28 10:11:50 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2021-08-28 10:11:50 +0200maerwald(~maerwald@user/maerwald)
2021-08-28 10:12:40 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-08-28 10:13:40 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 10:14:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-28 10:16:32 +0200 <tomsmeding> in ghcup tui, is the "show all tools" button supposed to do anything? It doesn't change the list of displayed tools at all for me :)
2021-08-28 10:16:47 +0200qbt(~edun@user/edun)
2021-08-28 10:17:10 +0200 <maerwald> tomsmeding: initially, stack was in the list of tools to be hidden by default
2021-08-28 10:17:13 +0200 <maerwald> now it's empty
2021-08-28 10:17:17 +0200 <tomsmeding> ah
2021-08-28 10:17:39 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-28 10:17:39 +0200 <maerwald> https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/1fb048777c099ef6c0caa7619387513e5ee63888/app/gh…
2021-08-28 10:17:39 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-28 10:17:42 +0200allbery_bgeekosaur
2021-08-28 10:17:48 +0200 <tomsmeding> heh
2021-08-28 10:18:13 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds)
2021-08-28 10:18:25 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
2021-08-28 10:18:25 +0200 <maerwald> there was a distant idea of maybe distributing more than just basic toolchain (e.g. hlint, etc?)
2021-08-28 10:18:39 +0200 <maerwald> but I'm not sure that's going to happen
2021-08-28 10:19:07 +0200 <tomsmeding> in any case I'm not sure if putting tools like that in a hidden list is optimal UI
2021-08-28 10:19:33 +0200 <tomsmeding> but I guess that's an issue that only needs to be discussed if those tools indeed get added to ghcup :)
2021-08-28 10:20:30 +0200 <maerwald> the idea is that the TUI list fits into a single screen always without scrolling
2021-08-28 10:21:13 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 268 seconds)
2021-08-28 10:21:43 +0200 <tomsmeding> I think it would be nicer if, to reach that goal (which I think is a good goal!), one should make meaningful categories instead of "common" vs "all"
2021-08-28 10:21:53 +0200 <tomsmeding> because everyone's definition of "common" is going to differ :)
2021-08-28 10:22:23 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-08-28 10:22:55 +0200 <maerwald> well, we have a definition of "Haskell toolchain" that's kinda agreed upon, which includes ghc, cabal, stack and optionally HLS
2021-08-28 10:23:17 +0200 <maerwald> so that haskell toolchain should always be visible
2021-08-28 10:24:10 +0200 <tomsmeding> makes sense
2021-08-28 10:29:16 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 252 seconds)
2021-08-28 10:29:42 +0200azeem(~azeem@62.18.164.196)
2021-08-28 10:32:22 +0200Xnuk(~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in)
2021-08-28 10:32:39 +0200Xnuk(~xnuk@45.76.202.58)
2021-08-28 10:37:36 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-08-28 10:38:35 +0200gehmehgeh(~user@user/gehmehgeh)
2021-08-28 10:38:40 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 240 seconds)
2021-08-28 10:39:22 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 10:39:24 +0200azeem(~azeem@62.18.164.196)
2021-08-28 10:39:39 +0200neurocyte(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-08-28 10:40:41 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-08-28 10:40:42 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-28 10:42:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 10:43:45 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2021-08-28 10:44:28 +0200neurocyte(~neurocyte@45.131.39.239)
2021-08-28 10:44:28 +0200neurocyte(~neurocyte@45.131.39.239) (Changing host)
2021-08-28 10:44:28 +0200neurocyte(~neurocyte@user/neurocyte)
2021-08-28 10:47:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-28 10:47:31 +0200kenran(~kenran@200116b82bc0270099b2de0ffa120b08.dip.versatel-1u1.de)
2021-08-28 10:51:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35)
2021-08-28 10:54:36 +0200kuribas(~user@ptr-25vy0i6qx5na6znp5k4.18120a2.ip6.access.telenet.be)
2021-08-28 10:55:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35) (Ping timeout: 250 seconds)
2021-08-28 10:56:10 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 240 seconds)
2021-08-28 10:57:47 +0200azeem(~azeem@62.18.164.196)
2021-08-28 10:59:28 +0200t3hyoshi(~snicf@2600:8804:1b96:4900:1472:5a94:c594:83ca)
2021-08-28 10:59:55 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 11:02:36 +0200emliunix(~emliunix@61-216-165-205.hinet-ip.hinet.net)
2021-08-28 11:04:33 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2021-08-28 11:12:20 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-08-28 11:12:34 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de)
2021-08-28 11:18:25 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 11:27:07 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds)
2021-08-28 11:29:22 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-08-28 11:33:53 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 248 seconds)
2021-08-28 11:34:27 +0200kenran(~kenran@200116b82bc0270099b2de0ffa120b08.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2021-08-28 11:35:43 +0200azeem(~azeem@62.18.164.196)
2021-08-28 11:36:08 +0200__monty__(~toonn@user/toonn)
2021-08-28 11:36:18 +0200kenran(~kenran@200116b82bc02700d2fed1b66be991af.dip.versatel-1u1.de)
2021-08-28 11:51:13 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 252 seconds)
2021-08-28 11:53:00 +0200azeem(~azeem@62.18.164.196)
2021-08-28 11:53:00 +0200img(~img@user/img) (Ping timeout: 250 seconds)
2021-08-28 11:53:20 +0200polyphem(~polyphem@2a02:810d:640:776c:b139:3454:9b21:7c63)
2021-08-28 11:54:25 +0200acidjnk_new3(~acidjnk@p200300d0c72b95310c4cb6300b253e7e.dip0.t-ipconnect.de)
2021-08-28 11:55:02 +0200img(~img@user/img)
2021-08-28 11:57:27 +0200acidjnk_new(~acidjnk@p200300d0c72b95925da55fe159cc0756.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-28 11:58:22 +0200martin02(~silas@141.84.69.76) (Ping timeout: 252 seconds)
2021-08-28 11:59:56 +0200benin036932(~benin@183.82.178.152)
2021-08-28 12:02:02 +0200kenran(~kenran@200116b82bc02700d2fed1b66be991af.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-08-28 12:07:10 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 240 seconds)
2021-08-28 12:12:19 +0200azeem(~azeem@62.18.164.196)
2021-08-28 12:13:01 +0200zmt00(~zmt00@user/zmt00)
2021-08-28 12:14:48 +0200 <kaol> If I have a top level function that uses (for example) "Num n => ..." how do I use the same n if I define a function in my where section? GHC has renamed my use as "Num n1" and complains that it can't deduce it. It compiles if I omit the type definition of my auxiliary function.
2021-08-28 12:15:32 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 250 seconds)
2021-08-28 12:15:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 12:16:03 +0200hannessteffenhag(~hannesste@77.20.255.200)
2021-08-28 12:17:47 +0200 <maerwald> ScopedTypeVariables
2021-08-28 12:20:07 +0200hannessteffenhag(~hannesste@77.20.255.200) (Ping timeout: 240 seconds)
2021-08-28 12:20:53 +0200 <kaol> Nope, that had no effect. I tried to make a trivial example of it but that works just as I'd expect. Odd.
2021-08-28 12:22:47 +0200vysn(~vysn@user/vysn) (Ping timeout: 240 seconds)
2021-08-28 12:23:43 +0200 <kaol> Oh, right. What I needed was to add "Num n =>" to that inner function.
2021-08-28 12:24:33 +0200 <kaol> It's going to be always the same n as on top level but never mind that.
2021-08-28 12:25:11 +0200 <tomsmeding> kaol: that's probably the right fix, what you now did
2021-08-28 12:25:29 +0200martin02(~silas@141.84.69.76)
2021-08-28 12:25:46 +0200 <tomsmeding> using ScopedTypeVariables you have to put some 'forall' keywords in the right places. See the ghc user's guide on the extension: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/scoped_type_variables.html#ex…
2021-08-28 12:26:37 +0200 <kaol> The type's optional in this case but it makes "getSum . (foldMap . foldMap . foldMap . foldMap) Sum" easier to read.
2021-08-28 12:27:04 +0200 <tomsmeding> by default, type variables aren't "inherited" by nested functions
2021-08-28 12:27:23 +0200 <tomsmeding> if you can make it work like that, which in this case you could by adding "Num n =>", apparently, that's always the right thing
2021-08-28 12:27:47 +0200 <tomsmeding> if you can't because you use some values from the parent function so the types really need to be linked for it to typecheck, you can use ScopedTypeVariables
2021-08-28 12:34:47 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-08-28 12:34:49 +0200d0ku(~d0ku@178.43.56.75.ipv4.supernova.orange.pl)
2021-08-28 12:47:28 +0200oxide(~lambda@user/oxide)
2021-08-28 12:49:00 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-28 12:49:54 +0200sjb0(~stephen@2001:8004:2738:35de:a1a3:a1c1:6e62:ba62) (Quit: Leaving.)
2021-08-28 12:51:45 +0200d0ku(~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds)
2021-08-28 12:53:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35)
2021-08-28 12:57:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35) (Ping timeout: 240 seconds)
2021-08-28 13:01:03 +0200alx741(~alx741@181.196.68.187)
2021-08-28 13:01:03 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-28 13:01:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 13:10:26 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-28 13:10:58 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-08-28 13:18:29 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 250 seconds)
2021-08-28 13:18:52 +0200azeem(~azeem@62.18.164.196)
2021-08-28 13:19:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-28 13:24:06 +0200Pickchea(~private@user/pickchea)
2021-08-28 13:26:07 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2021-08-28 13:34:26 +0200polyphem(~polyphem@2a02:810d:640:776c:b139:3454:9b21:7c63) (Read error: Connection reset by peer)
2021-08-28 13:38:03 +0200 <hololeap> @unmtl StateT s (ExceptT e) a
2021-08-28 13:38:03 +0200 <lambdabot> err: `ExceptT e (a, s)' is not applied to enough arguments.
2021-08-28 13:38:12 +0200 <hololeap> @unmtl StateT s (Except e) a
2021-08-28 13:38:12 +0200 <lambdabot> s -> Except e (a, s)
2021-08-28 13:38:20 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 13:38:31 +0200 <hololeap> @unmtl ExceptT e (State s) a
2021-08-28 13:38:31 +0200 <lambdabot> s -> (Either e a, s)
2021-08-28 13:44:40 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-08-28 13:46:41 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 248 seconds)
2021-08-28 13:47:45 +0200azeem(~azeem@62.18.164.196)
2021-08-28 13:50:34 +0200martin02(~silas@141.84.69.76) (Ping timeout: 252 seconds)
2021-08-28 13:50:34 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-28 13:51:33 +0200MQ-17J(~MQ-17J@8.6.144.209)
2021-08-28 13:54:26 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-08-28 13:55:31 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Client Quit)
2021-08-28 13:56:27 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 240 seconds)
2021-08-28 13:58:12 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-08-28 14:01:50 +0200Codaraxis__(~Codaraxis@user/codaraxis)
2021-08-28 14:04:47 +0200Codaraxis_(~Codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
2021-08-28 14:05:11 +0200azeem(~azeem@62.18.164.196)
2021-08-28 14:09:52 +0200feepo(sid28508@id-28508.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-28 14:09:55 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 14:12:00 +0200timCF(~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving)
2021-08-28 14:14:10 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-08-28 14:17:25 +0200MQ-17J(~MQ-17J@8.6.144.209) (Ping timeout: 250 seconds)
2021-08-28 14:21:45 +0200xff0x(~xff0x@2001:1a81:5215:d000:44b2:e3e1:102e:1373) (Ping timeout: 250 seconds)
2021-08-28 14:23:14 +0200aman(~aman@user/aman)
2021-08-28 14:23:19 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-08-28 14:26:14 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de)
2021-08-28 14:26:26 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-08-28 14:28:15 +0200favonia(~favonia@user/favonia)
2021-08-28 14:29:29 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-08-28 14:31:29 +0200hannessteffenhag(~hannesste@ip4d14ffc8.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds)
2021-08-28 14:39:20 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-28 14:39:32 +0200Vajb(~Vajb@85-76-137-121-nat.elisa-mobile.fi)
2021-08-28 14:40:23 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-08-28 14:41:04 +0200hendursaga(~weechat@user/hendursaga)
2021-08-28 14:42:32 +0200xff0x(~xff0x@2001:1a81:5215:d000:44b2:e3e1:102e:1373)
2021-08-28 14:46:38 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-08-28 14:46:54 +0200icebreaker(~icebreake@user/icebreaker) ()
2021-08-28 14:50:02 +0200martin02(~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1)
2021-08-28 14:52:49 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 248 seconds)
2021-08-28 14:54:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35)
2021-08-28 14:54:52 +0200 <siers> I have found this nix shell to work well for getting cabal/hls for freshly cloned projects: nix-shell -p cabal2nix --run 'nix-shell -E "$(cabal2nix --shell .)" --run "nix-shell -p cabal-install -p haskell-language-server --run zsh"'
2021-08-28 14:55:15 +0200 <siers> as I don't like declaring unneeded dependencies for my user profile
2021-08-28 14:55:34 +0200 <maerwald> how long does that run? :)
2021-08-28 14:56:35 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-28 14:57:52 +0200 <siers> instantly
2021-08-28 14:58:04 +0200 <siers> ah, well depends on whether you have the deps :)
2021-08-28 14:58:13 +0200 <maerwald> in my experience, entering a nix shell takes a couple hours depending on your configuration :p
2021-08-28 14:58:35 +0200 <siers> no, very fast after the first download run. do you have a HDD?
2021-08-28 14:58:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35) (Ping timeout: 250 seconds)
2021-08-28 14:59:26 +0200 <maerwald> it also didn't share subdirectories from git clones, not sure that's fixed
2021-08-28 14:59:50 +0200mykyta(~mykyta@37.53.0.230)
2021-08-28 15:00:17 +0200APic(apic@apic.name) (Ping timeout: 248 seconds)
2021-08-28 15:02:24 +0200mykyta(~mykyta@37.53.0.230) ()
2021-08-28 15:02:53 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-08-28 15:03:19 +0200[itchyjunk]Guest3360
2021-08-28 15:03:19 +0200Guest3360(~itchyjunk@user/itchyjunk/x-7353470) (Killed (silver.libera.chat (Nickname regained by services)))
2021-08-28 15:03:19 +0200[_][itchyjunk]
2021-08-28 15:03:43 +0200Guest3360(~itchyjunk@user/itchyjunk/x-7353470)
2021-08-28 15:03:57 +0200Guest3360(~itchyjunk@user/itchyjunk/x-7353470) (Client Quit)
2021-08-28 15:04:52 +0200 <siers> is SetEnv a function? https://gitlab.com/goldfirere/stitch/blob/58f49b8c8f6cc66cc634944afd9961c7bc15d9d1/src/Language/St…
2021-08-28 15:05:53 +0200MQ-17J(~MQ-17J@8.6.144.209)
2021-08-28 15:05:55 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2021-08-28 15:06:14 +0200 <siers> hlocal/MonadHReader breaks my head
2021-08-28 15:06:33 +0200 <maerwald> associated type family
2021-08-28 15:07:01 +0200egoist(~egoist@186.235.82.117)
2021-08-28 15:07:02 +0200 <siers> I can't also conceptually understand how it may result in a ReaderT r1 m, if it returns a r2 and the SetEnv seems to convert to r2 also
2021-08-28 15:08:32 +0200 <maerwald> https://downloads.haskell.org/~ghc/8.10.7/docs/html/users_guide/glasgow_exts.html#associated-type-…
2021-08-28 15:08:51 +0200 <siers> I'll take a look
2021-08-28 15:10:18 +0200 <maerwald> you can view type families as functions on types
2021-08-28 15:10:53 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru)
2021-08-28 15:10:57 +0200 <siers> that is how I viewed them already
2021-08-28 15:11:14 +0200 <maerwald> 1. function: value -> value, 2. type family: type -> type, 3. class: type -> value, 4. GADT: value -> type
2021-08-28 15:11:18 +0200 <maerwald> I think it was like that?
2021-08-28 15:11:40 +0200 <maerwald> so the combination of class and type family is especially interesting
2021-08-28 15:11:45 +0200 <siers> that's an interesting list, I'd never seen one like that
2021-08-28 15:11:54 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-08-28 15:12:30 +0200 <siers> it looks like a type, not a type family at the first glance
2021-08-28 15:12:43 +0200 <maerwald> it is a family
2021-08-28 15:12:48 +0200 <maerwald> becuaes it's in the class
2021-08-28 15:12:56 +0200 <maerwald> and can have multiple type instances
2021-08-28 15:13:00 +0200 <siers> ahm ok
2021-08-28 15:13:04 +0200 <siers> m = ,
2021-08-28 15:13:55 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-28 15:13:58 +0200 <maerwald> you also have open type families and closed type families
2021-08-28 15:14:08 +0200 <maerwald> https://downloads.haskell.org/~ghc/8.10.7/docs/html/users_guide/glasgow_exts.html#closed-type-fami…
2021-08-28 15:16:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 15:17:25 +0200lavaman(~lavaman@98.38.249.169)
2021-08-28 15:19:17 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
2021-08-28 15:20:20 +0200 <maerwald> maybe also check out https://hackage.haskell.org/package/mtl-tf
2021-08-28 15:21:52 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-28 15:22:26 +0200jiribenes(~jiribenes@rosa.jiribenes.com) (Ping timeout: 258 seconds)
2021-08-28 15:22:52 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
2021-08-28 15:24:22 +0200 <siers> is Mark a brother/relative of Simon or something?
2021-08-28 15:24:51 +0200acidjnk_new(~acidjnk@p200300d0c72b9531c50f6552fc7b880d.dip0.t-ipconnect.de)
2021-08-28 15:24:51 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-28 15:26:53 +0200acidjnk(~acidjnk@p200300d0c72b9531c50f6552fc7b880d.dip0.t-ipconnect.de)
2021-08-28 15:28:29 +0200acidjnk_new3(~acidjnk@p200300d0c72b95310c4cb6300b253e7e.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-28 15:29:26 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-08-28 15:29:30 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-28 15:29:40 +0200acidjnk_new(~acidjnk@p200300d0c72b9531c50f6552fc7b880d.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-28 15:29:41 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-08-28 15:31:51 +0200 <siers> ok, I get what hlocal is doing now, finally
2021-08-28 15:33:58 +0200 <siers> haddock is a fish! ha, I just found out
2021-08-28 15:35:08 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-28 15:36:48 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-08-28 15:41:03 +0200benin0369322(~benin@183.82.206.21)
2021-08-28 15:41:29 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 250 seconds)
2021-08-28 15:41:41 +0200lbseale(~lbseale@user/ep1ctetus)
2021-08-28 15:42:16 +0200azeem(~azeem@62.18.164.196)
2021-08-28 15:42:24 +0200 <sshine_> siers, yes
2021-08-28 15:43:19 +0200benin036932(~benin@183.82.178.152) (Ping timeout: 252 seconds)
2021-08-28 15:43:19 +0200benin0369322benin036932
2021-08-28 15:44:01 +0200 <sshine_> I didn't know. :) but it makes sense, considering Captain Haddock from Tintin is a fisherman.
2021-08-28 15:49:10 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-08-28 15:50:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-28 15:53:11 +0200lbseale_(~lbseale@user/ep1ctetus)
2021-08-28 15:53:28 +0200jiribenes(~jiribenes@rosa.jiribenes.com)
2021-08-28 15:54:08 +0200oxide(~lambda@user/oxide)
2021-08-28 15:56:07 +0200lbseale(~lbseale@user/ep1ctetus) (Ping timeout: 240 seconds)
2021-08-28 15:56:54 +0200fendor_(~fendor@178.165.164.244.wireless.dyn.drei.com)
2021-08-28 15:59:15 +0200fendor(~fendor@77.119.210.198.wireless.dyn.drei.com) (Ping timeout: 250 seconds)
2021-08-28 16:07:28 +0200APic(apic@apic.name)
2021-08-28 16:08:53 +0200dagi59194(~dagit@2001:558:6025:38:6476:a063:d05a:44da)
2021-08-28 16:09:23 +0200dagit(~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Read error: Connection reset by peer)
2021-08-28 16:10:24 +0200acidjnk(~acidjnk@p200300d0c72b9531c50f6552fc7b880d.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-28 16:11:17 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-08-28 16:13:26 +0200Gurkenglas(~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
2021-08-28 16:15:26 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-08-28 16:17:53 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-28 16:20:55 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2021-08-28 16:20:58 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-28 16:22:01 +0200PinealGlandOptic(~PinealGla@37.115.210.35)
2021-08-28 16:27:51 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 250 seconds)
2021-08-28 16:28:38 +0200azeem(~azeem@62.18.164.196)
2021-08-28 16:30:17 +0200oxide(~lambda@user/oxide)
2021-08-28 16:30:21 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-08-28 16:36:27 +0200MQ-17J(~MQ-17J@8.6.144.209) (Ping timeout: 240 seconds)
2021-08-28 16:40:38 +0200leplep-
2021-08-28 16:44:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-28 16:44:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-28 16:44:06 +0200wroathe(~wroathe@user/wroathe)
2021-08-28 16:45:51 +0200markpythonicbtc(~textual@50.228.44.6)
2021-08-28 16:50:02 +0200APic(apic@apic.name) (Ping timeout: 245 seconds)
2021-08-28 16:51:37 +0200lep-lep
2021-08-28 16:54:05 +0200leplep-
2021-08-28 16:54:06 +0200Vajb(~Vajb@85-76-137-121-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-08-28 16:54:36 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 16:56:24 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35)
2021-08-28 16:57:49 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-28 17:00:19 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-28 17:00:35 +0200markpythonicbtc(~textual@50.228.44.6) (Remote host closed the connection)
2021-08-28 17:00:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35) (Ping timeout: 240 seconds)
2021-08-28 17:01:13 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 250 seconds)
2021-08-28 17:01:21 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583)
2021-08-28 17:03:20 +0200lep-lep
2021-08-28 17:07:17 +0200mei(~mei@user/mei) (Read error: Connection reset by peer)
2021-08-28 17:12:03 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
2021-08-28 17:12:25 +0200alx741(~alx741@181.196.68.187) (Ping timeout: 252 seconds)
2021-08-28 17:13:07 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 17:14:00 +0200leplep-
2021-08-28 17:14:37 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-28 17:14:39 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-08-28 17:14:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 17:16:01 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-08-28 17:20:56 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-08-28 17:22:09 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 248 seconds)
2021-08-28 17:24:03 +0200azeem(~azeem@62.18.164.196)
2021-08-28 17:24:51 +0200cheater(~Username@user/cheater)
2021-08-28 17:24:56 +0200lep-lep
2021-08-28 17:25:39 +0200alx741(~alx741@186.178.108.114)
2021-08-28 17:26:10 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-08-28 17:27:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-28 17:27:59 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 17:29:15 +0200jiribenes(~jiribenes@rosa.jiribenes.com) (Remote host closed the connection)
2021-08-28 17:29:58 +0200jiribenes(~jiribenes@rosa.jiribenes.com)
2021-08-28 17:30:33 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-08-28 17:33:50 +0200leplep-
2021-08-28 17:35:40 +0200azeem(~azeem@62.18.164.196) (Ping timeout: 240 seconds)
2021-08-28 17:36:11 +0200azeem(~azeem@5.168.90.242)
2021-08-28 17:38:25 +0200lep-lep
2021-08-28 17:42:40 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 240 seconds)
2021-08-28 17:42:59 +0200azeem(~azeem@5.168.90.242)
2021-08-28 17:43:13 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-08-28 17:43:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 17:46:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 17:48:31 +0200leplep-
2021-08-28 17:49:07 +0200 <DigitalKiwi> hi i'm here to talk about stocks
2021-08-28 17:51:54 +0200hexfive(~eric@50.35.83.177)
2021-08-28 17:53:45 +0200chris(~chris@81.96.113.213)
2021-08-28 17:53:48 +0200chrisGuest3892
2021-08-28 17:53:59 +0200lep-lep
2021-08-28 17:57:28 +0200 <maerwald> what you got for me today
2021-08-28 17:58:18 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 250 seconds)
2021-08-28 17:58:40 +0200renzhi(~xp@2607:fa49:6500:3d00::d986) (Ping timeout: 240 seconds)
2021-08-28 17:58:59 +0200azeem(~azeem@5.168.90.242)
2021-08-28 17:59:40 +0200 <DigitalKiwi> jokes
2021-08-28 18:01:19 +0200hexfive(~eric@50.35.83.177) (Quit: WeeChat 3.0.1)
2021-08-28 18:03:01 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-08-28 18:06:24 +0200 <maerwald> https://www.haskell.org/tutorial/ what's this
2021-08-28 18:07:39 +0200 <monochrom> The best Haskell tutorial.
2021-08-28 18:07:43 +0200Guest3199(~Guest31@82.40.121.143)
2021-08-28 18:07:55 +0200Guest3199(~Guest31@82.40.121.143) (Client Quit)
2021-08-28 18:08:10 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 240 seconds)
2021-08-28 18:08:25 +0200azeem(~azeem@5.168.90.242)
2021-08-28 18:08:31 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35)
2021-08-28 18:14:36 +0200derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-08-28 18:15:34 +0200 <DigitalKiwi> is it really the best?
2021-08-28 18:15:57 +0200 <DigitalKiwi> simply being official doesn't make it the gest
2021-08-28 18:16:04 +0200 <DigitalKiwi> or best
2021-08-28 18:16:16 +0200derelict(derelict@2600:3c02::f03c:92ff:fe45:2498)
2021-08-28 18:16:34 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-08-28 18:18:11 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-08-28 18:18:21 +0200 <maerwald> I think we just established that it's the best.
2021-08-28 18:19:23 +0200 <DigitalKiwi> have we though
2021-08-28 18:20:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-28 18:21:04 +0200neo2(~neo3@cpe-292712.ip.primehome.com)
2021-08-28 18:21:14 +0200Vajb(~Vajb@85-76-37-217-nat.elisa-mobile.fi)
2021-08-28 18:22:44 +0200derelict(derelict@2600:3c02::f03c:92ff:fe45:2498) (Quit: bye)
2021-08-28 18:22:59 +0200derelict(derelict@user/derelict)
2021-08-28 18:25:48 +0200Vajb(~Vajb@85-76-37-217-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-08-28 18:26:42 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-28 18:27:40 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 240 seconds)
2021-08-28 18:28:27 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 3.2)
2021-08-28 18:28:48 +0200azeem(~azeem@5.168.90.242)
2021-08-28 18:33:05 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 248 seconds)
2021-08-28 18:33:43 +0200falafel(~falafel@74.214.230.170)
2021-08-28 18:34:08 +0200azeem(~azeem@5.168.90.242)
2021-08-28 18:34:46 +0200lbseale_(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-08-28 18:37:53 +0200Guest3892(~chris@81.96.113.213) (Ping timeout: 248 seconds)
2021-08-28 18:42:06 +0200chris(~chris@81.96.113.213)
2021-08-28 18:42:09 +0200chrisGuest2283
2021-08-28 18:42:38 +0200Guest2283(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-28 18:43:22 +0200falafel(~falafel@74.214.230.170) (Ping timeout: 245 seconds)
2021-08-28 18:44:46 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-08-28 18:46:15 +0200APic(apic@apic.name)
2021-08-28 18:49:38 +0200chris(~chris@81.96.113.213)
2021-08-28 18:49:42 +0200chrisGuest8241
2021-08-28 18:51:29 +0200Pickchea(~private@user/pickchea)
2021-08-28 18:51:56 +0200jrm(~jrm@156.34.187.65) (Quit: ciao)
2021-08-28 18:53:23 +0200 <monochrom> It's how I learned Haskell, and I think it's the best, or least worst, compared to tutorials that came after.
2021-08-28 18:54:25 +0200 <monochrom> One of its strengths is that it does not have broken analogies or misleading pictures that everyone praises in other, worse, tutorials.
2021-08-28 18:55:51 +0200 <monochrom> Note that there is a line to be drawn between tutorials and textbooks. I am comparing tutorials with tutorials, not tutorials with textbooks.
2021-08-28 18:57:13 +0200 <monochrom> http://www.vex.net/~trebla/haskell/learn-sources.html#a-gentle-introduction-to-haskell
2021-08-28 19:04:52 +0200kuribas(~user@ptr-25vy0i6qx5na6znp5k4.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-08-28 19:10:48 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-28 19:11:26 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-28 19:11:42 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 245 seconds)
2021-08-28 19:14:07 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-28 19:14:35 +0200 <hololeap> is there a monad (transformer) similar to ExceptT, but with different semantics, where the monad will "short-circuit" and return when a computation is finished, as opposed to on an error?
2021-08-28 19:15:20 +0200 <janus> hololeap: not sure i understand, why not just swap success and error types in ExceptT ?
2021-08-28 19:17:19 +0200 <monochrom> I don't understand how "finished" and "short-circuit" can be brought together.
2021-08-28 19:17:23 +0200 <janus> maybe if we eschew the "success/error" terminology and just call it "returned on short circuit" "returned when no short circuiting appears". that captures ExceptT just as accurately, no?
2021-08-28 19:17:34 +0200 <monochrom> I would think "short-circuit" means "unfinished but quit".
2021-08-28 19:17:34 +0200azeem(~azeem@5.168.90.242)
2021-08-28 19:18:19 +0200 <hololeap> monochrom: for instance, I'm building a data structure using Accum using "pieces" that come in from a list, and I want to stop reading from the list when the data structure is complete
2021-08-28 19:18:47 +0200 <monochrom> I don't know Accum.
2021-08-28 19:19:05 +0200 <hololeap> It's basically just State but specialized for monoids as `s`
2021-08-28 19:19:07 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-08-28 19:19:14 +0200lavaman(~lavaman@98.38.249.169)
2021-08-28 19:19:21 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de)
2021-08-28 19:19:23 +0200 <hololeap> it's actually in transformers
2021-08-28 19:20:00 +0200 <monochrom> But "f (x:y:_) = (x,y)" satisfies "stop reading from the list when the tuple (x,y) is complete".
2021-08-28 19:20:57 +0200 <hololeap> this is more like, `data MyThing (Maybe X) (Maybe Y) (Maybe Z)` and I want to stop when all the fields are (Just X), (Just Y), etc
2021-08-28 19:22:16 +0200 <hololeap> oh, I just remembered monad-loops. takeWhileM is probably what I'm looking for
2021-08-28 19:23:40 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-28 19:24:18 +0200 <monochrom> Equivalently, making a recursive call means "don't stop", therefore simply don't make a recursive call to "stop".
2021-08-28 19:25:24 +0200 <hololeap> true, but I like to avoid rolling my own recursion when possible. I find the code easier to comprehend that way
2021-08-28 19:27:36 +0200 <monochrom> When I'm writing in C, half of the loops are for-loops that don't contain "break", "continue", "return", "exit()". They are the pure loops, they would be foldl, foldr, foldMap, mapM_ if I were writing Haskell.
2021-08-28 19:27:41 +0200 <kaol> I've used ContT for my not-ExceptT things sometimes.
2021-08-28 19:28:54 +0200 <monochrom> But the other half, they were really handwritten recursion in my head, and for just cause, but then it's C so I compiled recursion to "loop"s with "break" and "continue" and "return".
2021-08-28 19:30:00 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-28 19:30:28 +0200 <monochrom> Basically trying to explain that half of the "loops" in C are dishonest loops. They don't improve comprehensibility.
2021-08-28 19:33:05 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-08-28 19:33:51 +0200 <kaol> flip runContT return $ callCC $ \exit -> ... and exit can be called to short circuit and it'll have the same type as the whole computation, with no Either involved.
2021-08-28 19:35:27 +0200 <monochrom> http://www.vex.net/~trebla/haskell/cont.xhtml#yield for using that to exit and re-enter and re-exit and re-enter... >:)
2021-08-28 19:38:35 +0200 <hpc> if you want to be extra mean, flip runContT pure $ callCC $ \return -> ...
2021-08-28 19:39:02 +0200 <hpc> now return actually affects control flow! :D
2021-08-28 19:39:16 +0200 <monochrom> That's only the 2nd meanest. s/pure/return/ to be the meanest.
2021-08-28 19:40:17 +0200 <hpc> then you can't nest it though
2021-08-28 19:40:27 +0200 <monochrom> But let me optimize it for you.
2021-08-28 19:40:27 +0200martin02(~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1) (Ping timeout: 240 seconds)
2021-08-28 19:40:27 +0200 <maerwald> is `pure` even politically correct?
2021-08-28 19:40:30 +0200 <hpc> it's fun to not know if your return is going to take you too far up, or not take you too far up enough
2021-08-28 19:40:41 +0200 <monochrom> flip runContT pure $ \pure -> ...
2021-08-28 19:41:07 +0200 <monochrom> err
2021-08-28 19:41:13 +0200 <hpc> actually, hmm
2021-08-28 19:41:16 +0200 <monochrom> flip runContT pure $ ContT $ \pure -> ...
2021-08-28 19:41:30 +0200 <hpc> in \pure, that pure has the same type as actual pure
2021-08-28 19:41:37 +0200 <hpc> monochrom: so yes, yours is better
2021-08-28 19:41:48 +0200 <hpc> because then who even knows what nesting it will do
2021-08-28 19:46:40 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 240 seconds)
2021-08-28 19:46:54 +0200azeem(~azeem@5.168.90.242)
2021-08-28 19:51:10 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 240 seconds)
2021-08-28 19:52:15 +0200azeem(~azeem@5.168.90.242)
2021-08-28 19:52:43 +0200Gurkenglas(~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de)
2021-08-28 19:52:53 +0200martin02(~silas@141.84.69.76)
2021-08-28 19:59:37 +0200APic(apic@apic.name) (Ping timeout: 252 seconds)
2021-08-28 20:01:10 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 240 seconds)
2021-08-28 20:02:06 +0200azeem(~azeem@5.168.90.242)
2021-08-28 20:03:33 +0200 <monochrom> On second thought, callCC is necessary.
2021-08-28 20:04:06 +0200 <hpc> it's always on second thought with callCC :P
2021-08-28 20:06:05 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru) (Remote host closed the connection)
2021-08-28 20:06:13 +0200azeem(~azeem@5.168.90.242) (Ping timeout: 252 seconds)
2021-08-28 20:07:18 +0200azeem(~azeem@5.168.86.163)
2021-08-28 20:07:41 +0200 <hololeap> is there something (premade) that combines takeWhile with a fold, so that you can access the state of the fold in the check?
2021-08-28 20:08:24 +0200 <Rembane_> MonadPlus might be your friend here, I haven't used it though, only seen something about it in the docs.
2021-08-28 20:08:46 +0200 <hololeap> I don't think that would help here, but explain
2021-08-28 20:11:33 +0200 <hololeap> @hoogle (b -> Either b c) -> (a -> b -> b) -> b -> t a -> Either b c
2021-08-28 20:11:34 +0200 <lambdabot> No results found
2021-08-28 20:12:27 +0200d0ku(~d0ku@178.43.56.75.ipv4.supernova.orange.pl)
2021-08-28 20:15:07 +0200Pickchea(~private@user/pickchea) (Ping timeout: 240 seconds)
2021-08-28 20:15:12 +0200 <hololeap> well, I think I'll just stick with what I have: mapM_ using ExceptT (Bare T) (Accum (Partial T)) ()
2021-08-28 20:15:39 +0200 <hololeap> although that () in the last position makes me feel like the monad interface is too powerful here
2021-08-28 20:16:06 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2021-08-28 20:17:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 20:17:09 +0200hololeaprenames Bare to Finished -- there, that makes more sense
2021-08-28 20:17:47 +0200eldritch_(~eldritch@134.209.221.71) (Changing host)
2021-08-28 20:17:47 +0200eldritch_(~eldritch@user/eldritch/x-9272577)
2021-08-28 20:18:06 +0200TranquilEcho(~grom@user/tranquilecho)
2021-08-28 20:18:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-28 20:19:53 +0200andinus(andinus@tilde.institute) (Remote host closed the connection)
2021-08-28 20:20:33 +0200andinus(andinus@tilde.institute)
2021-08-28 20:23:38 +0200Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-131-126.cust.tzulo.com)
2021-08-28 20:25:27 +0200azeem(~azeem@5.168.86.163) (Ping timeout: 240 seconds)
2021-08-28 20:26:11 +0200azeem(~azeem@5.168.86.163)
2021-08-28 20:26:40 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru)
2021-08-28 20:27:53 +0200mud(~mud@user/kadoban)
2021-08-28 20:32:36 +0200Guest8241(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-28 20:32:41 +0200azeem(~azeem@5.168.86.163) (Ping timeout: 250 seconds)
2021-08-28 20:33:13 +0200chris(~chris@81.96.113.213)
2021-08-28 20:33:16 +0200chrisGuest3524
2021-08-28 20:33:23 +0200Guest3524(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-28 20:34:21 +0200chris(~chris@81.96.113.213)
2021-08-28 20:34:24 +0200chrisGuest9786
2021-08-28 20:35:29 +0200azeem(~azeem@5.168.86.163)
2021-08-28 20:36:00 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-08-28 20:41:47 +0200azeem(~azeem@5.168.86.163) (Ping timeout: 250 seconds)
2021-08-28 20:43:02 +0200azeem(~azeem@5.168.86.163)
2021-08-28 20:43:09 +0200desophos(~desophos@2601:249:1680:a570:b9dc:dd21:8c3e:8765)
2021-08-28 20:43:34 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-28 20:49:40 +0200azeem(~azeem@5.168.86.163) (Ping timeout: 252 seconds)
2021-08-28 20:50:06 +0200azeem(~azeem@5.168.92.20)
2021-08-28 20:51:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-28 21:01:07 +0200azeem(~azeem@5.168.92.20) (Ping timeout: 240 seconds)
2021-08-28 21:01:38 +0200azeem(~azeem@5.168.92.20)
2021-08-28 21:01:40 +0200Pickchea(~private@user/pickchea)
2021-08-28 21:03:25 +0200Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-131-126.cust.tzulo.com) (Ping timeout: 252 seconds)
2021-08-28 21:11:49 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-08-28 21:12:01 +0200martin02(~silas@141.84.69.76) (Ping timeout: 248 seconds)
2021-08-28 21:13:10 +0200kenran(~kenran@200116b82bc02700b5002519151f8c73.dip.versatel-1u1.de)
2021-08-28 21:14:27 +0200_xor(~xor@74.215.232.67) (Read error: Connection reset by peer)
2021-08-28 21:14:35 +0200pavonia(~user@user/siracusa)
2021-08-28 21:14:58 +0200_xor(~xor@74.215.232.67)
2021-08-28 21:15:14 +0200vysn(~vysn@user/vysn)
2021-08-28 21:15:49 +0200Guest9786(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-28 21:15:55 +0200martin02(~silas@141.84.69.76)
2021-08-28 21:16:20 +0200neo2(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 250 seconds)
2021-08-28 21:16:29 +0200chris(~chris@81.96.113.213)
2021-08-28 21:16:33 +0200chrisGuest473
2021-08-28 21:21:01 +0200Guest473(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-08-28 21:23:26 +0200chris(~chris@81.96.113.213)
2021-08-28 21:23:29 +0200chrisGuest1221
2021-08-28 21:24:43 +0200mastarija(~mastarija@78-3-210-70.adsl.net.t-com.hr)
2021-08-28 21:27:13 +0200 <mastarija> any idea how I might be able to escape this in haddock: `failIf [UnderAge] (<18)`? It interprets [UnderAge] (<18) as a markdown link syntax. I tried "escaping" the brackets, but then they render with backslashes (which isn't really escaping them).
2021-08-28 21:31:26 +0200 <hololeap> are you trying to put a code snippet in the doc?
2021-08-28 21:31:32 +0200acidjnk(~acidjnk@p200300d0c72b9531c50f6552fc7b880d.dip0.t-ipconnect.de)
2021-08-28 21:32:24 +0200 <hololeap> https://www.haskell.org/haddock/doc/html/ch03s08.html#idm140354810780208
2021-08-28 21:32:24 +0200 <hololeap> you wrap the code in "at signs" @
2021-08-28 21:32:24 +0200 <hololeap> it doesn't use the markdown syntax
2021-08-28 21:32:46 +0200 <mastarija> hololeap, I use @@ block, not inline
2021-08-28 21:32:57 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-08-28 21:33:08 +0200 <mastarija> and it has that problem
2021-08-28 21:33:20 +0200Guest1221(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-28 21:34:02 +0200chris(~chris@81.96.113.213)
2021-08-28 21:34:05 +0200chrisGuest7545
2021-08-28 21:35:18 +0200 <mastarija> I mean, it's the same if I do it inline as well.
2021-08-28 21:38:33 +0200Guest7545(~chris@81.96.113.213) (Ping timeout: 250 seconds)
2021-08-28 21:40:36 +0200azeem(~azeem@5.168.92.20) (Ping timeout: 250 seconds)
2021-08-28 21:40:52 +0200azeem(~azeem@5.168.92.20)
2021-08-28 21:42:40 +0200 <hololeap> can you post the actual line of code?
2021-08-28 21:43:50 +0200 <mastarija> Sure, just a sec
2021-08-28 21:43:53 +0200tput(~tim@S0106a84e3fe54613.ed.shawcable.net)
2021-08-28 21:44:11 +0200 <mastarija> hololeap, `ageV = 'adapt' unAge $ 'passIf' [AgeUnder] (>18) <> 'failIf' [AgeOver] (>65)`
2021-08-28 21:45:01 +0200 <hololeap> so are you using backticks or @ ?
2021-08-28 21:45:23 +0200 <mastarija> sorry, habit
2021-08-28 21:45:25 +0200 <mastarija> I use @
2021-08-28 21:45:44 +0200 <hololeap> can you post the actual line of code copied directly from your sorce?
2021-08-28 21:46:53 +0200 <hololeap> sorry, lines, since you said it was a block... you can use https://paste.tomsmeding.com
2021-08-28 21:47:30 +0200 <mastarija> hololeap, https://paste.tomsmeding.com/p9hVfre9
2021-08-28 21:49:43 +0200 <hololeap> maralorn: hm, try indenting the code block (not the @'s) by four spaces
2021-08-28 21:50:13 +0200 <hololeap> that's the way it's shown in the doc
2021-08-28 21:50:22 +0200 <mastarija> hololeap, nope doesn't work
2021-08-28 21:50:34 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-08-28 21:50:35 +0200 <maerwald> is there a optparse-applicative plugin that shows suggestions on mistyping flags/commands?
2021-08-28 21:50:54 +0200 <maerwald> foo --heeelp -- did you mean `--help`?
2021-08-28 21:51:03 +0200 <mastarija> It still renders as linked AgeOver instead of [AgeOver] (>65)
2021-08-28 21:51:18 +0200 <hololeap> mastarija: > Additionally, the character > has a special meaning at the beginning of a line, and the following characters have special meanings at the beginning of a paragraph: *, -. These characters can also be escaped using \.
2021-08-28 21:51:56 +0200 <hololeap> mastarija: try escaping the > in front of 18 like so: (\>18)@
2021-08-28 21:52:13 +0200 <hololeap> and also 64
2021-08-28 21:52:15 +0200 <hololeap> *65
2021-08-28 21:52:33 +0200hololeapmight be clutching at straws here
2021-08-28 21:52:53 +0200 <mastarija> I tried escaping [ with \[, but it just renders it as \[. Similarly, escaping > does nothing :(
2021-08-28 21:53:22 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-08-28 21:53:41 +0200 <hololeap> mastarija: you might have a typo if you meant <18 :p
2021-08-28 21:54:23 +0200 <mastarija> hololeap, `passIf`, not `failIf` :P
2021-08-28 21:54:55 +0200 <hololeap> oh, good point
2021-08-28 21:55:24 +0200 <mastarija> damn, this is annoying
2021-08-28 21:55:38 +0200 <mastarija> Almost done with all the documentation, and this is such pain in the ass
2021-08-28 21:55:46 +0200 <mastarija> And I have plenty of such examples
2021-08-28 21:56:16 +0200PinealGlandOptic(~PinealGla@37.115.210.35) (Quit: leaving)
2021-08-28 21:57:24 +0200 <hololeap> mastarija: can you identify which one of these you think it is erroneously parsing from your code block: https://www.haskell.org/haddock/doc/html/ch03s08.html#idm140354810770608
2021-08-28 21:57:27 +0200 <mastarija> hm.. I can use > to start a code line, but then I loose ability to link to my functions within the documentation
2021-08-28 21:57:37 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2021-08-28 21:57:56 +0200 <hololeap> it's hard to verify since I can't see the output
2021-08-28 21:59:11 +0200 <mastarija> It's not listed there, but it is a markdown link syntax. e.g. [Link text](https://linkurl.com)
2021-08-28 21:59:29 +0200dsrt^(~dsrt@12.16.129.111) (Ping timeout: 248 seconds)
2021-08-28 21:59:31 +0200 <mastarija> It's technically correct
2021-08-28 21:59:38 +0200Guest32(~Guest32@188.113.204.172)
2021-08-28 21:59:38 +0200 <mastarija> But I can't find a way to escape it
2021-08-28 21:59:47 +0200juhp_(~juhp@bb116-14-48-29.singnet.com.sg) (Ping timeout: 240 seconds)
2021-08-28 22:00:51 +0200dsrt^(~dsrt@12.16.129.111)
2021-08-28 22:01:07 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-08-28 22:02:35 +0200Guest32(~Guest32@188.113.204.172) (Quit: Client closed)
2021-08-28 22:03:44 +0200josh(~lordgrenv@141.226.14.154)
2021-08-28 22:04:08 +0200joshGuest8166
2021-08-28 22:06:03 +0200 <hololeap> mastarija: ok, I confirmed it
2021-08-28 22:06:21 +0200 <mastarija> I reported it in the meantime :D
2021-08-28 22:06:33 +0200 <hololeap> good idea
2021-08-28 22:06:39 +0200 <hololeap> because I don't see that documented
2021-08-28 22:06:51 +0200 <hololeap> and it shouldn't be happening inside a code block
2021-08-28 22:07:40 +0200APic(apic@apic.name)
2021-08-28 22:07:44 +0200 <mastarija> I've found a stackoverflow question where they confirmed it used to happen on GitHub as well, but they have added ability to escape [] later.
2021-08-28 22:08:02 +0200 <jiribenes> maerwald: AFAICT optparse-applicative already does this automatically when you're close enough
2021-08-28 22:08:07 +0200 <jiribenes> something like "edit distance at most two"
2021-08-28 22:08:57 +0200 <jiribenes> yeah, see here https://github.com/pcapriotti/optparse-applicative/blob/8edc41994984cbfdfc1ee960e4d4d112cfccbc11/s…
2021-08-28 22:10:00 +0200emliunix(~emliunix@61-216-165-205.hinet-ip.hinet.net) (Remote host closed the connection)
2021-08-28 22:10:18 +0200emliunix(~emliunix@61-216-165-205.HINET-IP.hinet.net)
2021-08-28 22:10:57 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-08-28 22:15:12 +0200tllp(~tllp@69.233.98.238)
2021-08-28 22:15:31 +0200 <maerwald> jiribenes: doesn't seem to work for subcommands
2021-08-28 22:19:46 +0200hololeap_(~hololeap@user/hololeap)
2021-08-28 22:20:25 +0200azeem(~azeem@5.168.92.20) (Ping timeout: 252 seconds)
2021-08-28 22:21:58 +0200azeem(~azeem@5.168.92.20)
2021-08-28 22:22:18 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-08-28 22:22:41 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer)
2021-08-28 22:23:06 +0200hololeap_hololeap
2021-08-28 22:30:52 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-28 22:31:19 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-08-28 22:35:40 +0200burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-08-28 22:41:42 +0200azeem(~azeem@5.168.92.20) (Ping timeout: 250 seconds)
2021-08-28 22:42:44 +0200azeem(~azeem@5.168.92.20)
2021-08-28 22:44:44 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-28 22:44:44 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-28 22:44:44 +0200wroathe(~wroathe@user/wroathe)
2021-08-28 22:47:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-28 22:47:56 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-08-28 22:56:58 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-08-28 22:59:07 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-08-28 23:00:39 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Client Quit)
2021-08-28 23:00:43 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-08-28 23:01:09 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-08-28 23:03:52 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-08-28 23:07:21 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-08-28 23:08:33 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35) (Remote host closed the connection)
2021-08-28 23:11:29 +0200Sgeo(~Sgeo@user/sgeo)
2021-08-28 23:12:43 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-08-28 23:12:43 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host)
2021-08-28 23:12:43 +0200wroathe(~wroathe@user/wroathe)
2021-08-28 23:12:46 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-08-28 23:13:01 +0200favonia(~favonia@user/favonia) (Ping timeout: 250 seconds)
2021-08-28 23:17:21 +0200azeem(~azeem@5.168.92.20) (Ping timeout: 250 seconds)
2021-08-28 23:18:26 +0200azeem(~azeem@5.168.106.177)
2021-08-28 23:21:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-28 23:21:28 +0200Guest8166(~lordgrenv@141.226.14.154) (Ping timeout: 252 seconds)
2021-08-28 23:24:30 +0200favonia(~favonia@user/favonia)
2021-08-28 23:24:35 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-08-28 23:26:48 +0200kimjetwav(~user@2607:fea8:235f:9730:4718:18aa:30c8:2ab8)
2021-08-28 23:28:21 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56)
2021-08-28 23:29:01 +0200berberman_(~berberman@user/berberman)
2021-08-28 23:29:17 +0200berberman(~berberman@user/berberman) (Ping timeout: 252 seconds)
2021-08-28 23:29:58 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56) ()
2021-08-28 23:38:09 +0200kenran(~kenran@200116b82bc02700b5002519151f8c73.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-08-28 23:40:04 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:45ef:351a:e045:ed35)
2021-08-28 23:42:46 +0200minimario(~minimario@2603:900a:1600:ba00:f194:27a7:3a07:9cc5)
2021-08-28 23:43:44 +0200 <minimario> i'm trying to read the type families article on ghc, what exactly is this syntax: "data instance XList Char = XCons !Char !(XList Char) | XNil"
2021-08-28 23:44:08 +0200 <minimario> what's the significance of ~ and |
2021-08-28 23:44:11 +0200 <minimario> *!
2021-08-28 23:45:45 +0200 <minimario> i know it's kind of like list syntax, but what are the key differences here?
2021-08-28 23:46:10 +0200 <minimario> (article here for reference: https://wiki.haskell.org/GHC/Type_families)
2021-08-28 23:48:28 +0200 <mastarija> minimario, ~ is a type equality and | is just a separator for different value constructors
2021-08-28 23:48:39 +0200 <mastarija> Just like with regular data definitions
2021-08-28 23:48:40 +0200t3hyoshi(~snicf@2600:8804:1b96:4900:1472:5a94:c594:83ca) (Quit: Konversation terminated!)
2021-08-28 23:48:56 +0200 <minimario> sorry i meant !, not ~
2021-08-28 23:49:08 +0200 <mastarija> ! is strictness modifier
2021-08-28 23:49:10 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 240 seconds)
2021-08-28 23:49:14 +0200 <minimario> what does that mean
2021-08-28 23:49:43 +0200 <mastarija> in short, it says that XCon doesn't contain a pointer to a Char, but Char it self
2021-08-28 23:49:52 +0200 <mastarija> Not really, but you can think of it that way
2021-08-28 23:50:20 +0200 <mastarija> Although, neither of those things are related to the type families
2021-08-28 23:51:16 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-28 23:52:10 +0200martin02(~silas@141.84.69.76) (Ping timeout: 240 seconds)
2021-08-28 23:53:37 +0200AlistairB(~AlistairB@121-200-5-212.79c805.syd.nbn.aussiebb.net)
2021-08-28 23:55:00 +0200 <yushyin> minimario: https://wiki.haskell.org/Performance/Data_types#Strict_fields
2021-08-28 23:56:47 +0200mastarija(~mastarija@78-3-210-70.adsl.net.t-com.hr) (Quit: Leaving)