Home liberachat/#haskell: Logs Calendar

Logs on 2021-08-28 (liberachat/#haskell)

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

All times are in UTC on 2021-08-28.