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.