Home freenode/#haskell: Logs Calendar

Logs on 2020-12-17 (freenode/#haskell)

00:00:10 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds)
00:00:19 <monochrom> yes up to parenthesizing
00:00:44 <monochrom> Perhaps think of :: as very low priority.
00:00:49 <monochrom> err, low precedence
00:00:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:01:04 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
00:03:13 × kupi quits (uid212005@gateway/web/irccloud.com/x-jxedmdsaplwusuum) (Quit: Connection closed for inactivity)
00:03:15 × Adluc quits (~Adluc@2a01:430:17:1::ffff:328) (Quit: ZNC - http://znc.in)
00:03:15 × hexo- quits (~hexo@83.167.228.130) (Quit: ZNC - http://znc.in)
00:03:23 cosimone_ joins (~cosimone@5.171.25.104)
00:03:45 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 240 seconds)
00:03:52 × LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
00:04:35 cosimone_ is now known as cosimone
00:05:24 <monochrom> > (((((\x -> x) :: a -> a) :: [a] -> [a]) :: [[a]] -> [[a]]) :: [[Int] -> [[Int]]) []
00:05:26 <lambdabot> <hint>:1:80: error: <hint>:1:80: error: parse error on input ‘)’
00:05:30 <monochrom> Darn
00:06:11 × Trixar_za quits (~Trixar_za@185.103.96.147) (Remote host closed the connection)
00:06:41 <monochrom> > (((((\x -> x) :: a -> a) :: [a] -> [a]) :: [[a]] -> [[a]]) :: [[Int]] -> [[Int]]) []
00:06:43 <lambdabot> []
00:06:44 <monochrom> :)
00:06:57 × drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 268 seconds)
00:08:21 <monochrom> Ah, I had [[Int] lacking one ]
00:08:41 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Read error: Connection reset by peer)
00:09:27 <fuzzypixelz> uhh, suppose I have functions f1, f2, and f3
00:09:55 <fuzzypixelz> and I want to say f is the function that applies f3 then f2 then f1
00:10:13 <monochrom> f = f1 . f2 . f3 ?
00:10:28 <monochrom> becuase then f x = f1 (f2 (f3 x))
00:10:30 <fuzzypixelz> okay... the dot operator is new to me
00:10:43 × Gigabitten quits (~Somn@098-127-002-172.res.spectrum.com) (Remote host closed the connection)
00:10:49 <monochrom> You can also just write f x = f1 (f2 (f3 x)) and KISS
00:11:21 <monochrom> Haskell's f . g is math's f ∘ g
00:11:25 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
00:11:28 × patrickp quits (~patrickp@windows98.dev) (Quit: Ping timeout (120 seconds))
00:11:32 <fuzzypixelz> oh yes, I just wanted to define a function and not apply it
00:11:48 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
00:11:54 <fuzzypixelz> I took up programming because I was tired of doing maths :|
00:12:00 <fuzzypixelz> something like that
00:12:24 patrickp joins (~patrickp@windows98.dev)
00:12:35 × nrmt^ quits (nrm@ip98-184-89-2.mc.at.cox.net) ()
00:12:39 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
00:14:00 <hpc> you may find that you're tired of doing calculation, and math (via programming) is a breath of fresh air ;)
00:14:04 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 260 seconds)
00:16:51 × wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 265 seconds)
00:18:53 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
00:21:05 Adluc joins (~Adluc@83.167.228.130)
00:22:23 <dolio> Not designing with automatic calculation in mind is one of the fundamental problems with most math.
00:22:25 × texasmynsted quits (~texasmyns@99.96.221.112) (Ping timeout: 264 seconds)
00:23:30 <boxscape> understandable considering a lot of it was invented before there were practical automata
00:23:39 texasmynsted joins (~texasmyns@99.96.221.112)
00:23:49 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 2.9)
00:24:02 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds)
00:24:13 × cads2 quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 268 seconds)
00:24:25 <dolio> For instance, some of the HoTT people proved "homotopy canonicity" of one of the theories. Canonicity is the thing that computer folks care about, because it says that when you define `M : Nat`, the computer will actually calculate a numeral for you. Homotopy canonicity says that every term is path-equivalent to a numeral, which only tells you that if you already know the answer you want, whatever the computer calculates will be provably equal to the
00:24:25 <dolio> answer.
00:24:45 devdsp joins (~devdsp@178.162.212.214)
00:25:17 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:25:31 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
00:27:47 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
00:27:56 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
00:28:07 <boxscape> so then someone had to invent cubical type theory?
00:28:19 <dolio> Yes, that was invented by people who actually cared about computation.
00:28:27 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 265 seconds)
00:29:59 <dolio> Being prior to automata isn't a very good excuse, really, because it generally seems that it's only been a problem since around the late 1800s or early 1900s, which is roughly the same time people started really getting into automata.
00:29:59 hexo- joins (~hexo@83.167.228.130)
00:30:10 <boxscape> hm, interesting
00:30:32 <boxscape> is the problem you're referring to basically having non-constructive proofs?
00:30:37 <dolio> Yeah.
00:31:22 <fuzzypixelz> why can't I use foldl on a tuple?
00:31:36 <monochrom> You can. At least I can.
00:31:37 × solonarv quits (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr) (Ping timeout: 268 seconds)
00:31:45 <chibi_> Say, what's the best way to program haskell on vim?
00:31:50 <monochrom> So your problem is probably elsewhere.
00:31:51 <fuzzypixelz> >foldl (*) 1 (2, 4, 6)
00:32:01 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6)
00:32:04 <boxscape> > foldl (*) 1 (2, 4, 6)
00:32:06 <lambdabot> error:
00:32:06 <lambdabot> • Could not deduce (Foldable ((,,) Integer Integer))
00:32:06 <monochrom> Oh, that. Tuple != List
00:32:07 <lambdabot> arising from a use of ‘foldl’
00:32:14 <monochrom> Use [2, 4, 6]
00:32:21 <fuzzypixelz> uhh
00:32:27 <chibi_> All the guides I see online, even those published this same year are already outdated and don't with the latest version of ghc.
00:32:37 <fuzzypixelz> that's the only way to get a product of the elements?
00:33:07 <boxscape> fuzzypixelz basically, foldl is for containers that contain elements of a single type, but tuples can contain elements of different types
00:33:09 <monochrom> No, 2*4*6 too
00:33:47 <boxscape> fuzzypixelz so you can do it with any such container, e.g. Data.Set and Data.Vector
00:33:52 <monochrom> I trust that you don't have a 10000-tuple, you merely have say a 4-tuple, so don't perfection-OCD it, just write "f (a,b,c,d) = a*b*c*d" and be done.
00:34:10 <fuzzypixelz> I though the type system can infer that my tuple has elements of the same type
00:34:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:34:28 <koz_> chibi_: I use ALE.
00:34:31 <koz_> (and Neoformat)
00:34:33 <monochrom> The type system can. But no function uses that information.
00:34:36 <koz_> It does basically everything I care about.
00:34:46 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 2.9)
00:34:55 <koz_> It requires some config adjustment but it works pretty well.
00:35:07 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
00:35:16 <c_wraith> fuzzypixelz: that's the opposite of how it works. The type system sees that a tuple is allowed to have different types for each element, therefore things that process a tuple aren't allowed to assume they are the same.
00:35:18 is_null joins (~jpic@pdpc/supporter/professional/is-null)
00:35:36 <boxscape> fuzzypixelz I think you could technically make a foldable instance for (a,a,a,a) (i.e. for a 4-tuple where every element has the same type), but I suppose it doesn't exist in the base library because it's not a typical use case
00:35:44 <boxscape> or wait
00:35:51 <boxscape> you could only with a newtype around it
00:36:00 × johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
00:36:04 <dolio> No, Foldable's argument is * -> *.
00:36:04 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
00:36:17 × Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
00:36:24 <boxscape> write but like `newtype Tuple4 a = Tuple4 (a,a,a,a)` should work
00:36:26 <c_wraith> of course... libraries can do wacky things
00:36:27 <c_wraith> > productOf each (2, 4, 7)
00:36:29 <boxscape> s/write/right
00:36:29 <lambdabot> 56
00:36:31 <boxscape> -.-
00:36:37 Kaeipi joins (~Kaiepi@47.54.252.148)
00:36:53 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
00:37:00 koz_ . o O ( Tuple4 = Fourple? )
00:37:01 <monochrom> Oh, so you just need lens.
00:37:10 <boxscape> koz_ quadruple
00:37:16 <c_wraith> lens's Each class, in particular.
00:37:19 <koz_> boxscape: I know, let me have my fun. :P
00:37:23 <c_wraith> Which has instances for tuples of all the same type
00:37:44 <boxscape> koz_ we had this discussion in ##adventofcode-spoilers the other day about thruple and triple
00:38:04 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:d958:171:8e7f:eb0c) (Remote host closed the connection)
00:38:17 <monochrom> Is thruple a Thursday tuple? :)
00:38:18 <koz_> boxscape: Colour me unsurprised.
00:38:29 <koz_> monochrom: Maybe in some households.
00:39:12 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 272 seconds)
00:39:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
00:40:37 <chibi_> koz_: I'll try those two out, thanks
00:40:47 <chibi_> Anything else you'd reccomend?
00:40:52 × nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 268 seconds)
00:41:15 <koz_> chibi_: I don't really need anything else. I use cabal-fmt and ormolu (cabal-fmt also needs some config twiddling, but not much) with Neoformat.
00:41:34 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving)
00:41:50 Noldorin joins (~noldorin@unaffiliated/noldorin)
00:42:17 <chibi_> koz_: Gotcha, thankye.
00:42:29 <dolio> I use hasktags. I think that's the only thing that isn't default vim.
00:42:33 <koz_> You're welcome. If you want my config, I'm happy to share.
00:42:52 <koz_> (I make use of local configs, but if you want all the same settings everywhere it'd work too)
00:44:08 × plutoniix quits (~q@node-uqx.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
00:44:18 × mounty quits (~mounty@2001:8000:2f59:0:e5bf:1b14:94d8:de8b) (Quit: Konversation terminated!)
00:47:02 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
00:47:02 × erolm_a quits (~erolm_a@62.19.36.64) (Read error: Connection reset by peer)
00:47:46 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
00:48:13 mounty joins (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c)
00:49:47 <fuzzypixelz> Anyone want to give feedback/comments/criticism/remarks on my AOC day 1 solution? https://bpa.st/U74Q
00:50:22 <fuzzypixelz> First time writing something in Haskell that isn't a "oh look at this fancy trick" example
00:50:40 <fuzzypixelz> thanks in advance
00:50:46 <fuzzypixelz> :)
00:51:07 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e)
00:53:30 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:54:54 <ChaiTRex> fuzzypixelz: It seems like you might be able to reuse a number, like if you had 2 and 1009, you would find 2 + 1009 + 1009 == 2020.
00:55:10 <ChaiTRex> I think `Num a` implies `Eq a`.
00:55:39 <koala_man> fuzzypixelz: did you consider doing it in a single list comprehension, a la [ x*y*z | x <- list, y <- list, z <- list, x+y+z == 2020]?
00:56:11 <ChaiTRex> No, I was wrong, `Num a` doesn't imply `Eq a`.
00:56:36 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:56:48 <fuzzypixelz> koala_man: I wanted to get the entries too, didn't realize I had no use for them until the end
00:57:15 <fuzzypixelz> ChaiTRex: ghc genrated the type signatures
00:57:42 <koala_man> could obviously have been (x,y,z) if you wanted them individually as well, and it would save an explicit filter
00:58:30 <fuzzypixelz> well yeah, there is no need for the filering part as I can see
00:58:31 <ChaiTRex> Oh, OK.
00:59:20 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:59:43 <ridcully> i'd extract the read part (separate it from generating the combinations). also can you do it agnostic of generating combinations for 2 and 3 elements?
01:00:30 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 245 seconds)
01:01:47 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:02:05 <fuzzypixelz> ridcully: I struggled to get the cartesian product part independent of the number of elements
01:02:20 <fuzzypixelz> ridcully: but the rest should be okay
01:03:13 <glguy> fuzzypixelz, I didn't generate the triples ahead of time so that I could prune some of them out as I went. Doing the read :: String -> Int ahead of time will keep you from duplicating that work once for each triple
01:03:21 <ChaiTRex> fuzzypixelz: One way to eliminate a bunch of nested parentheses like `putStr (solution (lines contents))` is to use `.`s between each function and `$` in front of the argument, like `putStr . solution . lines $ content`.
01:03:21 <ChaiTRex> Then it's sort of like an assembly line, where `content` goes through `lines`, then `solution`, then `putStr`.
01:03:50 <chibi_> You can even not include the argument if you write the function out pointfree and just have a composition.
01:03:54 <glguy> fuzzypixelz, your solution returns triples that can reuse the same element from the list multiple times
01:03:59 <chibi_> Though that depends on what exactly you're doing.
01:04:11 × stevenxl quits (uid133530@gateway/web/irccloud.com/x-dagdxzdthcnbrsqa) (Quit: Connection closed for inactivity)
01:04:22 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
01:04:23 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
01:04:38 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
01:04:56 nineonine joins (~nineonine@50.216.62.2)
01:05:15 <glguy> https://github.com/glguy/advent2020/blob/master/execs/Day01.hs -- this solution doesn't bother generating the triples at all
01:05:17 jpds joins (~jpds@gateway/tor-sasl/jpds)
01:06:08 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
01:06:31 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 2.9)
01:06:45 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Remote host closed the connection)
01:08:20 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
01:08:21 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
01:08:23 eruditass joins (uid248673@gateway/web/irccloud.com/x-mzencwftwbmswmrc)
01:09:26 Tario joins (~Tario@201.192.165.173)
01:11:21 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
01:12:01 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
01:14:41 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection)
01:16:33 Vulfe joins (~vulfe@2600:1702:31b0:34e0:2075:545b:f2d1:a150)
01:16:54 × lazyshrk quits (~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in)
01:17:12 × alx741 quits (~alx741@186.178.110.61) (Ping timeout: 272 seconds)
01:17:34 lazyshrk joins (~lazyshrk@128.199.58.13)
01:19:08 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
01:19:36 ransom_ joins (~c4264035@70-59-9-132.hlrn.qwest.net)
01:20:18 bitmagie joins (~Thunderbi@200116b8065b450029a1f7959c8665e8.dip.versatel-1u1.de)
01:21:34 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:2075:545b:f2d1:a150) (Ping timeout: 268 seconds)
01:22:28 Merfont joins (~Kaiepi@47.54.252.148)
01:22:48 × Kaeipi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
01:23:12 × joaj quits (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Ping timeout: 260 seconds)
01:24:02 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 268 seconds)
01:24:43 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6)
01:24:50 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e) (*.net *.split)
01:24:50 × mounty quits (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c) (*.net *.split)
01:24:50 × Noldorin quits (~noldorin@unaffiliated/noldorin) (*.net *.split)
01:24:51 × xff0x quits (~fox@2001:1a81:5229:f800:6bf4:ad68:acd0:bb77) (*.net *.split)
01:24:51 × jespada quits (~jespada@90.254.245.49) (*.net *.split)
01:24:51 × weechat_1 quits (~mingc@2400:8902::f03c:91ff:feb7:8e82) (*.net *.split)
01:24:51 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-esxplnjepcfjthew) (*.net *.split)
01:24:51 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-zzifphhwbirnbmhh) (*.net *.split)
01:24:51 × amerigo quits (uid331857@gateway/web/irccloud.com/x-rgqindfclfxyvhfd) (*.net *.split)
01:24:51 × fissureman quits (~quassel@c-73-163-84-25.hsd1.dc.comcast.net) (*.net *.split)
01:24:51 × tabaqui quits (~tabaqui@2604:a880:800:c1::21b:3001) (*.net *.split)
01:24:51 × DigitalKiwi quits (~kiwi@unaffiliated/digitalkiwi) (*.net *.split)
01:24:51 × teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split)
01:24:51 × entropygain quits (levitate@unaffiliated/entropygain) (*.net *.split)
01:24:51 × grol_ quits (~quassel@2620:11e:1000:2:250:56ff:fea4:7) (*.net *.split)
01:24:51 × NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (*.net *.split)
01:24:51 × emmanuel_erc quits (~user@2604:2000:1382:ce03::9af) (*.net *.split)
01:24:51 × Raito_Bezarius quits (~Raito@unaffiliated/raito-bezarius/x-8764578) (*.net *.split)
01:24:51 × benschza quits (~quassel@2604:1380:2000:cf00::1) (*.net *.split)
01:24:51 × TheScoop quits (~TheScoop@unaffiliated/tryte) (*.net *.split)
01:24:51 × lolmac quits (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng) (*.net *.split)
01:24:51 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc) (*.net *.split)
01:24:52 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (*.net *.split)
01:24:52 × coeus quits (~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de) (*.net *.split)
01:24:52 × mcfilib quits (sid302703@gateway/web/irccloud.com/x-pupkwpbkjgigplfb) (*.net *.split)
01:24:52 × glowpelt quits (~myst@focks.pw) (*.net *.split)
01:24:52 × nurupo quits (~nurupo.ga@unaffiliated/nurupo) (*.net *.split)
01:24:52 × aizen_s quits (sid462968@gateway/web/irccloud.com/x-ighywpehicgiourx) (*.net *.split)
01:24:52 × PoliticsII______ quits (sid193551@gateway/web/irccloud.com/x-ifhtanwghthhvmbn) (*.net *.split)
01:24:52 × benl23 quits (sid284234@gateway/web/irccloud.com/x-hgqgnkygwwcwddwc) (*.net *.split)
01:24:52 × yogani quits (sid42623@gateway/web/irccloud.com/x-xwocvhxoqauihzue) (*.net *.split)
01:24:52 × ManiacTwister quits (~Twister@2a01:4f8:171:4de::40:2) (*.net *.split)
01:24:52 × tnks quits (sid412124@gateway/web/irccloud.com/x-zbyszpuhbbhjdzks) (*.net *.split)
01:24:52 × heyj quits (sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw) (*.net *.split)
01:24:52 × typetetris quits (sid275937@gateway/web/irccloud.com/x-msdsoshziggpwxpy) (*.net *.split)
01:24:52 × simony quits (sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf) (*.net *.split)
01:24:52 × dgpratt quits (sid193493@gateway/web/irccloud.com/x-eisigjveajsvarno) (*.net *.split)
01:24:52 × moobar quits (sid171730@gateway/web/irccloud.com/x-svksvglonzzyzxxy) (*.net *.split)
01:24:52 × ReinH__ quits (sid179972@gateway/web/irccloud.com/x-ujhxicmjajcluchu) (*.net *.split)
01:24:52 × jakalx quits (~jakalx@base.jakalx.net) (*.net *.split)
01:24:52 × debugloop quits (~danieln@unaffiliated/debugloop) (*.net *.split)
01:24:52 × krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split)
01:24:52 × Ferdirand quits (~max@2001:4c78:2012:5000::2) (*.net *.split)
01:24:52 × lightandlight quits (sid135476@gateway/web/irccloud.com/x-iidtschrmhcqrxgl) (*.net *.split)
01:24:52 × J_Arcane quits (sid119274@gateway/web/irccloud.com/x-efprusjudjcoflyt) (*.net *.split)
01:24:52 × rodlogic__ quits (sid214676@gateway/web/irccloud.com/x-egfcshsulxcglqnw) (*.net *.split)
01:24:52 × dsturnbull quits (sid347899@gateway/web/irccloud.com/x-xmzhvaiswgjcomqa) (*.net *.split)
01:24:52 × topos quits (sid467876@gateway/web/irccloud.com/x-mqpmkdyaexkjdklr) (*.net *.split)
01:24:53 × jackdk quits (sid373013@gateway/web/irccloud.com/x-arnfpemfesqxinsb) (*.net *.split)
01:24:53 × yorick quits (~yorick@oftn/oswg-member/yorick) (*.net *.split)
01:24:53 × i7c quits (8Tki2L7DF5@unaffiliated/i7c) (*.net *.split)
01:24:53 × miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (*.net *.split)
01:24:53 × zyeri quits (zyeri@tilde.team/users/zyeri) (*.net *.split)
01:24:53 × infinisil quits (~infinisil@NixOS/user/infinisil) (*.net *.split)
01:24:53 × denucat quits (teqwve@2001:bc8:28d6::2) (*.net *.split)
01:24:53 × dumptruckman quits (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd) (*.net *.split)
01:24:53 × ego quits (~ego@parallaxcorporation.xyz) (*.net *.split)
01:24:53 × bspar quits (~bspar@2604:a880:0:1010::776:e001) (*.net *.split)
01:24:53 × idupree quits (~quassel@2604:a880:400:d0::9bb:2001) (*.net *.split)
01:24:53 × lpsmith quits (~lpsmith@unaffiliated/lpsmith) (*.net *.split)
01:24:53 × Forkk quits (forkk@2600:3c00::f03c:91ff:fe84:de4d) (*.net *.split)
01:24:53 × drdo quits (~drdo@overlord0.drdo.eu) (*.net *.split)
01:24:53 × riatre quits (~quassel@2001:310:6000:f::5198:1) (*.net *.split)
01:24:53 × bonz060 quits (~quassel@2001:bc8:47a4:a23::1) (*.net *.split)
01:24:53 × PHO_ quits (~pho@akari.cielonegro.org) (*.net *.split)
01:24:53 × solarus quits (~solarus@2a03:b0c0:2:d0::48:7001) (*.net *.split)
01:24:53 × xcin quits (~x@159.203.132.140) (*.net *.split)
01:24:53 × sim642 quits (~simmo@unaffiliated/sim642) (*.net *.split)
01:24:53 × xnyhps quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split)
01:24:53 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (*.net *.split)
01:25:09 nurupo joins (~nurupo.ga@unaffiliated/nurupo)
01:25:58 × sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
01:27:07 × dredozub- quits (~dredozubo@37.139.21.214) (Ping timeout: 246 seconds)
01:27:07 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
01:27:07 × adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (Ping timeout: 246 seconds)
01:27:16 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 252 seconds)
01:28:36 × melosense quits (~melosense@4e69b241.skybroadband.com) (Ping timeout: 240 seconds)
01:29:27 × Kronic quits (~Kronic___@84.203.96.46) (Quit: Leaving)
01:29:50 alx741 joins (~alx741@186.178.110.75)
01:30:07 adamCS joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com)
01:30:12 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e)
01:30:12 mounty joins (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c)
01:30:12 Noldorin joins (~noldorin@unaffiliated/noldorin)
01:30:12 xff0x joins (~fox@2001:1a81:5229:f800:6bf4:ad68:acd0:bb77)
01:30:12 jespada joins (~jespada@90.254.245.49)
01:30:12 weechat_1 joins (~mingc@2400:8902::f03c:91ff:feb7:8e82)
01:30:12 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-esxplnjepcfjthew)
01:30:12 bitmapper joins (uid464869@gateway/web/irccloud.com/x-zzifphhwbirnbmhh)
01:30:12 amerigo joins (uid331857@gateway/web/irccloud.com/x-rgqindfclfxyvhfd)
01:30:12 fissureman joins (~quassel@c-73-163-84-25.hsd1.dc.comcast.net)
01:30:12 tabaqui joins (~tabaqui@2604:a880:800:c1::21b:3001)
01:30:12 DigitalKiwi joins (~kiwi@unaffiliated/digitalkiwi)
01:30:12 teddyc joins (theodorc@cassarossa.samfundet.no)
01:30:12 entropygain joins (levitate@unaffiliated/entropygain)
01:30:12 grol_ joins (~quassel@2620:11e:1000:2:250:56ff:fea4:7)
01:30:12 NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur)
01:30:12 emmanuel_erc joins (~user@2604:2000:1382:ce03::9af)
01:30:12 Raito_Bezarius joins (~Raito@unaffiliated/raito-bezarius/x-8764578)
01:30:12 benschza joins (~quassel@2604:1380:2000:cf00::1)
01:30:12 TheScoop joins (~TheScoop@unaffiliated/tryte)
01:30:12 lolmac joins (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng)
01:30:12 betawaffle joins (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc)
01:30:12 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
01:30:12 coeus joins (~coeus@p200300d0271c3b00114a6166d66724be.dip0.t-ipconnect.de)
01:30:12 mcfilib joins (sid302703@gateway/web/irccloud.com/x-pupkwpbkjgigplfb)
01:30:12 glowpelt joins (~myst@focks.pw)
01:30:12 aizen_s joins (sid462968@gateway/web/irccloud.com/x-ighywpehicgiourx)
01:30:12 PoliticsII______ joins (sid193551@gateway/web/irccloud.com/x-ifhtanwghthhvmbn)
01:30:12 benl23 joins (sid284234@gateway/web/irccloud.com/x-hgqgnkygwwcwddwc)
01:30:12 yogani joins (sid42623@gateway/web/irccloud.com/x-xwocvhxoqauihzue)
01:30:12 ManiacTwister joins (~Twister@2a01:4f8:171:4de::40:2)
01:30:12 tnks joins (sid412124@gateway/web/irccloud.com/x-zbyszpuhbbhjdzks)
01:30:12 heyj joins (sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw)
01:30:12 typetetris joins (sid275937@gateway/web/irccloud.com/x-msdsoshziggpwxpy)
01:30:12 simony joins (sid226116@gateway/web/irccloud.com/x-keowsotekzgqfqdf)
01:30:12 dgpratt joins (sid193493@gateway/web/irccloud.com/x-eisigjveajsvarno)
01:30:12 moobar joins (sid171730@gateway/web/irccloud.com/x-svksvglonzzyzxxy)
01:30:12 ReinH__ joins (sid179972@gateway/web/irccloud.com/x-ujhxicmjajcluchu)
01:30:12 jakalx joins (~jakalx@base.jakalx.net)
01:30:12 debugloop joins (~danieln@unaffiliated/debugloop)
01:30:12 krjst joins (~krjst@2604:a880:800:c1::16b:8001)
01:30:12 Ferdirand joins (~max@2001:4c78:2012:5000::2)
01:30:12 lightandlight joins (sid135476@gateway/web/irccloud.com/x-iidtschrmhcqrxgl)
01:30:12 J_Arcane joins (sid119274@gateway/web/irccloud.com/x-efprusjudjcoflyt)
01:30:12 rodlogic__ joins (sid214676@gateway/web/irccloud.com/x-egfcshsulxcglqnw)
01:30:12 dsturnbull joins (sid347899@gateway/web/irccloud.com/x-xmzhvaiswgjcomqa)
01:30:12 topos joins (sid467876@gateway/web/irccloud.com/x-mqpmkdyaexkjdklr)
01:30:12 jackdk joins (sid373013@gateway/web/irccloud.com/x-arnfpemfesqxinsb)
01:30:12 i7c joins (8Tki2L7DF5@unaffiliated/i7c)
01:30:12 yorick joins (~yorick@oftn/oswg-member/yorick)
01:30:12 miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
01:30:12 zyeri joins (zyeri@tilde.team/users/zyeri)
01:30:12 infinisil joins (~infinisil@NixOS/user/infinisil)
01:30:12 denucat joins (teqwve@2001:bc8:28d6::2)
01:30:12 dumptruckman joins (dumptruckm@2600:3c02::f03c:91ff:fe6e:2cfd)
01:30:12 ego joins (~ego@parallaxcorporation.xyz)
01:30:12 bspar joins (~bspar@2604:a880:0:1010::776:e001)
01:30:12 idupree joins (~quassel@2604:a880:400:d0::9bb:2001)
01:30:12 lpsmith joins (~lpsmith@unaffiliated/lpsmith)
01:30:12 Forkk joins (forkk@2600:3c00::f03c:91ff:fe84:de4d)
01:30:12 drdo joins (~drdo@overlord0.drdo.eu)
01:30:12 sim642 joins (~simmo@unaffiliated/sim642)
01:30:12 riatre joins (~quassel@2001:310:6000:f::5198:1)
01:30:12 bonz060 joins (~quassel@2001:bc8:47a4:a23::1)
01:30:12 PHO_ joins (~pho@akari.cielonegro.org)
01:30:12 solarus joins (~solarus@2a03:b0c0:2:d0::48:7001)
01:30:12 xcin joins (~x@159.203.132.140)
01:30:12 xnyhps joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288)
01:30:12 tomjaguarpaw joins (~tom@li367-225.members.linode.com)
01:30:15 dredozubov joins (~dredozubo@37.139.21.214)
01:30:59 × miklcct quits (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Max SendQ exceeded)
01:31:10 miklcct joins (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
01:31:26 × columbarius quits (~columbari@mue-88-130-54-048.dsl.tropolys.de) (Ping timeout: 268 seconds)
01:33:22 × betawaffle quits (sid2730@gateway/web/irccloud.com/x-nwsshpoaasjiiopc) (Ping timeout: 249 seconds)
01:33:23 × aizen_s quits (sid462968@gateway/web/irccloud.com/x-ighywpehicgiourx) (Ping timeout: 249 seconds)
01:33:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:33:27 columbarius joins (~columbari@i5E86B369.versanet.de)
01:33:57 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-esxplnjepcfjthew) (Ping timeout: 260 seconds)
01:33:58 × amerigo quits (uid331857@gateway/web/irccloud.com/x-rgqindfclfxyvhfd) (Ping timeout: 260 seconds)
01:33:58 × lolmac quits (sid171216@gateway/web/irccloud.com/x-etsrrrsvkbkttjng) (Ping timeout: 260 seconds)
01:34:04 betawaffle joins (sid2730@gateway/web/irccloud.com/x-iqipatfmsyxtpnsb)
01:34:09 aizen_s joins (sid462968@gateway/web/irccloud.com/x-lsbqjsnyhdhmooyk)
01:35:52 lolmac joins (sid171216@gateway/web/irccloud.com/x-espdqhkcxsbkntws)
01:36:01 amerigo joins (uid331857@gateway/web/irccloud.com/x-dofzufotyixjvskt)
01:36:37 × mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 260 seconds)
01:36:56 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-zxxiepmgnexcriai)
01:37:12 × nhs quits (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
01:37:25 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
01:38:16 × Tene quits (~tene@poipu/supporter/slacker/tene) (Ping timeout: 260 seconds)
01:38:55 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:39:02 × ByronJohnson quits (~bairyn@unaffiliated/bob0) (Ping timeout: 264 seconds)
01:39:18 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
01:43:52 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
01:44:26 ByronJohnson joins (~bairyn@unaffiliated/bob0)
01:44:44 Tene joins (~tene@poipu/supporter/slacker/tene)
01:49:40 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
01:51:05 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
01:51:05 Lord_of_Life_ is now known as Lord_of_Life
01:56:38 mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74)
01:59:44 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
02:01:23 × mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 260 seconds)
02:01:26 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
02:03:12 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection)
02:03:13 brodie_ joins (~brodie@207.53.253.137)
02:03:45 × stux|RC-only quits (stux2@grid9.quadspeedi.net) (Read error: Connection reset by peer)
02:04:05 is_null joins (~jpic@pdpc/supporter/professional/is-null)
02:04:08 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
02:04:22 × joeyh quits (~joeyh@kitenet.net) (Quit: ZNC 1.8.1+deb1 - https://znc.in)
02:04:29 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
02:04:32 × demiurge quits (e@freenode/staff/spy.edk) (Quit: edk)
02:04:49 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
02:05:22 joeyh_ joins (joeyh@kitenet.net)
02:05:30 stux|RC-only joins (stux2@grid9.quadspeedi.net)
02:07:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
02:07:49 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 260 seconds)
02:08:17 × tinwood quits (~tinwood@general.default.akavanagh.uk0.bigv.io) (Remote host closed the connection)
02:09:32 × xff0x quits (~fox@2001:1a81:5229:f800:6bf4:ad68:acd0:bb77) (Ping timeout: 260 seconds)
02:11:18 xff0x joins (~fox@2001:1a81:5260:ab00:b677:a698:4a99:d811)
02:11:22 tinwood joins (~tinwood@general.default.akavanagh.uk0.bigv.io)
02:14:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
02:15:11 mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74)
02:21:36 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:24:49 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
02:25:34 edk_ joins (e@freenode/staff/spy.edk)
02:25:53 × lep-delete quits (~lep@94.31.80.94) (Ping timeout: 260 seconds)
02:27:55 lep-delete joins (~lep@94.31.80.94)
02:30:07 × Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com)
02:31:08 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 260 seconds)
02:32:34 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
02:32:57 lep-delete is now known as test
02:33:27 test is now known as Guest18945
02:33:34 jespada joins (~jespada@90.254.245.49)
02:35:50 hNoob joins (6b80d5f1@107-128-213-241.lightspeed.sntcca.sbcglobal.net)
02:37:07 × ransom_ quits (~c4264035@70-59-9-132.hlrn.qwest.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:37:45 × boxscape quits (54a35b08@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.91.8) (Ping timeout: 240 seconds)
02:39:12 <hNoob> I just installed stack for the first time (and did a 'stack update' and 'stack upgrade' just for good measure). When I attempt to install ghc-mod (stack install ghc-mod) it fails because ghc-mod (it decided to get ghc-mod-5.8.0.0) has dependency issues with a bunch of things including Cabal, base, etc. Any insights would be appreciated.
02:41:10 × amerigo quits (uid331857@gateway/web/irccloud.com/x-dofzufotyixjvskt) (Quit: Connection closed for inactivity)
02:41:44 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 268 seconds)
02:42:03 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
02:42:39 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
02:42:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:43:20 christo joins (~chris@81.96.113.213)
02:43:42 × columbarius quits (~columbari@i5E86B369.versanet.de) (Ping timeout: 260 seconds)
02:45:58 <chibi_> hNoob: ghc-mod is deprecated
02:46:33 <hNoob> Thank you chibi_
02:47:04 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:47:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
02:49:50 × Guest18945 quits (~lep@94.31.80.94) (Ping timeout: 256 seconds)
02:53:41 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6)
02:54:04 renzhi joins (~renzhi@2607:fa49:6500:ac00::bfed)
02:58:03 columbarius joins (~columbari@87.123.198.173)
02:59:50 × cosimone quits (~cosimone@5.171.25.104) (Quit: cosimone)
03:02:38 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
03:03:19 × jmchael_ quits (~jmchael@87.112.46.194) (Ping timeout: 268 seconds)
03:08:07 × cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection)
03:09:04 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:313a:ef0a:c021:651e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:11:00 cheater joins (~user@unaffiliated/cheater)
03:11:29 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd)
03:12:31 × bitmagie quits (~Thunderbi@200116b8065b450029a1f7959c8665e8.dip.versatel-1u1.de) (Quit: bitmagie)
03:14:12 ransom_ joins (~c4264035@70-59-9-132.hlrn.qwest.net)
03:16:47 × mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 272 seconds)
03:17:17 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:17:24 guest1216 joins (~user@49.5.6.87)
03:18:42 lep-delete joins (~lep@94.31.81.93)
03:18:54 <guest1216> if there're two parser, how to concat them? I mean let the second parser work on the result of the first one
03:19:00 × ransom_ quits (~c4264035@70-59-9-132.hlrn.qwest.net) (Quit: Textual IRC Client: www.textualapp.com)
03:19:37 <guest1216> removeSpace = spaces *> many (anyChar <* spaces)
03:19:45 <guest1216> p8 :: Parser [String]
03:20:19 <guest1216> p8 = {do; x <- many letter; char '='; y <- many letter; return [x,y]}
03:20:46 × theDon quits (~td@94.134.91.88) (Ping timeout: 256 seconds)
03:20:58 <dsal> You can push the result back into the parser state with megaparsec, but it's a bit weird. Why not just do the right thing the first time?
03:20:58 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
03:21:08 <guest1216> parse (removeSpace *> p8) "" "ab = cd" /= Right ["ab","cd"]
03:21:17 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:21:55 <guest1216> (Right (parse p8 "")) <*> (parse removeSpaces "" " a = b") == Right (Right ["a","b"])
03:22:02 <guest1216> but this is ugly...
03:22:16 theDon joins (~td@muedsl-82-207-238-174.citykom.de)
03:22:18 × cheater quits (~user@unaffiliated/cheater) (Remote host closed the connection)
03:22:22 <guest1216> dsal: more specific?
03:22:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
03:22:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:23:21 <dsal> If you want space consumed lexemes, that's lexeme here: https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec-Char-Lexer.html
03:23:30 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd)
03:23:36 <jle`> looks like you're talking about mutli-stage parsing
03:24:04 <guest1216> jle`: remove spaces first, then split by '=' into a list
03:24:05 lagothrix is now known as Guest64420
03:24:05 xirhtogal joins (~lagothrix@unaffiliated/lagothrix)
03:24:05 × Guest64420 quits (~lagothrix@unaffiliated/lagothrix) (Killed (karatkievich.freenode.net (Nickname regained by services)))
03:24:05 xirhtogal is now known as lagothrix
03:24:05 <jle`> but working with parser combinators, it is sort of designed to not require it if you are able to phrase your main problem in a parser combinatory way
03:24:19 <jle`> yes, that's what i mean. that's multi-pass/multi-stage parsing
03:24:45 <jle`> but that's not really how you're "supposed" to use parser combinators, in the general wisdom
03:24:52 <jle`> these days it's considered unidiomatic
03:24:52 <dsal> for that exact expression, a list seems weird. I'd just do something like `liftA2 (,) (lexeme word <* lexeme "=") (lexeme word)`
03:25:21 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
03:25:32 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds)
03:26:15 lep-delete is now known as Guest18945
03:27:18 cheater joins (~user@unaffiliated/cheater)
03:31:24 × dax quits (dax@bitbot/dax) (Quit: brb)
03:31:51 dax joins (dax@bitbot/dax)
03:32:07 <guest1216> p8 = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many letter; spaces; return [x,y]}
03:32:07 <guest1216>
03:32:19 <guest1216> this one can do that
03:32:43 <jle`> right, there is usualyl a way you can rephrase your program to not require multi stage parsing
03:33:06 <dsal> A list feels pretty wrong there, still. Why would you use a list of two items vs. a tuple?
03:33:06 Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.229)
03:33:50 <RENNNN> what's the easiest to use implementation of dikstra?
03:33:52 <dsal> `lexeme` is basically `spaces *> x <* spaces` so you can just drop it in places where spaces are optional.
03:33:55 <RENNNN> on cyclic graph
03:34:16 johnw joins (~johnw@haskell/developer/johnw)
03:34:56 <guest1216> dsal: ok, I will change it to a tuple
03:36:04 <dsal> guest1216: tuple also means you can do the liftA2 thing there if you want. e.g., `p8 = liftA2 (,) (lexeme word <* lexeme "=") (lexeme word) where word = many letter`
03:36:11 drbean joins (~drbean@TC210-63-209-202.static.apol.com.tw)
03:38:37 <guest1216> dsal: what's x in `spaces *> x <* spaces`?
03:38:45 <dsal> x is the parser you want between the spaces.
03:39:26 <guest1216> parse (spaces *> many letter <* spaces) "" "a = b" == Right 'a'
03:40:03 <guest1216> dsal: should I use many anyChar?
03:40:14 <dsal> Yes, but you can name `spaces *> x <* spaces` `lexeme x = spaces *> x <* spaces` and then just type `lexeme (many letter)` (or use the one in Text.Megaparsec.Char.Lexer
03:40:15 <dsal> )
03:40:51 <dsal> `many anychar ` might not do what you want. There are combinators like `manyTill`, but `many anyChar` will basically eat the rest of your input.
03:40:56 <guest1216> dsal: I'd like to try Text.ParserCombinators.Parsec first
03:41:06 <dsal> I usually use something like `satisfy`
03:41:59 × cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer)
03:42:25 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 240 seconds)
03:42:43 <dsal> Oh, I just looked at the source. lexeme is actually: `lexeme spc p = p <* spc`
03:42:46 <MarcelineVQ> idk if it's typical to consume the following spaces when lexing
03:42:57 <MarcelineVQ> oh huh :>
03:43:26 pfurla joins (~pfurla@216.151.180.208)
03:43:29 <dsal> It makes more sense to me to consume from the left. I guess that's worth knowing.
03:43:50 × MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
03:43:55 <dsal> I remember in the past getting confused and just shotgunning lexeme all over my code.
03:44:09 cheater joins (~user@unaffiliated/cheater)
03:44:16 MOSCOS joins (~MOSCOS@122.54.107.175)
03:48:07 × cheater quits (~user@unaffiliated/cheater) (Read error: Connection reset by peer)
03:48:32 <dsal> I still find Haskell easier to read than English. If I'd've read that code a long time ago, I'd've been less confused. The *parameter* doc says it's for the whitespace after the lexeme, but function doc doesn't make that obvious.
03:49:31 <guest1216> dsal: that lexeme is only in megaparsec? not in pasec?
03:50:02 <dsal> I don't know that anyone's used parsec in a long time, but that's the actual code for it there, so you can make your own. :)
03:50:36 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-sqydmizngzbsyouz) ()
03:50:48 <guest1216> haha, but parsec comes with ghc, so I like to try the old one first then others
03:51:48 cheater joins (~user@unaffiliated/cheater)
03:52:23 × cheater quits (~user@unaffiliated/cheater) (Client Quit)
03:52:44 <monochrom> MarcelineVQ: There is a convention that each parser holds the invariant "consume spaces after the stuff I need", therefore "when I start I can assume no space before the stuff I need". There is a global do-once "slurp beginning spaces" to kickstart the invariant.
03:53:20 <monochrom> Basically parsec's Token module started that convention.
03:55:13 <monochrom> I guess ReadS started that convention actually.
03:56:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
03:56:37 <monochrom> Err no, ReadS didn't. (Or, Prelude.lex didn't.)
03:57:46 hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
03:57:57 <monochrom> > lex " abc "
03:57:59 <lambdabot> [("abc"," ")]
03:58:46 <glguy> consuming spaces after lexing a token is particularly useful for parsec where consuming any input has an effect on backtracking
03:59:00 Maxdamantus always thought it made more sense to read at the start rather than at the end.
03:59:00 <monochrom> Yeah.
03:59:21 <glguy> so you don't want your lexeme parsers eating whitespace only to fail at parsing a lexeme
03:59:50 <glguy> nor do you want every alternative to have to reprocess the same whitespac
04:00:30 Rudd0 joins (~Rudd0@185.189.115.98)
04:01:00 <Maxdamantus> since nothing comes before the first thing to consume any leading whitespace, and trailing whitespace gets consumed by the EOF parser.
04:01:55 <glguy> all the other factors end up being much more important than that
04:02:42 <glguy> ideally you're just using an actual lexing pass, anyway
04:02:48 cheater joins (~user@unaffiliated/cheater)
04:03:28 <dsal> It's not lexec
04:03:44 × SupaYoshii quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!)
04:03:46 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
04:04:01 × pfurla quits (~pfurla@216.151.180.208) (Ping timeout: 265 seconds)
04:04:16 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Client Quit)
04:04:41 × hNoob quits (6b80d5f1@107-128-213-241.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
04:05:10 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
04:06:17 SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net)
04:06:44 Mikagami joins (~MOSCOS@152.32.70.55)
04:06:57 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
04:07:24 × jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 265 seconds)
04:07:42 × Mikagami quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer)
04:08:01 Mikagami joins (~MOSCOS@152.32.70.55)
04:09:44 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 260 seconds)
04:09:55 × MOSCOS quits (~MOSCOS@122.54.107.175) (Ping timeout: 268 seconds)
04:10:16 Cthalupa joins (~cthulhu@47.186.47.75)
04:10:41 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:10:55 × RENNNN quits (~sobhan@gentoo/developer/sobhan) (Quit: Leaving)
04:10:57 MOSCOS joins (~MOSCOS@122.54.107.175)
04:11:37 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 264 seconds)
04:13:11 stefan joins (~cri@42dots.de)
04:13:31 Stanley00 joins (~stanley00@unaffiliated/stanley00)
04:13:42 × Mikagami quits (~MOSCOS@152.32.70.55) (Ping timeout: 256 seconds)
04:16:15 × xsperry quits (~as@unaffiliated/xsperry) (Read error: Connection reset by peer)
04:17:34 petersen joins (~petersen@redhat/juhp)
04:18:33 × devdsp quits (~devdsp@178.162.212.214) (Ping timeout: 268 seconds)
04:19:22 argento joins (~argent0@168.227.97.23)
04:21:43 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:bc4d:596d:63fe:f2dd) (Quit: Textual IRC Client: www.textualapp.com)
04:23:57 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:24:48 <steve-chavez> Hello. While trying to upgrade cabal with `cabal install cabal-install`, I get a `unknown package: lukko` error. Does anyone know how to solve that?
04:25:38 × gienah quits (~mwright@gentoo/developer/gienah) (Quit: leaving)
04:25:44 <steve-chavez> cabal install lukko tells me there's no package lukko..
04:25:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:28:07 gienah joins (~mwright@gentoo/developer/gienah)
04:28:18 <glguy> steve-chavez, You can upgrade your cabal-install with ghcup
04:28:39 <glguy> steve-chavez, you might have to run 'cabal update' for it to see that package
04:29:33 <steve-chavez> Yes, I've done cabal update before. Will ghcup work on aarch64?
04:30:53 <steve-chavez> Just got ghc 8.8.3 working on ubuntu aarch64. If possible I'd like to compile cabal from source..
04:31:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
04:32:35 frankie2 joins (~frankie@s91904426.blix.com)
04:32:49 <glguy> I have no idea
04:33:16 <MarcelineVQ> dsal, monochrom: It does make sense, I wasn't thinking
04:33:38 <dsal> The backtracking thing made sense.
04:35:32 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection)
04:36:10 `shy_boy` joins (~xhearth@110.54.206.153)
04:36:12 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
04:36:13 × `shy_boy` quits (~xhearth@110.54.206.153) (Excess Flood)
04:36:50 sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
04:37:16 × drbean quits (~drbean@TC210-63-209-202.static.apol.com.tw) (Ping timeout: 256 seconds)
04:37:28 `shy_boy` joins (~xhearth@110.54.206.153)
04:37:55 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:c08f:f3d8:5294:ef76)
04:40:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
04:42:19 mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74)
04:43:30 <remexre> is there something like Functor+Foldable for containers with a fixed element?
04:44:08 <jle`> fixed element?
04:44:17 <MarcelineVQ> like monofunctor or something?
04:44:18 <remexre> uh like, specialized containers, e.g. IntVector
04:44:33 <remexre> ah yep that looks like it
04:44:33 <jle`> maybe mono-traversable
04:44:35 <remexre> thanks!
04:44:36 <jle`> mono-foldable
04:46:58 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
04:48:20 triode joins (~melosense@4e69b241.skybroadband.com)
04:48:24 triode is now known as Guest95606
04:48:36 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
04:51:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
04:51:43 × chibi_ quits (~chibi@75-26-238-119.lightspeed.glvwil.sbcglobal.net) (Ping timeout: 260 seconds)
04:54:04 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
04:56:49 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
04:57:24 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 268 seconds)
04:58:07 × renzhi quits (~renzhi@2607:fa49:6500:ac00::bfed) (Ping timeout: 272 seconds)
04:59:04 mbomba joins (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
04:59:28 × brodie_ quits (~brodie@207.53.253.137) (Quit: brodie_)
05:01:43 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 268 seconds)
05:01:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:14:40 brodie_ joins (~brodie@207.53.253.137)
05:15:02 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
05:15:56 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
05:15:57 × mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Ping timeout: 260 seconds)
05:17:09 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
05:20:49 brodie_ is now known as brodie
05:21:47 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
05:23:48 × StoneToad quits (~StoneToad@199-167-119-150.ppp.storm.ca) (Ping timeout: 260 seconds)
05:24:56 pyx joins (~pyx@unaffiliated/pyx)
05:25:05 × pyx quits (~pyx@unaffiliated/pyx) (Client Quit)
05:28:59 StoneToad joins (~StoneToad@104-192-232-58.ppp.storm.ca)
05:34:11 × brodie quits (~brodie@207.53.253.137) (Quit: brodie)
05:36:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
05:37:30 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
05:39:55 DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
05:41:22 × Jeanne-Kamikaze quits (~Jeanne-Ka@66.115.189.229) (Ping timeout: 256 seconds)
05:41:52 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
05:45:12 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
05:48:10 <guest1216> why there's no splitOn and splitWith in Data.List?
05:48:39 <guest1216> I know there's Data.List.Split, but why it doesn't come with ghc?
05:49:12 × `shy_boy` quits (~xhearth@110.54.206.153) (Remote host closed the connection)
05:49:26 <guest1216> and yeah, they're in Data.Text, but if we want to operate on String, we have to unpack String to Text?
05:49:29 plutoniix joins (~q@184.82.198.131)
05:50:32 `shy_boy` joins (~xhearth@110.54.206.153)
05:56:36 <maerwald> steve-chavez: not yet (wrt aarch64), but should be possible, since there are already debian aarch bindists and cabal ones as well
05:58:18 <maerwald> https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-aarch64-ubuntu-18.04.tar.xz
05:58:19 nek0 joins (~nek0@mail.nek0.eu)
05:58:25 <maerwald> https://downloads.haskell.org/~ghc/9.0.1-alpha1/ghc-9.0.0.20200925-aarch64-deb9-linux.tar.xz
06:02:23 <steve-chavez> maerwald: Whoa.. thanks! Hope that cabal-install 3.4 works with ghc 8.8.2.. 3.2 didn't ..
06:02:37 <steve-chavez> Because of https://github.com/haskell/cabal/issues/6327
06:03:08 brodie joins (~brodie@207.53.253.137)
06:05:43 coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
06:06:06 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:06:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:07:54 <steve-chavez> 3.4 contained a cabal binary! Hope I can compile my project now.. (crossing fingers)..
06:09:06 × cgfbee quits (~bot@oc1.itim-cj.ro) (Remote host closed the connection)
06:11:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:13:36 × brodie quits (~brodie@207.53.253.137) (Quit: brodie)
06:18:38 × mounty quits (~mounty@2001:8000:2f59:0:7042:17ea:748b:dc0c) (Ping timeout: 260 seconds)
06:18:40 × keltono quits (~keltono@x-160-94-179-178.acm.umn.edu) (Ping timeout: 246 seconds)
06:20:51 keltono joins (~keltono@x-160-94-179-178.acm.umn.edu)
06:27:30 × `shy_boy` quits (~xhearth@110.54.206.153) (Quit: PLease buy best selected product at http://amazonian2.000webhostapp.com/)
06:28:30 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:32:35 <koz_> maerwald: The oleg.fi download of cabal-install-3.4.0.0 blows up when ghcup tries to cURL it down.
06:33:29 mimi_vx joins (~mimi@2a01:490:16:1026:d923:3519:de60:eb74)
06:33:58 × noecho quits (~noecho@2a01:4f8:1c0c:80ee::4223) (Quit: ZNC - http://znc.in)
06:34:31 noecho joins (~noecho@2a01:4f8:1c0c:80ee::4223)
06:37:25 × sim590 quits (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 264 seconds)
06:38:35 <maerwald> koz_: how is that
06:39:09 <koz_> Where's tomsmeding's pastebin link gone...
06:39:34 <int-e> @where paste
06:39:34 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
06:39:56 <int-e> . o O ( I
06:40:00 <koz_> maerwald: https://paste.tomsmeding.com/Ky4SpOIX
06:40:04 <koz_> Like that.
06:40:26 <int-e> . o O ( I'd update @paste but we seem to be changing pastebins more frequently than I'm updating lambdabot :-/ )
06:40:51 <koz_> This is not specific to my machine (I've reproed it in at least two places), my cURL works fine on every other site, and every other version of cabal (when installing via ghcup).
06:41:16 <koz_> int-e: Are you in charge of lambdabot?
06:41:26 <koz_> If so, could you update @unmtl with more transformers?
06:41:29 <maerwald> internet is broken then I guess
06:41:55 <koz_> maerwald: I think it's an issue with oleg.fi honestly.
06:41:57 × nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Read error: Connection reset by peer)
06:42:02 <koz_> Figured I'd run it by you first.
06:42:07 nyaomin joins (~naomi@2603-7080-c43e-59ad-c878-29ff-fedf-ce89.res6.spectrum.com)
06:42:22 <int-e> koz_: maybe?
06:42:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:42:30 <maerwald> the certificate has no issuer name it seems
06:42:44 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
06:43:36 sim590 joins (~sim590@modemcable090.207-203-24.mc.videotron.ca)
06:43:51 <koz_> int-e: Maybe you're in charge, or maybe you could update @unmtl with more transformers?
06:45:49 <int-e> I'm in charge. I may get around to adding something to @unmtl
06:46:23 <koz_> int-e: OK, thanks!
06:46:34 <koz_> Main one is ExceptT.
06:47:33 <int-e> that one is actually in the repo version, just never got around to rebuilding the thing, it seems
06:48:24 × hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Ping timeout: 268 seconds)
06:52:12 <int-e> koz_: so since you brought it up, what are the others?
06:52:41 <koz_> int-e: That was basically the only one I need.
06:53:00 <koz_> I recall other folks mentioning some more, but that's the main one for me.
06:57:05 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
07:04:45 <guest1216> how to match a continuum string? letter can't match abc.cdef
07:05:53 <koz_> "Continuum string" sounds like a physics term. :P
07:05:59 p8m_ joins (p8m@gateway/vpn/protonvpn/p8m)
07:06:26 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:c08f:f3d8:5294:ef76) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:06:43 <guest1216> I don't know how to describe it, a string without spaces
07:07:14 <guest1216> a continuum non-space char?
07:07:23 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Read error: Connection reset by peer)
07:08:23 × danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
07:08:48 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 256 seconds)
07:10:25 × leothrix quits (~leothrix@elastic/staff/leothrix) (Ping timeout: 240 seconds)
07:12:17 asheshambasta joins (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be)
07:14:20 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Quit: ZNC 1.8.2 - https://znc.in)
07:15:20 hexo joins (~hexo@gateway/tor-sasl/hexo)
07:15:43 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
07:15:43 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds)
07:15:51 <MarcelineVQ> you're​mad​completely​mad​and​I​won't​have​it
07:16:03 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
07:16:03 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
07:16:04 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
07:16:04 × skiold quits (~skiold@gateway/tor-sasl/skiold) (Ping timeout: 240 seconds)
07:16:04 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
07:16:10 <steve-chavez> maerwald: It worked! Thank you so much man.. you saved me!
07:16:23 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
07:16:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
07:17:14 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
07:17:17 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
07:17:18 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:8872:797c:1a98:8dff)
07:17:18 jpds joins (~jpds@gateway/tor-sasl/jpds)
07:17:21 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
07:17:24 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
07:17:36 skiold joins (~skiold@gateway/tor-sasl/skiold)
07:17:39 gxt joins (~gxt@gateway/tor-sasl/gxt)
07:18:49 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
07:20:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
07:20:18 da39a3ee5e6b4b0d joins (~da39a3ee5@49.228.254.151)
07:20:56 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
07:23:25 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
07:23:31 solonarv joins (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr)
07:25:11 jamm joins (~jamm@unaffiliated/jamm)
07:26:13 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
07:26:31 leothrix joins (~leothrix@elastic/staff/leothrix)
07:26:56 × p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 240 seconds)
07:29:01 × iteratee quits (~kyle@162.211.154.4) (Ping timeout: 264 seconds)
07:31:22 iteratee joins (~kyle@162.211.154.4)
07:33:53 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: brb)
07:34:01 lambdabot joins (~lambdabot@silicon.int-e.eu)
07:34:01 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
07:34:01 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
07:34:43 × srk quits (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
07:34:43 × denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds)
07:35:05 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
07:36:03 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
07:36:23 × cantstanya quits (~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
07:36:24 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
07:36:43 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
07:37:01 srk joins (~sorki@gateway/tor-sasl/sorki)
07:37:02 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
07:37:06 teardown joins (~user@gateway/tor-sasl/mrush)
07:37:08 denisse joins (~spaceCat@gateway/tor-sasl/alephzer0)
07:37:45 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
07:39:20 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
07:39:26 cantstanya joins (~chatting@gateway/tor-sasl/cantstanya)
07:40:38 jamm joins (~jamm@unaffiliated/jamm)
07:41:26 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
07:44:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:44:42 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
07:50:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
07:50:40 p8m_ joins (p8m@gateway/vpn/protonvpn/p8m)
07:52:46 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
07:52:51 Guest18945 is now known as lep-delete
07:56:53 × frankie2 quits (~frankie@s91904426.blix.com) (Remote host closed the connection)
07:59:58 fendor joins (~fendor@178.165.130.183.wireless.dyn.drei.com)
08:02:09 × Varis quits (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer)
08:02:47 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
08:03:42 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
08:04:27 × steve-chavez quits (~steve-cha@190.43.229.137) (Quit: WeeChat 2.4)
08:09:08 × howdoi quits (uid224@gateway/web/irccloud.com/x-soxuifipgxjanjxg) (Quit: Connection closed for inactivity)
08:09:34 fendor_ joins (~fendor@77.119.130.134.wireless.dyn.drei.com)
08:09:40 <dsal> guest1216: You are probably looking for `satisfy`
08:11:31 <guest1216> dsal: I saw that letter = satisfy isAlpha, digit = satisfy isDigit, how to match a string without space
08:11:56 <dsal> :t satisfy
08:11:58 <lambdabot> error: Variable not in scope: satisfy
08:12:15 <dsal> satisfy is just (Char -> Bool)
08:12:27 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
08:12:29 <dsal> Make a function that returns true for chars you like.
08:12:40 × fendor quits (~fendor@178.165.130.183.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
08:12:40 wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5)
08:12:44 <dsal> `satisfy (/= ' ')`
08:12:53 <dibblego> :type isSpace
08:13:41 <dsal> :t isSpace
08:13:42 <lambdabot> Char -> Bool
08:14:45 Usurp1 joins (~Usurp@178.239.168.171)
08:15:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:18:56 chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
08:19:28 × marek quits (~mmahut@209.250.249.245) (Changing host)
08:19:28 marek joins (~mmahut@fedora/pyxel)
08:20:03 <guest1216> dsal: that's right!
08:26:31 <guest1216> dsal: sometimes the parser's return values may not be the same type, how to use <|> work on them? like `parse (x :: Parser (String,String) <|> y :: Parser (String, Int)) "" "..."`
08:26:53 <guest1216> <|> :: f a -> f a -> f a
08:27:28 <guest1216> I should use *> here...
08:27:51 <guest1216> never mind
08:30:57 Varis joins (~Tadas@unaffiliated/varis)
08:36:27 × Usurp1 quits (~Usurp@178.239.168.171) (Remote host closed the connection)
08:37:15 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:37:25 livvy joins (~livvy@gateway/tor-sasl/livvy)
08:39:27 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
08:40:51 × is_null quits (~jpic@pdpc/supporter/professional/is-null) (Remote host closed the connection)
08:43:12 × iteratee quits (~kyle@162.211.154.4) (Ping timeout: 256 seconds)
08:43:38 limpkin1 joins (~limpkin@s91904426.blix.com)
08:44:21 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
08:46:07 iteratee joins (~kyle@162.211.154.4)
08:48:24 <guest1216> try to turn "server = abc.net\nport=6667\nname =nick\n" to fromList[("server", "abc.net"), ("port","6667"), ("name","nick")]
08:48:32 × xff0x quits (~fox@2001:1a81:5260:ab00:b677:a698:4a99:d811) (Ping timeout: 260 seconds)
08:49:27 xff0x joins (~fox@2001:1a81:5260:ab00:d51e:2f78:24df:5c60)
08:49:54 <guest1216> p9 :: Parser (String,String); p9 = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many (satisfy (/= ' ')); spaces; return (x,y)}
08:51:06 <guest1216> parse p9 "" "on that repeatly string" won't work
08:51:44 kuribas joins (~user@ptr-25vy0i8agrj36ppuptm.18120a2.ip6.access.telenet.be)
08:53:59 <idnar> shouldn't that be satisfy (/= '\n')?
08:54:37 <iqubic> Even better is "satify (not isSpace)"
08:54:47 <iqubic> Using "isSpace" from Data.Char
08:55:43 __monty__ joins (~toonn@unaffiliated/toonn)
08:56:32 <guest1216> but that only get Right ("server","abc.net")
08:56:51 <guest1216> there're three repeat blocks in that string
08:57:03 <merijn> guest1216: Well, p9 doesn't magically get repeated
08:57:05 <guest1216> I don't know how to math that
08:57:19 <merijn> guest1216: If you write "parse p9" it will parse 'p9' *once*
08:57:23 <guest1216> merijn: how to let p9 repeat?
08:57:28 <guest1216> forever p9:
08:57:45 <merijn> Well, looking at your example input, you probably want "sepBy p9 eol"
08:57:49 <merijn> @hoogle sepBy
08:57:50 <lambdabot> Text.ParserCombinators.ReadP sepBy :: ReadP a -> ReadP sep -> ReadP [a]
08:57:50 <lambdabot> Text.Parsec sepBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
08:57:50 <lambdabot> Text.Parsec.Combinator sepBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
08:57:53 <merijn> hmm
08:58:10 <merijn> Probably want the version from parser-combinators if you're using megaparsec
08:58:27 <solonarv> yes, and it's re-exported by megaparsec
08:58:33 <guest1216> I don't know speBy's usage, spe is short for?
08:58:38 <merijn> separator
08:58:52 <solonarv> *sep*, not *spe*
08:58:55 <merijn> "sepBy x y" is "parse 0 or more 'x' separated by 'y'"
08:59:11 <solonarv> "sepBy" is short for "separated by", it's meant to be used infix
08:59:13 <merijn> So "sepBy p9 eol" would be "parse 0 or more p9, separated by newlines"
08:59:36 <solonarv> for example, "p9 `sepBy` eol" reads "p9 separated by newline(s)"
08:59:56 <guest1216> ok, I will try it
09:00:26 × Ekho quits (~Ekho@unaffiliated/ekho) (Quit: CORE ERROR, SYSTEM HALTED.)
09:01:17 oish joins (~charlie@228.25.169.217.in-addr.arpa)
09:01:36 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 268 seconds)
09:01:38 <guest1216> there's no eol in Text.Parsec...
09:02:15 <dminuoso> merijn: From what I gathered over the past few days, they're using parsec?
09:02:21 Cthalupa joins (~cthulhu@47.186.47.75)
09:02:32 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
09:03:32 sh9 joins (~sh9@softbank060116136158.bbtec.net)
09:04:37 cfricke joins (~cfricke@unaffiliated/cfricke)
09:05:52 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds)
09:07:08 <int-e> guest1216: there's https://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec-Char.html#v:endOfLine
09:07:36 oish joins (~charlie@228.25.169.217.in-addr.arpa)
09:08:51 superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
09:09:28 <superstar64> is there a sort of semi flexible instances, where you can only match `T a b c` or raw type variables `a`?
09:09:36 <superstar64> i find i'm doing this pattern a lot in my code
09:09:44 <guest1216> parse (sepBy p9 endOfLine) "" "server = abc.net\n port= 6667\n" == Right ("server", "abc.net\n")
09:11:43 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
09:12:54 hexo joins (~hexo@gateway/tor-sasl/hexo)
09:13:38 thc202 joins (~thc202@unaffiliated/thc202)
09:13:48 Ekho joins (~Ekho@unaffiliated/ekho)
09:14:08 × heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Remote host closed the connection)
09:14:51 <dminuoso> superstar64: What do you mean by "only match `T a b c`" exactly?
09:15:08 <superstar64> that's the normal requirement for instances right?
09:15:10 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
09:15:51 <superstar64> i just want instances with that and the option to match with only a type variable
09:15:55 <dminuoso> superstar64: Standard Haskell demands the shape of the instance head to be `T a_0 a_2 .. a_n` where a_0 through a_n is an arbitrary amount of type variables
09:16:08 <superstar64> yes i know that
09:16:15 <dminuoso> So what is your question exactly?
09:16:52 <superstar64> i'm just noticing i'm doing something slightly looser and i'm wonder if there's a limited version of flexible instances?
09:17:00 <dminuoso> What do you mean by "limited" exactly?
09:17:12 <dminuoso> Do you have an example of an instance you'd like to write?
09:17:17 <superstar64> the normal `T a b c` and the ability to match `a`
09:17:24 <dminuoso> You mean like `T Int b c` ?
09:17:29 <superstar64> no
09:17:43 <dminuoso> Then I do not understand.
09:18:29 <superstar64> `instance (a ~ a') => F a (MyObject a')`
09:18:56 <superstar64> i only want the ability to match `T a b c` and `a`
09:20:22 <superstar64> " (Arguably it should be okay if just one has this form and the others are type variables, but that’s the rules at the moment)." from https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#extension-FlexibleInstances
09:20:30 <superstar64> is there more info on this?
09:24:07 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
09:24:58 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Quit: hyiltiz)
09:25:13 × Bigcheese quits (~quassel@unaffiliated/bigcheese) (Remote host closed the connection)
09:26:09 hyiltiz joins (~quassel@93.119.106.77)
09:26:09 × hyiltiz quits (~quassel@93.119.106.77) (Changing host)
09:26:09 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
09:26:21 Bigcheese joins (~quassel@unaffiliated/bigcheese)
09:26:50 × da39a3ee5e6b4b0d quits (~da39a3ee5@49.228.254.151) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:27:45 <lortabac> superstar64: do you mean you want to forbid the head of the instance declaration from mentioning concrete types in type-constructor arguments?
09:28:02 <superstar64> yes
09:28:23 <superstar64> i just want normal rules in addition to matching type variables
09:29:18 <guest1216> where it's wrong? https://paste.ubuntu.com/p/QSCc59fsFR/
09:29:29 <lortabac> superstar64: isn't it just Haskell 98?
09:29:55 <superstar64> lortabac, no you can't do `instance F a where`
09:31:15 <lortabac> is there a use case for 'instance F a'?
09:31:18 <merijn> superstar64: You can, but that overlaps everything, so that's not what you want :p
09:31:21 <merijn> lortabac: No
09:31:22 <dminuoso> superstar64: https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/multi.pdf should be a worthwhile read.
09:31:50 <superstar64> there's a uses with multiple param typeclasses
09:32:22 <merijn> superstar64: multi param typeclasses aren't standard anyway, so Haskell2010 says nothing about it :p
09:32:23 <int-e> guest1216: satisfy (/= ' ') matches newlines
09:32:23 michalz joins (~user@185.246.204.59)
09:32:42 <superstar64> well i want multi param typeclasses with semi flexible instances
09:32:52 <merijn> That's not a thing
09:33:03 <int-e> guest1216: not sure what to use instead, maybe try satisfy (not . isSpace) (isSpace is from Data.Char)
09:33:05 <merijn> Just enable FlexibleInstances
09:33:15 <lortabac> superstar64: even with multi param typeclasses, matching on 'a' is generally a bad idea
09:33:49 <int-e> guest1216: the other thing that's wrong is that you don't terminate the parse using `eof`, so it can stop in the middle and discard the remaining input.
09:34:35 <dminuoso> superstar64: So you roughly want something like `instance {-# OVERLAPPING #-} C (T a b c); instance C a` ?
09:34:36 <lortabac> superstar64: there might be situations in which it is necessary, but those are certainly not common
09:34:59 <superstar64> what's `{-# OVERLAPPING #-}`?
09:35:10 <int-e> guest1216: try parse (endEndBy parseAll endOfLine *> eof)
09:35:21 <int-e> guest1216: err, sepEndBy
09:35:43 <dminuoso> superstar64: Overlapping instances, keep in mind that `instance C a`, were it allowed, would match *all* types, including `T a b c`
09:37:13 <dminuoso> Unlike case-of in the value world, where the pattern matching has a tractable order, such that `case t of T ... -> ...; _ -> ...` makes sense, it doesn't work like that typeclasses. If `instance C a` was allowed, the above would be the sort of equivalent
09:37:19 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
09:37:19 amerigo joins (uid331857@gateway/web/irccloud.com/x-qlwggbtbsclqlize)
09:37:44 <dminuoso> Oh. it seems allowed inf act with FlexibleInstances
09:37:48 <dminuoso> % instance Functor f
09:37:48 <yahb> dminuoso: ; <interactive>:5:10: warning: [-Wmissing-methods]; * No explicit implementation for; `fmap'; * In the instance declaration for `Functor f'
09:37:55 <dminuoso> Well. I guess there you go, then.
09:38:26 dminuoso regrets overlapping instances every time
09:38:46 <superstar64> maybe i can avoid flexible instances with functional dependencies, i'll try to refactor my code
09:38:58 <dminuoso> superstar64: fundeps does not replace flexible instances.
09:39:10 <merijn> https://twitter.com/Symbo1ics/status/1339328851365814272 >.>
09:39:11 <superstar64> does it replace my specific usecase?
09:39:16 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-zxxiepmgnexcriai) (Quit: Connection closed for inactivity)
09:39:25 <dminuoso> in fact, for fundeps to be useful you usually have to enable MPTC, and flexible instances/contexts anyway
09:39:36 nineonine joins (~nineonine@50.216.62.2)
09:40:04 <int-e> merijn: why does that sound like XML
09:41:09 <lortabac> superstar64: you didn't say what you use case is :)
09:41:12 <lortabac> *your
09:41:20 <int-e> (What I mean is, in this context, JSON looks like an XML-shaped hole for people to fall into.)
09:41:36 <dminuoso> int-e: Unlike programming code, JSON is human readable!
09:41:43 <superstar64> i'm writing a compiler and i find this neat way of having composible typesystems
09:41:44 <merijn> @quote the.essence.of
09:41:44 <lambdabot> dibblego says: if only all/most programmers understood the essence of compositional programming... _peter: Stupid question, is there any nice way to do a ::= with a list?
09:41:47 <merijn> aww
09:41:49 <merijn> wrong quote
09:42:05 <superstar64> it's a lot of `instance (a ~ a') => F a (G a')`
09:42:10 <merijn> @quote Wadler essence.of
09:42:11 <lambdabot> Wadler says: So, the essence of XML is this: the problem it solves is not hard, and it does not solve the problem well.
09:42:25 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 240 seconds)
09:42:35 × mbomba quits (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0)
09:43:16 <kuribas> the tools around it suck, but then it's made for languages that suck
09:43:23 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
09:43:28 <kuribas> so it cancels out
09:43:35 RusAlex joins (~Chel@unaffiliated/rusalex)
09:44:51 × MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
09:45:15 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 265 seconds)
09:45:17 MOSCOS joins (~MOSCOS@122.54.107.175)
09:45:31 <lortabac> superstar64: it's hard to tell without knowing the details, but at first sight it looks like a good use case for singleton-bool
09:46:40 <superstar64> i have things like `data Application e = Application e e` ... `instance TypeCheck e (Application e')` ...
09:49:38 <lortabac> superstar64: so the purpose of the instance is only to ensure that the types are equal?
09:50:00 <lortabac> is there are instance for when the types are NOT equal?
09:50:14 <superstar64> i don't think so
09:50:26 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
09:50:36 <lortabac> then can't you just write a function?
09:50:50 × dexterlb quits (~dexterlb@2a01:9e40:2:2::2) (Quit: Boing)
09:51:11 <superstar64> i have a giant either chain, and the an instance for `TypeCheck` for either
09:51:19 <superstar64> and a project from my ast to the either chain
09:51:21 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:51:21 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
09:51:25 edk_ is now known as demiurge
09:51:38 dexterlb joins (~dexterlb@2a01:9e40:2:2::2)
09:52:08 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
09:52:09 × fendor_ quits (~fendor@77.119.130.134.wireless.dyn.drei.com) (Remote host closed the connection)
09:52:21 <lortabac> superstar64: are you sure you need the TypeCheck class at all?
09:52:35 <superstar64> well, i don't need them, but it makes this code way more composble
09:53:21 <lortabac> the purpose of type classes is overloading, if you don't do any overloading I don't see the point
09:53:23 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
09:53:42 <lortabac> but I don't know your code, so I might have misunderstood
09:53:44 <superstar64> if i have 2 different asts, i can share a lot of code between them this way
09:54:04 <superstar64> i just need to project them both into an either chain
09:54:36 <lortabac> then it looks like you need 'instance TypeCheck AST1' and 'instance TypeCheck AST2'
09:55:03 <superstar64> no, i have each constructor as it's own type
09:55:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 264 seconds)
09:58:32 fendor joins (~fendor@77.119.130.134.wireless.dyn.drei.com)
09:58:40 <solonarv> superstar64: what are the methods of this TypeCheck class?
09:59:56 <superstar64> i just have 1 method per typeclass
10:00:35 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
10:00:45 <solonarv> that is an extremely weird way of splitting things up
10:00:50 × argento quits (~argent0@168.227.97.23) (Remote host closed the connection)
10:01:42 <solonarv> but what, *exactly*, is the (apparently only) method of TypeCheck?
10:03:48 <superstar64> `class TypeCheck m e σ where { typeCheck :: e -> m σ }`
10:04:28 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
10:05:27 <solonarv> uhhh... then how are you writing 'data Application e = Application e e; instance TypeCheck e (Application e') where ...' ? that doesn't kind-check
10:06:20 <superstar64> give me a second, i'll post a paste after i'm done refactoring
10:08:46 <merijn> I'm now morbidly curious
10:11:09 <superstar64> https://gist.github.com/Superstar64/5eb07d95e538f8a320d611471471d3dd
10:11:30 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
10:11:45 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds)
10:13:26 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
10:13:42 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
10:13:47 oish joins (~charlie@228.25.169.217.in-addr.arpa)
10:14:31 heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8)
10:17:15 jamm joins (~jamm@unaffiliated/jamm)
10:17:46 <superstar64> this is called the tagless final style right?
10:18:06 <superstar64> i read oleg's paper on tihs
10:18:33 <superstar64> or wait, i might be misremebering
10:19:17 × heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 260 seconds)
10:19:38 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:21:55 <merijn> Well...that looks like a nightmare to actually use :)
10:22:22 <solonarv> I agree. I can't fathom why you would design your compiler like this.
10:22:38 <superstar64> so i can share code between 2 different asts?
10:22:58 <merijn> superstar64: In reality you can't share code between different ASTs
10:23:00 × pjb quits (~t@2a01cb04063ec5007460d15e87468757.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
10:23:04 <solonarv> do you actually *have* two different ASTs? I don't even see one AST in there
10:23:06 <superstar64> if i have a hindley milner version and an explicited typed version, i can share these typing rules
10:23:20 <superstar64> that's only the typing rules solonarv
10:23:39 <merijn> Prediction: The overhead and confusion of this whole approach will cost you 5x more time than simply writing the code twice
10:23:59 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
10:24:08 <solonarv> merijn: seconded
10:24:15 <superstar64> https://gist.github.com/Superstar64/dfd430fcf10f3cb6363b5377116a96d1
10:24:25 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving)
10:24:27 <superstar64> here's a snippet from my core language
10:24:53 <superstar64> it's been working pretty well for me so far
10:27:09 <fuzzypixelz> can I write multiline list comprehensions?
10:27:31 <superstar64> fuzzypixelz, can't you use do notation for that?
10:27:35 <guest1216> int-e: https://paste.ubuntu.com/p/SVc9hPqn3t/
10:28:19 <solonarv> fuzzypixelz: of course, you can generally spread any expression out over multiple lines; list comprehensions are no exception to that
10:29:04 <fuzzypixelz> yes, but I don't know how to use do notation...
10:29:04 <guest1216> int-e: https://paste.ubuntu.com/p/Ssn6PbxJVK/
10:30:01 <solonarv> fuzzypixelz: here's an example of a multiline list comprehension: https://github.com/Solonarv/adventofcode-2020/blob/main/haskell/solutions/Day03.hs#L46-L53
10:30:03 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
10:30:25 u0_a203__ joins (~u0_a203@37.98.47.224)
10:31:03 × u0_a203__ quits (~u0_a203@37.98.47.224) (Client Quit)
10:33:38 ubert joins (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de)
10:35:16 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
10:35:16 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Client Quit)
10:35:38 × guest1216 quits (~user@49.5.6.87) (Ping timeout: 256 seconds)
10:37:27 Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it)
10:40:50 × xff0x quits (~fox@2001:1a81:5260:ab00:d51e:2f78:24df:5c60) (Ping timeout: 264 seconds)
10:41:39 xff0x joins (~fox@2001:1a81:5260:ab00:d700:e460:f864:a3a3)
10:43:10 × st8less quits (~st8less@inet-167-224-197-181.isp.ozarksgo.net) (Quit: WeeChat 2.9)
10:47:30 inkbottle joins (~inkbottle@aaubervilliers-654-1-95-58.w86-212.abo.wanadoo.fr)
10:48:06 × zebrag quits (~inkbottle@aaubervilliers-654-1-76-48.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds)
10:49:01 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
10:51:48 raichoo joins (~raichoo@dslb-092-073-214-015.092.073.pools.vodafone-ip.de)
10:52:36 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
10:55:05 berberman joins (~berberman@unaffiliated/berberman)
10:56:26 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
11:01:44 × cvlad- quits (sid203065@gateway/web/irccloud.com/x-tonetmfmrrlnwmtg) (Quit: Connection closed for inactivity)
11:01:59 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
11:03:26 × srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
11:03:39 srk joins (~sorki@gateway/tor-sasl/sorki)
11:07:11 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404)
11:09:31 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
11:09:46 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
11:10:38 × superstar64 quits (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) (Remote host closed the connection)
11:11:52 Death_ joins (~Death@125.166.65.72)
11:15:58 heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8)
11:16:28 borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de)
11:18:12 dhil joins (~dhil@78.156.97.38)
11:19:49 LKoen joins (~LKoen@29.248.88.92.rev.sfr.net)
11:21:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 264 seconds)
11:21:44 oish joins (~charlie@228.25.169.217.in-addr.arpa)
11:22:45 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Client Quit)
11:23:06 oish joins (~charlie@228.25.169.217.in-addr.arpa)
11:24:06 ClaudiusMaximus joins (~claude@196.67.6.51.dyn.plus.net)
11:24:06 × ClaudiusMaximus quits (~claude@196.67.6.51.dyn.plus.net) (Changing host)
11:24:06 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
11:24:19 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Client Quit)
11:24:42 oish joins (~charlie@228.25.169.217.in-addr.arpa)
11:28:58 × Miroboru quits (~myrvoll@78.156.11.206) (Ping timeout: 260 seconds)
11:28:59 × matryoshka quits (~matryoshk@184.75.223.227) (Ping timeout: 268 seconds)
11:29:14 Miroboru joins (~myrvoll@78.91.103.180)
11:29:57 × Death_ quits (~Death@125.166.65.72) (Quit: Leaving...)
11:32:46 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: Lost terminal)
11:33:11 oish joins (~charlie@228.25.169.217.in-addr.arpa)
11:34:01 <pja> solonarv: I usually turn those into do .. pure blocks.
11:34:39 <pja> Not sure why, but I prefer it that way.
11:37:55 <int-e> pja: they lay out more nicely and the result is at the end... so when reading code linearly you know what the variables in there are. all this for the small price of having to use `guard` for filtering by boolean constraints
11:39:58 × rprije quits (~rprije@14-203-203-69.tpgi.com.au) (Ping timeout: 246 seconds)
11:40:44 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: Lost terminal)
11:41:08 oish joins (~charlie@228.25.169.217.in-addr.arpa)
11:42:33 mouseghost joins (~draco@wikipedia/desperek)
11:45:51 christo joins (~chris@81.96.113.213)
11:49:14 × wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 264 seconds)
11:50:45 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: Lost terminal)
11:51:11 oish joins (~charlie@228.25.169.217.in-addr.arpa)
11:55:51 Tario joins (~Tario@201.192.165.173)
11:57:52 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
11:58:01 cgfbee joins (~bot@oc1.itim-cj.ro)
12:01:12 × carldd0 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Quit: The Lounge - https://thelounge.chat)
12:01:20 kenran joins (~kenran@i59F67BCB.versanet.de)
12:01:37 carldd joins (~carldd@90-224-49-113-no56.tbcn.telia.com)
12:07:12 superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net)
12:07:14 × borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
12:08:11 <[exa]> is there any good reading material about the logic of migrations in Database.Selda ? (tutorial is missing so far)
12:09:27 × berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in)
12:09:53 berberman joins (~berberman@unaffiliated/berberman)
12:10:16 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:12:18 Entertainment joins (~entertain@104.246.132.210)
12:13:57 jamm joins (~jamm@unaffiliated/jamm)
12:14:15 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
12:22:38 × Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 268 seconds)
12:29:25 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
12:30:42 FreeBirdLjj joins (~freebirdl@101.87.168.174)
12:31:22 jmchael_ joins (~jmchael@87.112.46.194)
12:33:05 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 240 seconds)
12:33:55 <cheater> has anyone been able to compile the llvm lib for llvm 9.0.1 on windows?
12:33:57 Cthalupa joins (~cthulhu@47.186.47.75)
12:35:12 <fuzzypixelz> hello
12:35:16 <fuzzypixelz> I write
12:35:18 <fuzzypixelz> lambda byr: byr >= 1920 and byr <= 2002
12:35:23 × FreeBirdLjj quits (~freebirdl@101.87.168.174) (Ping timeout: 265 seconds)
12:35:48 <[exa]> fuzzypixelz: that's some snakeish variant of haskell?
12:35:50 <int-e> That doesn't look like Haskell, what is it? Python?
12:35:53 <fuzzypixelz> but pylint says: simplify chained expression between operands
12:36:01 <int-e> [exa] said it better
12:36:02 <fuzzypixelz> oh my lord! wrong channel!
12:36:12 <[exa]> p a r s e l t o n g u e
12:36:36 <superstar64> https://pyos.github.io/dg/
12:36:37 <[exa]> oh worry not though. :]
12:36:53 <fuzzypixelz> Please forgive my blasphemy
12:37:22 <superstar64> fuzzypixelz, you might be interested in dogelang
12:37:26 <idnar> fuzzypixelz: lambda byr: 1920 <= byr <= 2002 # a freebie
12:37:55 <fuzzypixelz> I will definitely check it out superstar64, as in right now
12:38:15 <[exa]> cheater: still the same problem with linking btw? (you might want to ask in #llvm, there will likely be more windowsy people)
12:38:17 <superstar64> "With Haskell's syntax but none of its type system, dg is the best way to make fans of static typing shut up already"
12:38:27 <cheater> [exa]: yes
12:38:28 <int-e> fuzzypixelz: good luck with the AoC :P
12:38:30 <fuzzypixelz> thanks idnar
12:38:45 <cheater> the llvm channel was completely useless no one even uses windows there
12:38:57 <int-e> or maybe :--< (split tongue)?
12:39:28 <[exa]> cheater: why you want it to work on windows anyway? windows simply doesn't support a lot of stuff, done.
12:39:35 <fuzzypixelz> int-e: I tried to do it with Haskell, but my tricks ran our on day 2, I just said what the heck I'll rewrite it later when I learn how to split a freaking string
12:40:23 <int-e> :t words
12:40:25 <lambdabot> String -> [String]
12:40:34 <fuzzypixelz> huh
12:40:38 bliminse joins (~bliminse@host109-158-129-129.range109-158.btcentralplus.com)
12:40:45 <[exa]> cheater: anyway if you can't apply various "linux subsystem for W" tricks, I'd suggest to write a nicely formatted error report to LLVM mailing list or something, so that the issue stays for more potential people to see
12:40:51 <int-e> I've been abusing `words` a lot this year, including mapping commas to spaces and then using `words`.
12:41:11 <[exa]> (or to the authors of the respective haskell wraps)
12:41:28 <fuzzypixelz> int-e: but what if you need to split against specific chars?
12:41:32 <[exa]> int-e: I'm still missing some variant of strtok()
12:41:36 <idnar> :t splitOn
12:41:37 <lambdabot> Eq a => [a] -> [a] -> [[a]]
12:41:45 <cheater> int-e: are you the person who implemented that bug in cabal i was struggling with
12:41:54 <int-e> splitOn is in the split package
12:42:01 <int-e> cheater: I was talking AoC, not production code
12:42:15 <int-e> cheater: so, no
12:43:00 <fuzzypixelz> int-e: does it come with haskell platform?
12:43:22 <idnar> > splitOn "," "foo,bar"
12:43:24 <lambdabot> ["foo","bar"]
12:43:34 <int-e> I don't really know what's included in the Haskell platform
12:43:53 <int-e> it has cabal-install so to my mind it practically includes all of hackage
12:44:41 <int-e> > words $ map (\c -> if c == ',' then ' ' else c) "foo,bar"
12:44:43 <lambdabot> ["foo","bar"]
12:44:52 <int-e> nasty, effective
12:45:00 <superstar64> how do i make ghc warn me if a `data` could be a `newtype`?
12:45:06 <int-e> , good enough for AoC
12:45:10 <ski> > words (map (\c -> if c == ',' then ' ' else c) "foo,bar bar")
12:45:12 <lambdabot> ["foo","bar","bar"]
12:45:21 <int-e> ski: I know!
12:45:42 <int-e> ski: include ,, for good measure
12:46:33 <ski> escaping ?
12:46:47 <int-e> > words " a b "
12:46:50 <lambdabot> ["a","b"]
12:47:08 <int-e> coalescing
12:47:32 <int-e> > splitOn " " " a b "
12:47:34 <lambdabot> ["","a","","b",""]
12:47:47 <ski> @type Data.List.NonEmpty.words
12:47:48 <lambdabot> error:
12:47:48 <lambdabot> Not in scope: ‘Data.List.NonEmpty.words’
12:47:48 <lambdabot> No module named ‘Data.List.NonEmpty’ is imported.
12:49:24 <idnar> superstar64: use hlint I think
12:49:24 × carlomagno quits (~cararell@148.87.23.8) (Remote host closed the connection)
12:50:07 <ephemient> if you're working on Text, that has splitOn built-in
12:50:36 <superstar64> alright, i'll look into it
12:52:03 <ski> @type mapMaybe NE.nonEmpty . splitOn " "
12:52:04 <lambdabot> [Char] -> [NE.NonEmpty Char]
12:52:38 <ski> > (mapMaybe NE.nonEmpty . splitOn ",") "foo,bar baz,,quux"
12:52:40 <lambdabot> ['f' :| "oo",'b' :| "ar baz",'q' :| "uux"]
12:53:03 <int-e> ew
12:53:21 Kronic joins (~Kronic___@84.203.96.46)
12:53:37 <int-e> . o O ( filter (not . null) )
12:53:40 × todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Quit: Konversation terminated!)
12:54:24 × shf quits (~sheaf@2a01:cb19:80cc:7e00:ec10:402a:74e0:28d6) (Quit: Leaving)
12:54:25 <ski> but then i have to use `NE.fromList' (which is partial)
12:55:11 <int-e> I don't like NonEmpty, so why would I use that.
12:55:52 <ski> well, the goal here was to look for a way to implement `Data.List.NonEmpty.words' ..
12:56:30 <ski> (since the output elements of `words' are always non-empty)
12:56:34 <int-e> yeah I should've stayed out of it, but couldn't help myself
13:00:31 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc)
13:00:54 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:02:08 <ph88> when i want to make a tree structure is there some pattern to flatten the tree ? I was looking at monoid with mconcat which uses fold ... but im not sure if this is related
13:03:44 <solonarv> ph88: it is indeed related. there's a reason that 'toList' is a method of the 'Foldable' class.
13:05:14 × amerigo quits (uid331857@gateway/web/irccloud.com/x-qlwggbtbsclqlize) (Quit: Connection closed for inactivity)
13:07:15 <dminuoso> In fact, arguably, toList could be a minimal method of Foldable
13:07:35 <solonarv> it certainly could, it just wouldn't be a very good design (IMO)
13:07:59 <lortabac> I think it's more a question of performance
13:08:06 <dminuoso> Indeed.
13:08:15 <dminuoso> If you have an elegant recursive way to build a list, you might as well just implement foldr directly.
13:08:16 <solonarv> yes, performance is part of why it wouldn't be a good design
13:09:13 <solonarv> I suppose build/foldr fusion would take care of it, if you write toList in terms of build
13:10:02 <dminuoso> Well. if you write toList in terms of build...
13:10:10 <ph88> i want to make my own data type .. what should i do to flatten the tree structure ? implement Foldabable ?
13:10:13 <dminuoso> That's just a very very odd way of writing foldr..
13:10:13 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
13:10:17 <solonarv> then you might as well just write foldr instead, yes :p
13:10:32 <solonarv> ph88: yes, most likely. What does the data type look like?
13:10:55 <ph88> solonarv, i don't have it yet, but should be a simple type with branches and leaves
13:11:13 <solonarv> note that "implement Foldable" answers "where do I put my flattening function?", not "how do I write a flattening function in the first place"
13:11:18 <ph88> data myTree = MyLeave | MyBranch (MyTree) something like this ?
13:11:22 <dminuoso> Well thats not foldable
13:11:28 <dminuoso> Foldable must be * -> * kinded.
13:11:39 <ph88> oh
13:11:46 <dminuoso> Also, that data type does not encode a list..
13:11:50 <dminuoso> That just encodes peano naturals
13:11:55 <dminuoso> *does not encode a tree.
13:12:07 <ph88> what should i do then ?
13:12:10 <dminuoso> At the very least you'd want `data MyTree = MyLeaf | MyBranch MyTree MyTree`
13:12:16 <dminuoso> And then perhaps you want to attach values?
13:12:27 <ph88> ye, i want some values
13:12:31 <dminuoso> So `data MyTree a = MyLeaf a | MyBranch MyTree MyTree` for a leaf-valued binary tree
13:12:51 <ph88> it's not a binary tree, should be rose tree ??
13:12:57 <dminuoso> You tell us?
13:13:16 <ephemient> *MyBranch (MyTree a) (MyTree a)
13:13:20 <ephemient> (but the intent is clear)
13:13:34 <ph88> ye there are more branches, and actually when you have one node with variable amount of branches, the order of those branches matter
13:14:00 <ph88> MyBranch [MyTree] what about this ?
13:14:38 <ephemient> ... no values, but sure
13:14:42 <dminuoso> ph88: Do you want only the leafs to carry data, or each node?
13:15:07 geekosaur joins (ac3a3ed0@172.58.62.208)
13:16:05 <ph88> each node carries data .. but for the flatten tree i only need the information in the leaves. But i need data in nodes later for other purposes
13:16:57 × dddddd quits (~dddddd@unaffiliated/dddddd) (Quit: dddddd)
13:17:13 dddddd joins (~dddddd@unaffiliated/dddddd)
13:17:17 heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8)
13:17:40 Blackraider joins (~Blackraid@188.127.187.5)
13:17:51 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:17:52 × Blackraider quits (~Blackraid@188.127.187.5) (Remote host closed the connection)
13:18:08 kupi joins (uid212005@gateway/web/irccloud.com/x-mktflcfjzasruohy)
13:21:14 <ph88> i found this package https://hackage.haskell.org/package/rose-trees what's this hash tree ?
13:21:56 × heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 258 seconds)
13:22:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
13:24:01 <ph88> i'll come back later, i don't know what to do about this tree
13:24:40 jamm joins (~jamm@unaffiliated/jamm)
13:26:35 × plutoniix quits (~q@184.82.198.131) (Quit: Leaving)
13:28:43 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6)
13:30:55 <superstar64> how do i get the path of the binary cabal generates when i run cabal build?
13:32:32 <solonarv> superstar64: cabal exec where name-of-my-binary
13:32:41 <solonarv> that'll give you the path
13:32:51 <solonarv> if you want to copy it somewhere 'cabal install' can do that for you
13:33:00 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404)
13:33:01 × Miroboru quits (~myrvoll@78.91.103.180) (Read error: Connection reset by peer)
13:35:16 × columbarius quits (~columbari@87.123.198.173) (Ping timeout: 240 seconds)
13:35:42 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
13:35:49 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
13:36:13 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
13:36:28 <boxscape> Is there a function like forM_ that allows me to stop the loop once a condition is met?
13:36:37 <boxscape> If not I suppose writing it myself is fairly straightforward...
13:36:46 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
13:37:18 × ubert quits (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:37:19 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) (Client Quit)
13:37:37 × gawen quits (~gawen@movzbl.root.sx) (Quit: cya)
13:37:56 columbarius joins (~columbari@87.123.198.173)
13:38:00 gawen joins (~gawen@movzbl.root.sx)
13:39:56 <ephemient> boxscape: https://hackage.haskell.org/package/monad-loops ?
13:40:32 <boxscape> hm yeah looks like there could be something in there, thanks
13:41:03 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
13:41:16 Varis joins (~Tadas@unaffiliated/varis)
13:42:12 <solonarv> boxscape: MaybeT could also do it, since "early exit" is exactly what that transformer does
13:42:15 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
13:42:24 <boxscape> ah, I see
13:43:03 <solonarv> :t \f xs -> runMaybeT (for_ xs (guard <=< lift . f))
13:43:04 <lambdabot> error:
13:43:04 <lambdabot> Variable not in scope: runMaybeT :: t0 m () -> t1
13:43:20 <solonarv> @let import Control.Monad.Maybe.Trans
13:43:20 <lambdabot> .L.hs:61:1: error:
13:43:20 <lambdabot> Could not find module ‘Control.Monad.Maybe.Trans’
13:43:21 <lambdabot> Perhaps you meant Control.Monad.Trans (from mtl-2.2.2)
13:43:24 <solonarv> gah
13:43:30 <solonarv> % :t \f xs -> runMaybeT (for_ xs (guard <=< lift . f))
13:43:31 <yahb> solonarv: ; <interactive>:1:40: error:; Ambiguous occurrence `lift'; It could refer to; either `Language.Haskell.TH.Syntax.lift', imported from `Language.Haskell.TH.Syntax'; or `Control.Monad.Cont.lift', imported from `Control.Monad.Cont' (and originally defined in `Control.Monad.Trans.Class')
13:43:53 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a8dc:3f5a:f8f1:dbd6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:44:43 <solonarv> % :t \f xs -> runMaybeT (for_ xs (guard <=< MonadTrans.lift . f))
13:44:44 <yahb> solonarv: ; <interactive>:1:10: error: Variable not in scope: runMaybeT :: t0 m () -> t1
13:45:01 <boxscape> % :t \f xs -> Control.Monad.Trans.Maybe.runMaybeT (for_ xs (guard <=< Control.Monad.Cont.lift . f))
13:45:01 <yahb> boxscape: (Foldable t, Monad m) => (a -> m Bool) -> t a -> m (Maybe ())
13:45:03 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
13:45:59 joaj joins (~joaj@2001:690:2100:110:cceb:227c:edbc:592c)
13:46:15 <boxscape> % :t \f xs -> Control.Monad.Trans.Maybe.runMaybeT (for xs (Control.Monad.Cont.lift . f))
13:46:15 <yahb> boxscape: (Traversable t, Monad m) => (a -> m b) -> t a -> m (Maybe (t b))
13:46:19 <boxscape> this looks like what I want actually
13:46:19 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404)
13:46:20 <boxscape> thanks
13:46:47 <solonarv> if you want "early exit with a value" that's ExceptT, of course
13:46:47 <boxscape> or not quite
13:46:52 <boxscape> I'll figure it out though
13:47:02 <boxscape> I only need a value if it doesn't exit early
13:47:35 <solonarv> ah, I see
13:47:54 <ski> > (runIdentity . runExceptT . (`runStateT` 1) . forever) (do n <- get; put (2 * n); when (n > 1000) (throwError n))
13:47:56 <lambdabot> Left 1024
13:49:14 <ski> `Cont' sounds like overkill, unless you'd like to resume
13:49:17 carlomagno joins (~cararell@148.87.23.9)
13:49:41 <int-e> @unmtl StateT s (ExceptT e Identity) a
13:49:41 <lambdabot> s -> Either e (a, s)
13:49:42 <ski> (i guess you could `Codensity')
13:49:46 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
13:50:14 <ski> oh, `unmtl' groks `ExceptT' now ?
13:50:54 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
13:53:00 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
13:53:18 <int-e> apparently ;)
13:53:27 × limpkin1 quits (~limpkin@s91904426.blix.com) (Remote host closed the connection)
13:54:43 Hafydd joins (~Hafydd@unaffiliated/joo)
13:55:08 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 268 seconds)
13:56:26 oish joins (~charlie@228.25.169.217.in-addr.arpa)
13:57:27 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
13:57:27 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
13:58:09 proteus-guy joins (~proteusgu@cm-58-10-154-202.revip7.asianet.co.th)
14:01:29 ircbrowse_tom joins (~ircbrowse@64.225.78.177)
14:01:29 Server sets mode +CLnt
14:01:34 urodna joins (~urodna@unaffiliated/urodna)
14:01:48 adeln parts (~adeln@94.180.253.137) ()
14:03:47 ggole joins (~ggole@2001:8003:8119:7200:b1ce:df7:cb14:ba8f)
14:03:49 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds)
14:09:17 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
14:11:31 × xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
14:11:51 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
14:15:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection)
14:15:20 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
14:17:38 zclod joins (9743c5d5@151.67.197.213)
14:17:58 wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5)
14:18:09 phyll1s_work joins (~phyll1s_w@195.140.213.38)
14:20:35 <zclod> hi I was trying to use recursion-schemes to solve some advent of code problems, my issue is that cata is a foldr while many of the challenges require left associative operations so i need to reverse the list first. is there a way to do a foldl with recursion scheme?
14:23:31 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
14:24:44 × taurux quits (~taurux@net-188-216-19-113.cust.vodafonedsl.it) (Ping timeout: 268 seconds)
14:24:58 taurux joins (~taurux@net-93-144-87-101.cust.dsl.teletu.it)
14:25:22 guest1217 joins (~user@120.244.28.213)
14:25:48 × bjobjo quits (~bjobjo@2a01:79c:cebf:d688::9e6) (Ping timeout: 246 seconds)
14:26:13 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
14:26:41 <boxscape> zclod this seems like it should https://stackoverflow.com/questions/57776420/top-down-recursion-schemes
14:26:58 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
14:27:02 <boxscape> help
14:27:03 <guest1217> parseString = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many (satisfy (/= ' ')); spaces; return (x,y)}
14:27:50 <boxscape> is there a fancy general lensy way to go over all the Ints in a pairs like (1,2,(3,4)) and (1,2(3,(4,5)))?
14:27:52 <guest1217> parse (sepBy parseString spaces) "" "server=irc.freenode.net port=3 nick=john" == Right [("server","irc.freenode.net"),("port","3"),("nick","john")]
14:28:43 <guest1217> parse (sepBy parseString newline) "" "server=irc.freenode.net\nport=3\nnick=john\n" == Right [("server","irc.freenode.net\nport=3\nnick=john\n")]
14:29:00 <guest1217> why the second is not like the first?
14:29:08 <guest1217> where it's wrong?
14:29:28 <tomsmeding> guest1217: perhaps parseString accepts '\n' as part of a string?
14:29:51 <tomsmeding> and so by the time the first parseString returns, the whole string has already been consumed
14:30:18 <guest1217> tomsmeding: parse (anyChar *> newline *> anyChar) "" "a\nc" == Right 'c'
14:30:41 <guest1217> oh
14:31:10 <guest1217> tomsmeding: how I can change it?
14:31:26 <tomsmeding> what's the source of parseString? or does it come from a library?
14:31:40 Mugisha joins (~Mugisha@154.73.41.12)
14:31:52 × zclod quits (9743c5d5@151.67.197.213) (Remote host closed the connection)
14:31:53 <inkbottle> Is there something like the STM monad for the dummies? (with nice pictures/diagrams)
14:31:54 <guest1217> tomsmeding: parseString = {do; spaces; x <- many letter; spaces; char '='; spaces; y <- many (satisfy (/= ' ')); spaces; return (x,y)}
14:32:27 <tomsmeding> that `satisfy (/= ' ')` accepts anything that's not a space, including, for example, newlines
14:32:32 <Mugisha> Hi guys i'm new here and on irc
14:32:50 <tomsmeding> guest1217: I suggest changing that (/= ' ') to (not . isSpace), where isSpace is from Data.Char
14:32:51 <ski> hello Mugisha
14:33:33 <guest1217> tomsmeding: satisfy (noneOf "\n ")?
14:33:40 <tomsmeding> guest1217: or, of course, (/= '\n') if you only want to do newlines
14:33:41 <tomsmeding> or that
14:33:49 <tomsmeding> depending on what you need :)
14:34:00 <guest1217> tomsmeding: space and newline
14:34:05 bitmagie joins (~Thunderbi@200116b80697370068b048f727c82739.dip.versatel-1u1.de)
14:34:17 <guest1217> tomsmeding: how I can do it?
14:34:24 <tomsmeding> well, like you just said
14:35:11 <tomsmeding> also, the `spaces` at the end of `parseString` already swallows all spaces after the key=value pair, so the `spaces` in your `sepBy` will never consume anything
14:35:24 superstar64 parts (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) ()
14:35:38 <tomsmeding> so I think you can replace `sepBy parseString spaces` and `sepBy parseString newline` with `many parseString`
14:35:46 <boxscape> loosk like tinplate works
14:36:40 <boxscape> and template does as well
14:36:57 <guest1217> tomsmeding: I tried `many (satisfy (noneOf "\n "))` noneOf applied too many arguments...
14:37:10 <tomsmeding> ah right
14:37:14 <tomsmeding> many (noneOf "\n ")
14:37:24 <tomsmeding> noneOf is already a parser, no need to wrap it in 'satisfy'
14:37:37 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
14:39:28 <guest1217> tomsmeding: parse (many parseString) "" "server=irc.freenode.net\nport=3\nnick=john\n" == Right [("server","irc.freenode.net"),("port","3"),("nick","john")]
14:39:31 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
14:39:52 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
14:39:58 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a1f6:288c:9ca1:722b)
14:40:18 <boxscape> hm is there a way to combine lenses, i.e. specifically to make a lens that operates on both _1 and _2?
14:41:16 jb55 joins (~jb55@gateway/tor-sasl/jb55)
14:42:43 <guest1217> tomsmeding: but why parse (sepBy parseString newline) "" "server = irc.freenode.net\nport = 3\nnick = john\n" == Right [("server","irc.freenode.net")], even I use `many (noneOf "\n ")`
14:43:58 <tomsmeding> guest1217: I think because the `spaces` at the end of parseString already consumes the \n following "irc.freenode.net". By the time the `newline` in `sepBy parseString newline` is executed, the input is already at "port", meaning the `newline` doesn't match
14:44:44 × gentauro quits (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
14:44:59 <tomsmeding> do you really need to support arbitrary newlines within your key=value lines? If not, perhaps it's a good idea to replace your uses of `spaces` within `parseString` with `many (satisfy (== ' '))`
14:45:01 gentauro joins (~gentauro@unaffiliated/gentauro)
14:45:20 <tomsmeding> then the \n won't be consumed by parseString, and the sepBy gets to read it
14:46:06 × jneira quits (501e6453@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.83) (Ping timeout: 256 seconds)
14:46:28 <hololeap> boxscape: so what, the getter/setter would return/take a tuple?
14:46:32 <guest1217> tomsmeding: I remove the last spaces in parseString, then run it again, there's an error, it expecting white space, letter or "="
14:46:49 <ski> > (1,2,(3,4)) ^.. (_1 <> _2 <> _3 . (_1 <> _2)) -- boxscape ?
14:46:51 <lambdabot> [1,2,3,4]
14:47:10 <tomsmeding> guest1217: oh right, that's the final \n at the end of your input
14:47:31 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
14:47:32 <tomsmeding> perhaps not use `many parseString` but instead `many parseString <* spaces <* eof`
14:47:33 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 268 seconds)
14:48:11 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
14:48:53 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
14:51:41 <boxscape> hololeap ski basically I want to be able to say something like `(1,2,3) & _1 `combine` _2 %~ (+3)' and end up with (5,6,3)
14:52:27 × geekosaur quits (ac3a3ed0@172.58.62.208) (Remote host closed the connection)
14:52:35 <boxscape> uh
14:52:40 <iqubic> Where does the 5 come from?
14:52:42 <boxscape> s/(+3)/(+4)
14:52:53 <boxscape> yeah I can't do basic arithmetic apparently
14:52:57 <guest1217> tomsmeding: if I want `sepBy parseString newline` work, how I should change parseString?
14:52:58 <iqubic> Oh. I see.
14:53:28 <iqubic> boxscape: That looks hard to do.
14:53:39 <tomsmeding> guest1217: read carefully what I said before :)
14:53:47 <tomsmeding> I suggested what I think is the right change
14:54:12 <ski> Mugisha : if you have any (Haskell-related) question, feel free to ask
14:54:25 shf joins (~sheaf@2a01:cb19:80cc:7e00:c826:d438:7383:b3d6)
14:54:34 <guest1217> tomsmeding: final "\n" in the input?
14:54:50 <iqubic> boxscape: Essentially you want a function that takes two lenses and makes a traversal over both things.
14:55:06 <boxscape> that sounds right
14:55:44 <iqubic> > (1,2,3) & each %~ (+4)
14:55:46 <lambdabot> (5,6,7)
14:55:50 <tomsmeding> guest1217: https://ircbrowse.tomsmeding.com/selection/haskell?title=Conversation&events=203120,203122,203124
14:56:14 <guest1217> tomsmeding: I tried to instead spaces with many (satisfy (== ' ')), sepBy won't work
14:56:16 <iqubic> The issue with `each` is that it will traverse *all* elements in the structure.
14:56:20 <boxscape> right
14:57:14 × Mugisha quits (~Mugisha@154.73.41.12) (Ping timeout: 260 seconds)
14:57:32 matryoshka joins (~matryoshk@184.75.223.227)
14:57:52 <iqubic> boxscape: I found this with a quick search: https://stackoverflow.com/questions/17528119/combining-lenses
14:58:16 <boxscape> iqubic hm, thanks
14:58:21 <iqubic> Also this: https://github.com/ekmett/lens/issues/109
14:58:54 <boxscape> hm some interesting discussion there
14:59:06 × shf quits (~sheaf@2a01:cb19:80cc:7e00:c826:d438:7383:b3d6) (Read error: Connection reset by peer)
14:59:40 <guest1217> tomsmeding: you're right, I remove the last sapces and replace spaces with many (satisfy (== ' ')), now sepBy work
14:59:50 <guest1217> tomsmeding: thank you
15:00:14 <tomsmeding> guest1217: cool! Note that if you do that, you won't accept ' ' characters at the end of a line
15:00:27 <iqubic> boxscape: I'm sorry you can't really do what you want to do.
15:00:36 <boxscape> oh well
15:00:48 <dminuoso> Id love to have monthly download statistics.
15:01:00 <dminuoso> Bet you'd always see *parsec jumping up in december every year. :>
15:01:18 <merijn> :p
15:01:20 <iqubic> Oh totally.
15:01:22 <tomsmeding> where * matches a non-zero length string, I guess?
15:01:27 <dminuoso> tomsmeding: Yes.
15:01:33 <dminuoso> Err. Not necessarily
15:01:35 notzmv` joins (~user@191.205.12.9)
15:01:48 <tomsmeding> because parsec itself is bundled with ghc, you're unlikely to download that often :p
15:01:57 <dminuoso> That depends on the version, though.
15:02:10 <iqubic> What?! Parsec is bundled with GHC? I didn't know that.
15:02:11 × notzmv quits (~user@unaffiliated/zmv) (Read error: Connection reset by peer)
15:02:20 kish` joins (~oracle@unaffiliated/oracle)
15:02:34 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
15:02:41 <iqubic> I just use Megaparsec, because 1. I love the error messages I get, and 2. I love that unit of measurement.
15:02:50 <boxscape> iqubic turns out `template` is actually even better for what I had intended than a combination of _1 and _2
15:03:01 <iqubic> What is template?
15:03:08 <iqubic> :t template
15:03:10 <lambdabot> (Data s, Applicative f, Typeable a) => (a -> f a) -> s -> f s
15:03:16 <iqubic> Ah. Yes. I see.
15:03:19 <tomsmeding> iqubic: I think this is a source of that information: https://gitlab.haskell.org/ghc/ghc/-/blob/master/packages
15:03:19 <ephemient> http://hackage.haskell.org/package/parsec old parsec, not megaparsec, is bundled. I prefer using the latter
15:03:24 <boxscape> % (1,2,(2,(3,4))) & template %~ (+1)
15:03:24 <yahb> boxscape: (2,3,(3,(4,5)))
15:03:33 jamm joins (~jamm@unaffiliated/jamm)
15:03:45 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds)
15:04:23 <tomsmeding> iqubic: according to this wiki page ( https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries ), a '-' in the tag column indicates a ghc boot library
15:04:48 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
15:04:49 <tomsmeding> also before I knew what cabal even was, properly, I've been using parsec without problems :p
15:04:54 <ephemient> GHC also comes with ReadP
15:04:56 <dminuoso> iqubic: I find the tuple (megaparsec, attoparsec, binary) to be a suitable set of tools for most purposes. :)
15:05:04 <iqubic> boxscape: template will create a traversal that targets all elements of a given type, regardless of where they appear in the structure.
15:05:09 <boxscape> yes
15:05:12 <dminuoso> Neither is enough to cover all needs.
15:05:39 <iqubic> boxscape: What are you doing with this?
15:05:56 <boxscape> iqubic making the bounds of my array for AOC today smaller
15:06:01 <iqubic> How?
15:07:19 × kish` quits (~oracle@unaffiliated/oracle) (Quit: Leaving)
15:07:36 stef204 joins (~stef204@unaffiliated/stef-204/x-384198)
15:07:39 <boxscape> iqubic well, not the actual bounds, but the bounds of the cells I check. I first take the bounds of the entire array and then say let bounds' = bounds & bounds & _1 . template +~ s - 1 & _2 . template -~ s - 1, where s is the number of steps left to perform, so as that number goes down, the number of cells I check gets higher
15:07:40 <guest1217> how I can turn Right [("a","b")] to fromList [("a","b")]? transparent transform?
15:08:01 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds)
15:08:12 <guest1217> or Right (fromList [("a","b")])?
15:08:17 × coot quits (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
15:08:21 <dminuoso> guest1217: fmap fromList
15:08:22 <ski> guest1217 : what should happen on `Left' ?
15:08:22 <boxscape> iqubic whoops one of those `bounds &` shouldn't be there
15:08:26 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
15:08:40 coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
15:08:56 <guest1217> ski: I don't know...
15:09:03 <iqubic> ski: I assume that Right [("a","b")] is the result from calling parse.
15:09:19 <guest1217> iqubic: yes
15:09:29 <guest1217> I need to get the value by the key
15:09:29 <iqubic> In that case, I recommend applying fmap *before* running the parser.
15:09:34 <ski> if `Right (fromList [("a","b")])' is ok as result, then what dminuoso said (if `Left', then it'll not be changed)
15:09:49 <iqubic> :t parse
15:09:51 <lambdabot> error: Variable not in scope: parse
15:11:13 <guest1217> dminuoso: yes, fmap fromList (Right ...) is ok
15:11:31 <boxscape> iqubic btw each wouldn't work because my index is either (x,y,z) or (x,y,(z,w)) depending on dimension, but template works nicely with that. I thought at first I could only apply this optimization to the first two dimensions, hence trying to combine _1 and _2
15:11:39 <guest1217> what about Right [...] to fromList [...]?
15:11:46 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
15:11:49 <guest1217> fromRight?
15:12:07 <iqubic> No. Just use fmap there.
15:12:39 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
15:12:49 <guest1217> iqubic: why fromRight and (~>) is not ok?
15:13:52 <iqubic> fromRight will give you an error if the argument is Left.
15:13:59 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
15:14:07 ubert joins (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de)
15:14:12 <merijn> s/give you an error/crash your program
15:15:01 <guest1217> and (~>)?
15:15:18 <iqubic> I don't know what that is.
15:15:29 <guest1217> natural transform?
15:15:45 <iqubic> Yeah, you don't want a natural transformation here.
15:15:58 <dminuoso> You seem to be conflating terminology here. :)
15:16:39 <dminuoso> A natural transformation `S ~> T` is any function `S a -> T a`, assuming both S and T are both functors.
15:16:47 <iqubic> I assume they are talking about this: https://hackage.haskell.org/package/natural-transformation-0.4/docs/Control-Natural.html#t:-126--62-
15:16:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:17:29 <guest1217> Right is a functor, fromList is not a functor?
15:17:35 <dminuoso> guest1217: Right is not a functor.
15:17:36 kish` joins (~oracle@unaffiliated/oracle)
15:17:49 <merijn> Types are functors. Neither Right no "fromList" are types
15:17:55 <guest1217> Either a is a functor
15:17:59 <dminuoso> Correct.
15:18:02 <dminuoso> Or `Maybe`
15:18:14 <dminuoso> So a function `Either a ~> Maybe` would be a natural transformation.
15:18:22 <dminuoso> Or: Maybe ~> []
15:18:36 <dminuoso> That is, `Either a b -> Maybe b` or `Maybe b -> [b]`
15:18:45 <iqubic> Here's the main issue he's trying to solve. He has a Parser [(a, b)] and wants a Parser (Map a b)
15:18:45 <guest1217> what is Map?
15:18:52 heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8)
15:19:04 <guest1217> Map a is a functor?
15:19:05 <dminuoso> No
15:19:16 <dminuoso> Or.. mm. `Map a` is actually I think
15:19:20 <dminuoso> I was thinking Set. :)
15:19:28 <merijn> dminuoso: Map k is a functor, yes
15:19:37 <merijn> dminuoso: Also Foldable and Traversable!
15:19:37 <dminuoso> merijn: Yeah, my head is so wired to Set at the moment
15:19:41 <iqubic> Map k is a functor, but that's not going to help you here.
15:19:51 <dminuoso> merijn: being Foldable is easy, Traversable not so much. :p
15:20:25 <iqubic> All he needs is a function of the type "Parser [(k,v)] -> Parse (Map k v)"
15:20:27 <guest1217> so Either a and Map k both are functors here, and it still can't turn Right a to fromList a?
15:20:41 <iqubic> guest1217: ~> is not a function.
15:21:03 <guest1217> iqubic: ok...
15:21:26 Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-fpxdgixxyxyfpjbh)
15:21:56 tab65 joins (49819d19@c-73-129-157-25.hsd1.dc.comcast.net)
15:22:09 fendor_ joins (~fendor@77.119.130.146.wireless.dyn.drei.com)
15:22:14 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
15:22:14 <dminuoso> guest1217: The point here is, think of it in terms of functions. Let's say you have a function that can turn a `Right a` into `fromList a`, what would that function's type be?
15:22:39 <guest1217> Either a b -> Map a b?
15:22:56 × tab65 quits (49819d19@c-73-129-157-25.hsd1.dc.comcast.net) (Remote host closed the connection)
15:22:56 <dminuoso> Somewhat close, but not quite.
15:23:21 <merijn> eh, this seems to just be a random walk through all possible formulations...[
15:23:30 <dminuoso> Yeah..
15:23:47 × heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Ping timeout: 260 seconds)
15:23:52 <ephemient> `uncurry Map.singleton :: (a, b) -> Map a b` does exist
15:23:55 <guest1217> then I don't know
15:23:56 × kish` quits (~oracle@unaffiliated/oracle) (Ping timeout: 268 seconds)
15:24:07 <ephemient> but `Either a b` and `(a, b)` are pretty different
15:24:21 <Vulfe_> they are about as different as two things can be using the same letters
15:24:58 × fendor quits (~fendor@77.119.130.134.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
15:26:41 <iqubic> guest1217: What are you trying to do?
15:27:06 xsperry joins (~as@unaffiliated/xsperry)
15:27:26 <guest1217> iqubic: like you said, turn Right a to fromList a
15:27:52 <tomsmeding> are you sure you're not wanting to turn 'Right a' into 'Right (fromList a)'?
15:27:56 <iqubic> Why are you trying to do that? How did you get a `Right a` value?
15:28:46 <guest1217> get Right a by parser...
15:28:54 <ephemient> what do you expect to happen with a Left _?
15:29:26 <guest1217> tomsmeding: I think I should use Right (fromList a) now
15:29:27 <dminuoso> Im thinking you have piled up too many tools and bits that confuse you.
15:30:09 <guest1217> yes, there're too many things I don't understand now
15:30:22 <iqubic> Look, what he wants to do is take the result of his parser and turn it into a Map. I think he should use (fmap fromList) *before* parsing the string into a "Right a"
15:30:28 <dminuoso> Good. So perhaps it's helpful to backtrack to the last spot where you felt comfortable and understood bits.
15:30:31 <guest1217> ephemient: I don't know
15:33:02 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc) (Ping timeout: 264 seconds)
15:33:10 hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net)
15:35:56 × jess quits (jess@freenode/staff/jess) (Quit: updates)
15:36:40 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
15:37:04 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
15:37:28 <dminuoso> Is there a way to detect unused package dependencies?
15:38:05 jamm joins (~jamm@unaffiliated/jamm)
15:38:19 <merijn> dminuoso: Comment them out *duck*
15:40:17 <Orbstheorem> Hi, is there any way to have stack compile a small c++ program with my haskell project?
15:40:27 <merijn> Orbstheorem: Flee now
15:40:29 tomsmeding wonders what an optimal algorithm to figure out unused dependencies would be, if all you could do is commenting them out and trying the build
15:40:41 <merijn> Orbstheorem: In short: No
15:40:44 <Orbstheorem> xDD
15:40:54 <Orbstheorem> Alright, what's the longer answer? x)
15:40:55 <tomsmeding> well, yes, that's possible
15:41:01 <tomsmeding> whether you want it is another question
15:41:03 <merijn> Orbstheorem: In long: This is a cursed question I tried to get working for a week and gave up
15:41:06 <merijn> tomsmeding: It's not
15:41:21 <tomsmeding> depends on your definition of "working"
15:41:27 <merijn> tomsmeding: Or rather, it may work if your C compiler is *also* a C++ compiler and doesn't throw a fit
15:41:47 <Orbstheorem> I'm stuck between adding a makefile and adding it to stack, but I find adding a makefile to essentially call stack dirty...
15:41:48 <tomsmeding> okay I was naively assuming C++ wouldn't be harder than C
15:41:59 <Orbstheorem> For the records, my C++ file is standalone.
15:42:21 <merijn> tomsmeding: GHC knows about C compilers, it only half knows about C++ compilers, I have a few GHC issues about this
15:42:36 <tomsmeding> TIL
15:43:03 <merijn> Orbstheorem: I have a much larger C++ codebase, but I just use my own gmake build system for that and call cabal-install from there
15:43:14 <Orbstheorem> :(
15:43:27 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
15:43:30 <Orbstheorem> Ideally I'd package it in different packages, but it's for a course.
15:43:43 <merijn> Orbstheorem: Unless you are willing to make a few (most likely relatively simple) patches to GHC there's no really good way
15:43:49 <Orbstheorem> Aaaaand, well... I'm not doing a package for one-file executable.
15:44:14 <Orbstheorem> merijn: I'm curious xD
15:44:16 <tomsmeding> define "package"
15:44:22 <tomsmeding> if we're mixing C++ and haskell
15:44:26 <Orbstheorem> `dpkg -i foo`
15:44:32 <tomsmeding> I see
15:44:43 <Orbstheorem> C++ generates an executable my haskell code will call from PATH.
15:45:11 <Orbstheorem> (It could be rewritten, but I'm not allowed to :/)
15:45:13 <merijn> Not sure how well stack plays with Makefile, but cabal-install's v2-build has intentionally been designed to be super fast on noop builds so you can unconditionally call it in make
15:45:59 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:4940:8dd3:7c10:4404) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:46:10 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
15:46:12 <Orbstheorem> stack run takes 6 seconds on my system (NixOS 20.09) on a no-op.
15:46:22 <Orbstheorem> stack ghci is much faster though.
15:47:49 shf joins (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6)
15:48:44 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
15:49:20 cosimone joins (~cosimone@5.170.241.91)
15:49:55 <merijn> Orbstheorem: Anyway, I'd just make a make file that builds the C++ exe and calls stack
15:50:00 ph88 joins (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc)
15:51:12 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
15:52:29 <boxscape> huh indexing my STUArray with (x, (y, (z, (w, ())))) instead of (x, y, (z, (w, ()))) *doubles* the runtime of my program, interesting
15:52:47 <Orbstheorem> Is the really scary way of doing it using Setup.hs and calling g++ from haskell code? x)
15:53:07 <merijn> Orbstheorem: Why use Setup.hs at all
15:53:18 <merijn> Orbstheorem: Can just have your main program compile with g++ on demand
15:53:27 <merijn> (in fact, I literally do that in some code :p)
15:53:35 <Orbstheorem> Nah, that sounds horrible x)
15:53:57 <Orbstheorem> I'm not saying I won't
15:54:10 <Orbstheorem> I just wanna see what's available and make my pick later x)
15:54:17 <Orbstheorem> (Yes, I'm lazy)
15:56:17 <ephemient> https://hackage.haskell.org/package/inline-c-cpp :P
15:57:26 × coot quits (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
15:57:27 × LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection)
15:57:46 coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl)
15:59:57 Stanley00 joins (~stanley00@unaffiliated/stanley00)
16:01:38 <ph88> how can i go from this function https://hackage.haskell.org/package/Frames-streamly-0.1.0.2/docs/Frames-Streamly-CSV.html#v:readTable to a Vector of my own datatype representing that row ?
16:01:50 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
16:02:03 × guest1217 quits (~user@120.244.28.213) (Quit: ERC (IRC client for Emacs 26.3))
16:04:00 jlamothe joins (~jlamothe@198.251.55.207)
16:04:56 codeAlways joins (uid272474@gateway/web/irccloud.com/x-uaxhttwxpgbyaiuf)
16:05:01 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 272 seconds)
16:06:22 Ariakenom_ joins (~Ariakenom@2001:9b1:efb:fc00:c9f8:3d5b:f807:f873)
16:09:25 × dax quits (dax@bitbot/dax) (Quit: updates)
16:11:13 cosimone_ joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
16:11:16 dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net)
16:11:26 <dminuoso> Mmm, if I write `f == g && x == y` can I reasonably expect the first equality to be tested first?
16:11:26 × xff0x quits (~fox@2001:1a81:5260:ab00:d700:e460:f864:a3a3) (Ping timeout: 264 seconds)
16:11:29 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz)
16:11:53 xff0x joins (~fox@2001:1a81:5260:ab00:b5e4:2313:abc1:f0cb)
16:12:18 <dminuoso> % True && undefined
16:12:18 <yahb> dminuoso: *** Exception: Prelude.undefined; CallStack (from HasCallStack):; error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err; undefined, called at <interactive>:22:9 in interactive:Ghci7
16:12:27 <ephemient> yes
16:12:41 <ephemient> http://hackage.haskell.org/package/base-4.14.1.0/docs/Prelude.html#v:-38--38- "lazy in the second argument"
16:12:45 <dminuoso> yeah but..
16:12:50 <dminuoso> what does "lazy in the second argument" even mean here?
16:13:04 <dminuoso> Oh
16:13:10 <dminuoso> % False && undefined
16:13:10 <yahb> dminuoso: False
16:13:13 <dminuoso> I see.
16:13:24 <dminuoso> I forgot (&&) is a function.
16:13:28 <merijn> dminuoso: lol
16:13:39 <merijn> dminuoso: Sounds like time for a break :p
16:13:49 × cosimone quits (~cosimone@5.170.241.91) (Read error: Connection reset by peer)
16:13:49 cosimone_ is now known as cosimone
16:14:20 <dminuoso> Yeah tell me about it.
16:14:30 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: Textual IRC Client: www.textualapp.com)
16:14:36 <Orbstheorem> ephemient: That's sounds like I can be even lazier :D
16:14:41 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
16:14:49 christo joins (~chris@81.96.113.213)
16:16:05 × dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 240 seconds)
16:16:18 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
16:16:40 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
16:19:02 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
16:19:37 <dsal> inkbottle: STM is quite easy. Is there a particular problem you're having? The O'Reily book covers it somewhat, but there's not much to it.
16:24:47 dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net)
16:25:21 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection)
16:25:46 nhs joins (~nhs@c-67-180-177-103.hsd1.ca.comcast.net)
16:25:57 × alexelcu quits (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
16:26:17 alexelcu joins (~alexelcu@142.93.180.198)
16:26:46 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
16:27:57 × dmiles quits (~dmiles@c-98-232-203-165.hsd1.wa.comcast.net) (Ping timeout: 260 seconds)
16:29:18 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:8872:797c:1a98:8dff) (Ping timeout: 268 seconds)
16:29:34 dmiles joins (~dmiles@c-98-232-203-165.hsd1.wa.comcast.net)
16:29:35 oish joins (~charlie@228.25.169.217.in-addr.arpa)
16:30:44 Saukk joins (~Saukk@2001:998:ec:954:1c59:9bb5:b94c:3)
16:31:34 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
16:31:47 softwarm joins (4408f588@ip68-8-245-136.sd.sd.cox.net)
16:32:26 dax joins (dax@bitbot/dax)
16:33:23 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
16:39:26 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
16:40:23 × iteratee quits (~kyle@162.211.154.4) (Read error: Connection reset by peer)
16:40:32 iteratee joins (~kyle@162.211.154.4)
16:42:55 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:43:43 jamm joins (~jamm@unaffiliated/jamm)
16:45:49 × shf quits (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) (Read error: Connection reset by peer)
16:45:59 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
16:48:38 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
16:50:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
16:50:57 geekosaur joins (42d52137@66.213.33.55)
16:52:33 × raichoo quits (~raichoo@dslb-092-073-214-015.092.073.pools.vodafone-ip.de) (Quit: Lost terminal)
16:52:46 heatsink joins (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8)
16:53:32 christo_ joins (~chris@81.96.113.213)
16:53:50 chang parts (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) ("Textual IRC Client: www.textualapp.com")
16:54:04 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
16:55:37 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
16:57:24 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
16:58:01 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
16:58:04 tenniscp25 joins (~tenniscp2@134.196.209.118)
16:59:40 × christo_ quits (~chris@81.96.113.213) (Remote host closed the connection)
17:00:09 teardown_ joins (~user@gateway/tor-sasl/mrush)
17:00:53 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:1de4:7265:50e8:3545)
17:02:32 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
17:03:03 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
17:03:32 × xff0x quits (~fox@2001:1a81:5260:ab00:b5e4:2313:abc1:f0cb) (Ping timeout: 260 seconds)
17:04:06 xff0x joins (~fox@2001:1a81:5260:ab00:82ea:b3e3:e22c:7f9)
17:05:11 christo joins (~chris@81.96.113.213)
17:05:16 × brisbin quits (~patrick@pool-173-49-158-4.phlapa.fios.verizon.net) (Quit: WeeChat 2.9)
17:06:29 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
17:06:40 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:07:37 × arahael quits (~arahael@194-193-194-178.tpgi.com.au) (Ping timeout: 256 seconds)
17:09:28 × christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds)
17:13:08 juuandyy joins (~juuandyy@90.166.144.65)
17:13:08 <ph88> i'm trying to build a project with stack with dependency Frames-streamly stack can't find it, normally it would recommend a line for extra-deps but it doesn't do that this time, how can i add this dependency ?
17:13:38 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
17:13:50 <koz_> Just add 'Frames-streamly-whatever.version'.
17:13:56 <koz_> The SHA hash is optional.
17:14:01 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:14:08 <koz_> (add it to the extra-deps section, I mean)
17:14:59 × bliminse quits (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) (Ping timeout: 256 seconds)
17:15:50 bliminse joins (~bliminse@host109-158-129-129.range109-158.btcentralplus.com)
17:21:43 LKoen joins (~LKoen@29.248.88.92.rev.sfr.net)
17:26:04 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:28:30 × tomku quits (~tomku@unaffiliated/tomku) (Ping timeout: 256 seconds)
17:30:19 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
17:30:41 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:31:35 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:34:06 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
17:35:17 tomku joins (~tomku@unaffiliated/tomku)
17:35:42 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
17:36:07 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:37:12 × Saukk quits (~Saukk@2001:998:ec:954:1c59:9bb5:b94c:3) (Remote host closed the connection)
17:37:46 bjobjo joins (~bjobjo@2a01:79c:cebf:d688::9e6)
17:42:35 <tomsmeding> boxscape: that's interesting, it looks like those have Ix instances that traverse the index space in the same order
17:42:47 gxt joins (~gxt@gateway/tor-sasl/gxt)
17:44:36 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
17:48:17 <Kronic> koz_ so I stumbled upon a similar problem with another lib and I arrived at that solution through trial and error. Is there any particular reason that it does that for some libraries and not others ?
17:48:40 <koz_> Kronic: Stack keeps its own index of Hackage I believe.
17:48:55 <koz_> If it's in the index, it'll suggest; if it's not, it can't, because it has nothing to go by.
17:49:00 <koz_> However, that's just my best guess.
17:49:10 × chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
17:49:34 jneira joins (501e6453@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.83)
17:49:39 <Kronic> I see, thank you
17:50:35 × Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving)
17:51:25 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
17:51:43 <ph88> thanks koz_
17:51:44 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
17:59:26 <Kronic> So, I've included a question about function application on this paste: https://dpaste.org/Ammy
17:59:28 × joaj quits (~joaj@2001:690:2100:110:cceb:227c:edbc:592c) (Ping timeout: 258 seconds)
18:00:06 <Kronic> Basically, the list I want out of my function returns out of order but I don't understand why, and it appears that changing it up doesn't impact the result in a desirable way either. Anyone able to explain to me what is happening on the line I highlighted ?
18:00:19 joaj joins (~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0)
18:00:46 Stanley00 joins (~stanley00@unaffiliated/stanley00)
18:01:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:01:19 <hyperisco> Kronic, I don't think this is a question narrowly about function application. If you evaluate your function by hand for a list of, say, 3 elements, do you get what you expect?
18:01:28 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
18:02:03 <Kronic> I included that information because that is what my understanding of the problem is, but my understanding is wrong, so
18:02:18 <hyperisco> I mean take it step by step by hand
18:02:30 <hyperisco> if you want to really understand what is happening that is what you should do
18:02:38 sh9 joins (~sh9@softbank060116136158.bbtec.net)
18:02:58 <gentauro> anybody using XMonad on nixos?
18:03:04 <Kronic> I see the problem
18:03:10 <Kronic> It's the last line
18:03:25 <Kronic> I fixed it, thank you :)
18:03:27 <gentauro> I have an issue when I try to build `building package X11-1.9.2`
18:04:23 <gentauro> I noticed that only `libX11-1.6.12` is available :(
18:04:36 <Kronic> not meaning to discard your advice to trace it hyperisco, I already know function application fairly well I think I was just tunnel visioned on the line I commented on a little too much
18:04:37 mirrorbird joins (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86)
18:04:47 <ph88> in which monad can i run this function ? https://hackage.haskell.org/package/Frames-streamly-0.1.0.2/docs/Frames-Streamly-CSV.html#v:readTable
18:04:56 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 240 seconds)
18:05:02 christo joins (~chris@81.96.113.213)
18:05:30 <sm[m]> adding to koz_'s stack answer: I expect doing stack update would help there
18:05:46 <koz_> sm[m]: Yeah, that's a good point.
18:05:55 <ph88> are you talking to me ?
18:06:11 <koz_> ph88: The 'm' part requires MonadIO and MonadCatch.
18:06:21 <koz_> Basically, that translates to 'IO, or a stack with IO in its heart'.
18:06:28 danso joins (~dan@69-165-210-185.cable.teksavvy.com)
18:06:56 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
18:07:03 × mirrorbird quits (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) (Client Quit)
18:07:30 × joaj quits (~joaj@2001:690:2100:1b:a36f:f7ab:d46c:98f0) (Quit: WeeChat 2.9)
18:07:58 × juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 268 seconds)
18:08:19 <hyperisco> > let { changeOne p f xs = let (a, a') = span (not . p) xs; (b, b') = splitAt 1 a' in a ++ map f b ++ b' } in changeOne (>3) (*2) [1..10]
18:08:21 <ph88> koz_, i am trying to run this in IO but i get a type error https://bpa.st/A2JQ
18:08:21 <lambdabot> [1,2,3,8,5,6,7,8,9,10]
18:08:54 <koz_> ph88: Pastebin the code?
18:08:59 <ph88> ok
18:09:24 <ph88> koz_, the code is not much more than what is in line 12 to 15
18:09:37 <koz_> ph88: Pastebin it anyway.
18:09:39 <koz_> Context helps.
18:09:42 <ph88> ok just a moment
18:09:48 <koz_> (for explanation if nothing else0
18:09:49 × christo quits (~chris@81.96.113.213) (Ping timeout: 268 seconds)
18:09:52 <koz_> )*
18:10:28 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
18:10:39 <ph88> koz_, https://bpa.st/GOVA
18:10:54 × phyll1s_work quits (~phyll1s_w@195.140.213.38) (Ping timeout: 260 seconds)
18:11:04 <koz_> readTable doesn't return something in IO.
18:11:16 <koz_> It gives back t m (Record rs), where t is a stream type.
18:11:17 <boxscape> tomsmeding I'm now using a custom length-indexed vector as the index with the same Ix order as the tuples, and it also has the 2x runtime, but yeah, not really sure what's going on with that
18:11:26 <koz_> So you have to use the streamly stuff to actually pull records out of it.
18:11:39 <ph88> so it's a pure value from IO monad perspective ?
18:11:42 <xerox_> > let change p f = traverse (\x -> x : [ f x | p x ]) in change (>3) (*2) [1..5]
18:11:42 <koz_> That's what your type error is saying.
18:11:44 <lambdabot> [[1,2,3,4,5],[1,2,3,4,10],[1,2,3,8,5],[1,2,3,8,10]]
18:11:52 <xerox_> hyperisco: was hoping head was that one but no
18:11:56 <koz_> ph88: It's not in IO, if that's what you're asking.
18:12:16 <tomsmeding> boxscape: strange things
18:12:30 <koz_> Basically, the whole point of streamly is that the streams themselves are not in IO - the values you pull out of them _are_, but then you only have to be in IO for those values, not the whole thing.
18:12:38 <koz_> (which could be infinite, and thus could pose some hilarious problems)
18:12:56 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds)
18:13:30 <xerox_> ah [f x|p x]++[x] gives the first one as head, right
18:14:12 <ph88> koz_, do you know which type i could give it ?? https://bpa.st/IT3A
18:14:27 oish joins (~charlie@228.25.169.217.in-addr.arpa)
18:14:46 <koz_> As far as I can tell, this is a vinyl problem. I dunno vinyl, so I can't help much.
18:15:05 <ph88> oki
18:15:14 <ph88> thank you koz_
18:15:17 <koz_> No worries.
18:16:18 <Kronic> very interesting hyperisco thank you for that!
18:16:31 <hyperisco> is it a histomorphism that could do it too
18:17:50 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 268 seconds)
18:18:29 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
18:19:33 <hyperisco> > let changeOne p f = fst . foldr (\x (xs',xs) -> (if p x then f x : xs else x : xs', x:xs)) ([],[]) in changeOne (>3) (*2) [1..10]
18:19:35 <lambdabot> [1,2,3,8,5,6,7,8,9,10]
18:21:28 pjb joins (~t@2a01cb04063ec500c04af862aff5caa7.ipv6.abo.wanadoo.fr)
18:23:20 justsomeguy joins (~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com)
18:23:20 × justsomeguy quits (~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com) (Changing host)
18:23:20 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
18:26:27 × Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection)
18:27:11 × bliminse quits (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) (Quit: leaving)
18:28:00 Stanley00 joins (~stanley00@unaffiliated/stanley00)
18:28:58 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
18:30:41 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Read error: Connection reset by peer)
18:30:56 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
18:32:19 howdoi joins (uid224@gateway/web/irccloud.com/x-jyxgencxqnzavabz)
18:32:23 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
18:32:32 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds)
18:32:40 mbomba joins (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca)
18:32:49 _linker_ joins (~linker@2a02:a31a:a041:9a80:3db8:9890:7378:91f0)
18:34:22 guest1216 joins (~user@49.5.6.87)
18:35:51 × stefan quits (~cri@42dots.de) (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in)
18:35:59 stefan joins (~cri@42dots.de)
18:36:07 u0_a298 joins (~user@47.206.148.226)
18:38:14 × stefan quits (~cri@42dots.de) (Client Quit)
18:38:21 stefan-_ joins (~cri@42dots.de)
18:38:42 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:38:54 × guest1216 quits (~user@49.5.6.87) (Ping timeout: 260 seconds)
18:39:16 porvak joins (~porvak@84.39.117.57)
18:42:08 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
18:43:31 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
18:43:56 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
18:44:22 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
18:45:53 × MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection)
18:46:17 MOSCOS joins (~MOSCOS@122.54.107.175)
18:50:46 fuzzypixelz_ joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
18:51:31 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 246 seconds)
18:51:36 fuzzypixelz_ is now known as fuzzypixelz
18:52:05 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit)
18:52:24 fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
18:54:22 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Remote host closed the connection)
18:54:40 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
18:55:26 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
18:56:57 × fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit)
18:58:18 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
19:00:02 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 264 seconds)
19:02:11 × Merfont quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
19:02:30 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-evqgdihcidrcilck)
19:02:34 Merfont joins (~Kaiepi@47.54.252.148)
19:02:51 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds)
19:03:24 berberman joins (~berberman@unaffiliated/berberman)
19:06:22 teardown joins (~user@gateway/tor-sasl/mrush)
19:07:05 × Rudd0 quits (~Rudd0@185.189.115.98) (Remote host closed the connection)
19:07:52 × ggole quits (~ggole@2001:8003:8119:7200:b1ce:df7:cb14:ba8f) (Quit: Leaving)
19:09:01 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
19:09:03 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
19:10:19 yitz joins (~yitz@unaffiliated/yitz)
19:11:21 <yitz> Any recommendations for a dead-tree book that's good for learning Haskell?
19:11:51 × asheshambasta quits (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) (Ping timeout: 272 seconds)
19:13:36 geekosaur joins (42d52137@66.213.33.55)
19:14:25 × codeAlways quits (uid272474@gateway/web/irccloud.com/x-uaxhttwxpgbyaiuf) (Quit: Connection closed for inactivity)
19:19:34 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
19:31:59 × dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 260 seconds)
19:32:01 Vulfe joins (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00)
19:33:46 × tenniscp25 quits (~tenniscp2@134.196.209.118) (Remote host closed the connection)
19:34:10 <ph88> Is anyone familiar with vinyl ?? I would like to supply Record https://hackage.haskell.org/package/Frames-0.7.0/docs/Frames-Rec.html#t:Record with an "empty" type just for test. Maybe i can use a type similar to that of RNil ?? https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Core.html#v:RNil
19:34:19 tenniscp25 joins (~tenniscp2@134.196.209.118)
19:34:34 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
19:34:53 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
19:35:00 <ph88> Type ElField is part of Record which needs the actual parameter https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Functor.html#t:ElField
19:35:33 <suzu_> ah god this is melting my brain
19:35:42 <exarkun> How do I narrow down the cause of a fatal exception? eg, my program exits when "DevBot-exe: user error (Upstream source closed.)". How do I map that onto a function that needs additional exception handling?
19:36:22 <geekosaur> +RTS -xc ?
19:36:35 <geekosaur> may require rebuilding with profiling
19:36:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:5558:d5c3:d19f:3f00) (Ping timeout: 260 seconds)
19:36:42 Achylles joins (~Achylles@189.79.237.44)
19:36:53 <suzu_> is there a way to get MonadIO for a Foo -> m a where `m` is an instance of MonadIO
19:38:09 <ph88> suzu_, what do you mean ?
19:38:30 <suzu_> i've got a monad: Widget HTML
19:38:40 <suzu_> making values of Widget HTML a
19:38:47 <koz_> suzu_: Sure, via ReaderT Foo m
19:38:54 <suzu_> i want to do some RIO stuff in it
19:39:04 × tenniscp25 quits (~tenniscp2@134.196.209.118) (Ping timeout: 256 seconds)
19:39:05 <ph88> suzu_, maybe you can use function liftIO
19:39:28 <suzu_> RIO a is a wrapper on ReaderT env IO a
19:39:35 <suzu_> i want to lift RIO a's inside Widget
19:40:10 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
19:40:12 <suzu_> i want to go from RIO a -> Widget HTML a pretty much
19:40:28 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
19:40:34 <suzu_> i can almost do this
19:40:36 <suzu_> liftRIO :: (MonadIO m, MonadReader env m) => RIO env a -> m a
19:40:38 <koz_> suzu_: Do you want an instance of MonadIO for Widget HTML I guess?
19:40:44 nineonine joins (~nineonine@50.216.62.2)
19:40:47 <suzu_> Widget HTML has a MonadIO
19:40:51 <suzu_> but no MonadReader
19:40:58 <suzu_> so im just sorta stuck
19:41:09 <koz_> I guess Widget isn't a thing you wrote?
19:41:12 <suzu_> right
19:41:48 dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net)
19:42:47 <ph88> wish i could help :|
19:43:20 <koz_> My best bet is 'newtype-wrap Widget and give it the right instance, then unwrap again once you're done lifting'.
19:44:48 <suzu_> hmmm
19:45:10 <suzu_> newtype-wrap it and give it an 'env' addon perhaps
19:45:16 <suzu_> and then add monadreader to it
19:45:19 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
19:45:22 <koz_> The whole idea is you write like.
19:45:35 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
19:45:45 <koz_> newtype SnoymanStopMessingWithMe a = SSMWM (Widget HTML a)
19:45:47 <koz_> Then go
19:45:54 jpds joins (~jpds@gateway/tor-sasl/jpds)
19:45:59 <suzu_> newtype WidgetedEnv env v a = { unwrap :: env -> Widget v a }
19:46:09 <koz_> instance MonadReader HTML SnoymanStopMessingWithMe where
19:46:14 <suzu_> lmao snoyman stop messing wit hme
19:46:23 <koz_> Since I _assume_ the environment in question is HTML?
19:46:35 <suzu_> good guess but not quite
19:46:38 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
19:46:40 <suzu_> Widget is rather strange
19:46:53 <suzu_> but i think what you're describing might work
19:47:31 <ph88> that's an interesting name for a type koz_ xD
19:47:36 <koz_> ph88: :D
19:47:55 <ph88> does someone know this type level programming data kinds stuff ?? https://bpa.st/HQYA
19:47:57 <suzu_> oh i found an idea!
19:48:01 × Achylles quits (~Achylles@189.79.237.44) (Quit: Leaving)
19:48:07 <suzu_> instead of writing code in :: Widget HTML a
19:48:15 <suzu_> i'll write it in :: env -> Widget HTML a
19:48:33 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
19:48:35 <suzu_> then i can rioToWidget :: RIO env a -> env -> widget HTML a
19:48:38 <koz_> suzu_: So Kleisli (Widget HTML) env a ?
19:48:40 <ph88> i had DataKinds enabled btw
19:48:45 <suzu_> rioToWidget rr e = runRIO e rr
19:48:55 <suzu_> sure idk what Kleisli is
19:48:56 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
19:49:06 <suzu_> thats probably what i ended up at by accident
19:49:07 <suzu_> lol
19:49:11 <koz_> suzu_: Kleisli m a b ~ a -> m b
19:49:18 <ph88> some kind of primitive in category theory right
19:49:25 <suzu_> looks like monad bind
19:49:28 <suzu_> so
19:49:28 <koz_> Also known as the fish arrow.
19:49:30 <suzu_> yep
19:49:32 <suzu_> >=>
19:49:33 <koz_> It's not bind - it's fish.
19:49:34 <suzu_> this thing?
19:49:38 <koz_> Yep, fish.
19:49:45 <suzu_> what's the type of fish
19:49:49 <ph88> getting hungry now
19:49:51 <koz_> :t (>=>)
19:49:53 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
19:49:58 <koz_> Oh wait, not fish.
19:49:59 <suzu_> that is
19:50:00 <suzu_> melting my brain
19:50:08 <suzu_> oh i see
19:50:10 <ephemient> also (<=<), of course
19:50:13 <koz_> Basically, fish composes two Kleislis.
19:50:21 <dsal> yitz: I read haskellbook.com on my kindle. It'd be a lot to print.
19:50:21 <suzu_> take the a at the end and push it through two almost-bind-like things
19:50:30 <suzu_> making one bind-like-thing
19:50:35 <koz_> suzu_: They're more like 'functions which add on an effect'.
19:50:41 <koz_> Compare a -> b to a -> m b
19:50:54 <koz_> The former is pure, the latter (possibly) has effects.
19:51:08 <ph88> geekosaur, could you help me with question about DataKinds ?
19:51:11 <koz_> So fish is to Kleisli like (.) is to pure functions.
19:51:12 <yitz> dsal: Thanks. I'm thinking of taking advantage of company policy to order a book. If they got a print version, I'll look into that one. Thanks!
19:51:42 <suzu_> hmm
19:51:45 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
19:51:45 <merijn> suzu_: >=> is just "\f g x -> f x >>= g"
19:51:49 <ph88> yitz, i think there was another pretty good book released after the haskellbook, and that book looked better to me
19:51:52 <suzu_> whats the nice way to write what i ended up with then?
19:51:52 <merijn> :t (>>=)
19:51:53 <lambdabot> Monad m => m a -> (a -> m b) -> m b
19:52:07 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 260 seconds)
19:52:24 <suzu_> i'm now working in ((->) Env) Widget HTML a
19:52:33 <suzu_> so the ((->) Env) monad instance
19:52:33 Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c)
19:52:41 <yitz> ph88: got a title?
19:52:42 <suzu_> and having to `pure` a lot of stuff
19:52:52 <ph88> yitz, i will look just a moment
19:53:10 <dsal> yitz: There are print version of books that are not the first book you should read. :) I'd say there are three levels. haskellbook.com is good material, though not perfect. People have also been recommending: https://www.cs.nott.ac.uk/~pszgmh/pih.html
19:53:16 × vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 240 seconds)
19:53:33 <dsal> This is a really good second book: https://simonmar.github.io/pages/pcph.html
19:53:38 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
19:54:19 <dsal> From there, https://thinkingwithtypes.com/ will take you quite deep.
19:54:41 <dsal> This one is really great for getting a basic understanding of lens: https://leanpub.com/optics-by-example
19:54:59 <dsal> Caveat, though. You'll be really angry with all your other tools once you start having better things to compare them to.
19:55:25 <dsal> (not that there's nothing to complain about in Haskell, but many of the parts that aren't perfect are just nonexistent in stuff I have to do at work)
19:55:41 <yitz> lol. Thank you
19:55:46 <suzu_> ok this doesnt work
19:55:53 <suzu_> im going to newtype widget as you suggested koz_
19:55:53 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds)
19:55:55 <suzu_> i think that's it
19:56:04 × bitmagie quits (~Thunderbi@200116b80697370068b048f727c82739.dip.versatel-1u1.de) (Quit: bitmagie)
19:56:16 <koz_> suzu_: Any problem can be solved by adding enough newtypes. :P
19:56:31 <suzu_> why cant it derive monad for me wtf
19:56:45 <koz_> suzu_: How are you asking it to derive?
19:56:55 <suzu_> probably by doing it wrong
19:56:57 <suzu_> newtype RIOWidget env v a = RIOWidget {unRIOWidget :: env -> Widget v a} deriving (Functor)
19:57:21 <suzu_> adding Monad / Applicative to that list says it can't do eta-reduce it enough to get it to work?
19:57:22 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds)
19:57:23 <koz_> deriving (Functor, Applicative, Monad) via (Kleisli (Widget v) env) should work?
19:57:24 <ph88> yitz, i was also thinking of this book https://www.cs.nott.ac.uk/~pszgmh/pih.html
19:57:30 <suzu_> oh
19:57:32 <koz_> (you need DerivingVia on)
19:57:38 <yitz> Two recommendations for the same book! That's promising
19:57:41 <yitz> Thanks, ph88
19:58:14 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 264 seconds)
19:58:45 <suzu_> thath worked
19:58:47 <suzu_> .. why did that work
19:58:50 <suzu_> what did i just do
19:58:52 <suzu_> lol
19:58:58 <koz_> suzu_: There's two steps here.
19:59:00 <suzu_> @i Kleisli
19:59:00 <lambdabot> Maybe you meant: id ignore index instances instances-importing irc-connect irc-password irc-persist-connect v @ ? .
19:59:16 <koz_> First, GHC sees that your type is coercible to env -> Widget v a
19:59:33 <koz_> Then it sees that env -> Widget v a is coercible to Kleisli (Widget v) env a
19:59:38 <suzu_> ^ ok what
19:59:47 <koz_> Then it sees that Kleisli (Widget v) env a has the instances you asked for.
19:59:57 <koz_> So it then basically scribbles in all the methods with a bunch of coerces.
20:00:12 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 268 seconds)
20:00:18 <ph88> that's a lot of scribbling
20:00:26 <koz_> ph88: Saves _you_ doing it, though!
20:00:28 <suzu_> Kleisli m a b, is a -> m b
20:00:45 <ph88> well i'm still stuck on DataKinds, but ok Kleisli lol :p
20:01:16 <suzu_> so Kleisli (Widget v) env a is env -> (Widget v) a
20:01:21 <suzu_> ok
20:01:25 × evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 264 seconds)
20:01:48 <suzu_> and then all these nistances under Klesli in Control.arrow are on (Kleisli m) for any m
20:01:50 <suzu_> okay
20:01:52 <suzu_> i get it
20:01:54 <suzu_> wow
20:01:56 Deide joins (~Deide@217.155.19.23)
20:02:01 <suzu_> that is an excellent tool
20:02:05 <koz_> DerivingVia is pretty handy for exactly these kinds of scenarios.
20:02:07 <suzu_> i am keeping that in my pocket
20:02:46 <koz_> Note: Traverse is annoyingly resistant to being derived this way.
20:02:53 geekosaur joins (42d52137@66.213.33.55)
20:02:56 <koz_> So don't be surprised if you see coercion gore from GHC if you try it.
20:03:24 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
20:03:25 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:04:10 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
20:05:52 Stanley00 joins (~stanley00@unaffiliated/stanley00)
20:07:52 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
20:08:28 texasmynsted joins (~texasmyns@92.119.17.139)
20:09:27 × wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 268 seconds)
20:10:34 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds)
20:10:36 <ph88> anyone else experience that haskell programs in powershell are very slow ?
20:11:31 sh9 joins (~sh9@softbank060116136158.bbtec.net)
20:12:30 <koz_> ph88: What do said programs do?
20:12:39 <koz_> (like, in your experience of slowness?)
20:12:48 <ph88> well ghc itself is very slow
20:13:00 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
20:13:08 <ph88> when i run a virtualmachine on the same machine with linux it's faster
20:13:48 <Kronic> I prefer coding in a VM personally, haskell using haskell on windows was a huge pain
20:13:58 <Kronic> I brainfarted hard there...
20:14:18 <Kronic> s/haskell using haskell/using haskell
20:14:21 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Client Quit)
20:16:23 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
20:18:41 teardown joins (~user@gateway/tor-sasl/mrush)
20:23:12 <xsperry> ph88, "when i run a virtualmachine on the same machine with linux it's faster" <- how much faster?
20:24:05 rprije joins (~rprije@14-203-203-69.tpgi.com.au)
20:24:22 <dsal> yitz: I don't exactly count as a recommendation for the Hutton book. I've not read it. The thing I liked about haskellbook.com (and a lot of people *didn't* like) was that it goes very slow with no assumed knowledge. Forgetting things you know about programming will make it easier.
20:25:09 <monochrom> Generally linux is more efficient than windows. Even linux in virtualbox on windows is more efficient than native windows, heh.
20:25:24 <yitz> I'm good at forgetting things. But I'm not very good at deciding _which_ things to forget...
20:25:48 wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net)
20:26:06 <monochrom> Kronic: It's alright, when one builds GHC from source, it counts as haskell using haskell, and it's known to take a while :)
20:26:58 knupfer joins (~Thunderbi@200116b82c41c500146d97fffe6f228b.dip.versatel-1u1.de)
20:27:35 <monochrom> I like haskellbook.com being slow. I no longer recommend it because it has technical inaccuracy that are unnecessary.
20:27:43 × knupfer quits (~Thunderbi@200116b82c41c500146d97fffe6f228b.dip.versatel-1u1.de) (Remote host closed the connection)
20:27:56 knupfer joins (~Thunderbi@200116b82c41c5004d9c68c948169740.dip.versatel-1u1.de)
20:28:06 <merijn> monochrom: Which inaccuracies?
20:28:11 <monochrom> I forgot.
20:28:28 <monochrom> (Conveniently, eh?)
20:28:50 <Kronic> what do you recommend instead?
20:28:51 <merijn> monochrom: I like that it includes megaparsec and transformers instead of just Haskell, because parser combinators and transformers are kinda mandatory :p
20:29:20 <monochrom> Yeah it has a lot of good things.
20:29:24 <merijn> Kronic: fwiw it worked well for my girlfriend
20:29:35 <Kronic> I own the book already
20:29:59 <Kronic> I was just curious because I'm not having many problems making progress, I'm just curious in case I want to recommend a friend or work mate
20:30:30 <merijn> I heard Bird's "Thinking Functionally with Haskell" and Hutton's "Programming in Haskell" were good, but I haven't read either
20:30:43 <ezzieyguywuf> when a package has a dependency of ">=QuickCheck-2.13.2 && <QuickCheck-2.14", how can I find out the reason for the upper limit?
20:30:48 <merijn> Admittedly, I haven't read more than a few half chapters of HFFP either :p
20:30:59 <ezzieyguywuf> there's a few that have this same callout for quickcheck
20:31:03 <merijn> ezzieyguywuf: Disabling it and seeing if it works ;)
20:31:14 <ezzieyguywuf> lol
20:31:21 <ezzieyguywuf> is it generally safe to try that?
20:31:27 <ph88> xsperry, significantly ... but i would have to measure. bit busy right now to do those measurements
20:31:36 <monochrom> I recommend starting with the wikibook, so you don't have to sink money yet, and maybe it is already enough. If it is not enough, then Hutton's, but take it very slowly, it is not long but you should not use speed reading.
20:31:40 <merijn> ezzieyguywuf: There is syntax to distinguish "know to not work" and "not known if it works" in newer cabal versions, but not yet
20:31:43 <ezzieyguywuf> i.e. do folks usually put the upper limit "just in case"?
20:31:58 <merijn> ezzieyguywuf: A lot of people do and the ones who don't *should*
20:32:02 <ezzieyguywuf> merijn: awww man can't wait, lol
20:32:26 <monochrom> I suspect that the 1000-page length of haskellbook.com works on the simple ground that even if you try speed reading the 1000 pages will slow you down back to the correct pace.
20:32:29 <ezzieyguywuf> merijn: hrm, can you elaborote on why one should set an upper limit? should the upper limit always be the next minor rev?
20:32:29 <merijn> ezzieyguywuf: "newer" == cabal-install 2.4 :p
20:32:45 <merijn> ezzieyguywuf: https://pvp.haskell.org/
20:33:17 <ezzieyguywuf> cabal-install 2.4? isn't that super old?
20:33:27 <ezzieyguywuf> I'm trying to package 3.2 right now for gentoo
20:33:44 <merijn> ezzieyguywuf: In cabal-version 2.4 and later you have "QuickCheck ^>= 2.13" which means "PVP compatible with the API" of 2.13 (which basically means "untested with anything later")
20:33:49 <merijn> ezzieyguywuf: Hence "newer" in quotes :p
20:33:58 <monochrom> IOW people these days don't stop after every two sentences and close the book and reflect "does it really mean what I think it means? how do I test my understanding?".
20:34:14 <merijn> ezzieyguywuf: As opposed to "QuickCheck < 2.14" which then becomes "*known* to not work"
20:34:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:35:03 <merijn> ezzieyguywuf: cabal-install also has a flag to allow newer bounds for all upperbounds from ^>= without automatically including all the < bounds
20:35:08 <ezzieyguywuf> merijn: hrm, so in my head that is translating to "If I don't see a ^, probs ok to poke it"
20:35:09 <davean> monochrom: Two sentances seems like a sentance and a half too much given how I read research papers
20:35:11 jess joins (jess@freenode/staff/jess)
20:35:44 <monochrom> Well, for a mere Haskell textbook, it's OK.
20:35:45 <merijn> ezzieyguywuf: A lot of cabal files in the wild use an older version of the format for many different reasons, so it's not very wildspread, but yes
20:35:49 <ezzieyguywuf> merijn: is that feature specific to cabal-install, or available in the underlying cabal library?
20:35:50 × softwarm quits (4408f588@ip68-8-245-136.sd.sd.cox.net) (Remote host closed the connection)
20:35:53 <merijn> ezzieyguywuf: Actually, more the opposite
20:36:00 <merijn> ezzieyguywuf: Which part
20:36:10 <ezzieyguywuf> merijn: "allow newer even if it says don't"
20:36:16 <merijn> ezzieyguywuf: It's more like "if you see ^ then it probably ok to relax" not the other way
20:36:20 <davean> ezzieyguywuf: Cabal.
20:36:40 <davean> ezzieyguywuf: cabal-install is just a thing that uses Cabal. Everything really to do with the .cabal file is Cabal.
20:36:53 <ezzieyguywuf> right right
20:36:55 <merijn> ezzieyguywuf: Since "foo ^>= 3.14" says *known* to work with 3.14 (and PVP compatible releases) which says nothing about whether newer versions work or not
20:37:08 <ezzieyguywuf> hrm, I see
20:37:27 <ezzieyguywuf> maybe I look at quicheck changelog
20:37:33 <merijn> The distinctio between "know to not work" and "not known to work" is why ^>= was introduced
20:37:38 <ezzieyguywuf> I mean, from 2.13 to 2.14 what could have changed...
20:39:24 <ezzieyguywuf> yea, changelog seems to indicate a bunch of speed improvements behind the scenes, but doesn't explicitly say that the api changed
20:39:33 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
20:39:33 <ezzieyguywuf> (I don't even really understand ABI and PVP...)
20:39:50 <davean> There are, not well maintained, tools to diff Haskell APIs
20:39:59 <davean> but version changes can also relate to semantics
20:43:04 tenniscp25 joins (~tenniscp2@134.196.209.118)
20:43:06 × kuribas quits (~user@ptr-25vy0i8agrj36ppuptm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
20:44:50 <ezzieyguywuf> ahh, see random (the package) changelog "breaking change that...."
20:44:59 ezzieyguywuf sees and nods "ah yes, very good to know"
20:45:42 teardown_ joins (~user@gateway/tor-sasl/mrush)
20:45:43 <davean> ight
20:47:41 × tenniscp25 quits (~tenniscp2@134.196.209.118) (Ping timeout: 268 seconds)
20:48:14 <ph88> anyone know how i add instance of Parseable to read a csv file ? https://bpa.st/BG4A
20:49:03 × teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
20:49:11 zmagii joins (~zmagii@unaffiliated/zmagii)
20:50:48 × darjeeling_ quits (~darjeelin@122.245.217.210) (Ping timeout: 265 seconds)
20:52:51 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
20:53:54 Wuzzy joins (~Wuzzy@p5b0df87d.dip0.t-ipconnect.de)
20:54:32 todda7 joins (~torstein@ppp-2-84-17-53.home.otenet.gr)
20:55:51 Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c)
20:55:56 × apoc quits (~apoc@bridge.mattzq.com) (Ping timeout: 240 seconds)
20:57:37 machinedgod joins (~machinedg@24.105.81.50)
20:57:38 apoc joins (~apoc@bridge.mattzq.com)
20:58:20 redmp joins (~redmp@mobile-166-177-250-97.mycingular.net)
21:00:49 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 264 seconds)
21:03:20 borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de)
21:03:43 pavonia joins (~user@unaffiliated/siracusa)
21:04:46 darjeeling_ joins (~darjeelin@122.245.217.210)
21:07:41 jollygood2 joins (~bc8165ab@217.29.117.252)
21:07:45 electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
21:08:44 xcmw joins (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com)
21:10:04 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
21:10:51 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
21:13:43 × LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
21:15:18 <ph88> oh found it i think
21:15:44 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
21:17:17 arahael joins (~arahael@194-193-194-178.tpgi.com.au)
21:21:28 Philipp joins (~Philipp@8.43.122.34)
21:24:30 × Philipp quits (~Philipp@8.43.122.34) (Client Quit)
21:30:43 <ph88> hurray, after 4 hours i was able to read a line from the csv :D
21:32:37 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:34:03 <dsal> Frames? Are you doing R in Haskell?
21:36:12 <ph88> https://hackage.haskell.org/package/Frames-0.7.0
21:41:20 × knupfer quits (~Thunderbi@200116b82c41c5004d9c68c948169740.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
21:43:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
21:44:13 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
21:46:10 <koz_> . o O ('R in Haskell' = 'Raskell'? )
21:48:01 <Rembane> Rascal!
21:48:31 <koz_> Data-oriented Scheme dialect gogo?
21:48:45 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
21:48:54 <geekosaur> waskelly wabbit?
21:49:58 × borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
21:49:58 <Rembane> ...for the enterprise
21:54:44 mounty joins (~mounty@2001:8000:2f59:0:6c2e:3caf:57c1:9c66)
21:55:41 × geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection)
21:56:08 × u0_a298 quits (~user@47.206.148.226) (Ping timeout: 268 seconds)
21:56:15 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
21:56:24 × redmp quits (~redmp@mobile-166-177-250-97.mycingular.net) (Quit: byeee)
21:56:45 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
21:58:33 × taurux quits (~taurux@net-93-144-87-101.cust.dsl.teletu.it) (Quit: ZNC 1.7.5 - https://znc.in)
22:00:23 Rudd0 joins (~Rudd0@185.189.115.108)
22:02:49 × Ariakenom_ quits (~Ariakenom@2001:9b1:efb:fc00:c9f8:3d5b:f807:f873) (Read error: Connection reset by peer)
22:04:06 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
22:06:47 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
22:06:54 × kenran quits (~kenran@i59F67BCB.versanet.de) (Quit: leaving)
22:07:02 Stanley00 joins (~stanley00@unaffiliated/stanley00)
22:07:31 × kupi quits (uid212005@gateway/web/irccloud.com/x-mktflcfjzasruohy) (Quit: Connection closed for inactivity)
22:07:43 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:1de4:7265:50e8:3545) (Ping timeout: 260 seconds)
22:09:11 mirrorbird joins (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86)
22:09:41 × ubert quits (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
22:09:42 × dhil quits (~dhil@78.156.97.38) (Ping timeout: 268 seconds)
22:10:03 ubert joins (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de)
22:11:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:11:33 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 268 seconds)
22:12:14 × fendor_ quits (~fendor@77.119.130.146.wireless.dyn.drei.com) (Remote host closed the connection)
22:13:13 <koz_> Is there some newtype Foo over Maybe a, such that we have a Semigroup instance where 'Foo Nothing' is an absorbing element?
22:13:26 <koz_> (assuming a has a Semigroup instance of its own)
22:14:01 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
22:14:10 teardown joins (~user@gateway/tor-sasl/mrush)
22:15:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
22:16:00 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:16:46 u0_a298 joins (~user@65.35.205.131)
22:17:01 <dolio> Ap Maybe?
22:17:03 × teardown_ quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
22:17:30 <koz_> dolio: Perfect, thank you!
22:17:45 <koz_> I assume its Monoid instance just does 'Just mempty'?
22:17:57 <dolio> Presumably.
22:18:27 <koz_> Appears like it does, awesome.
22:19:31 <koz_> Time for sick deriving shenanigans.
22:20:34 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
22:20:56 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
22:21:11 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
22:21:25 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:21:46 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
22:21:58 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
22:22:16 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds)
22:23:59 Varis joins (~Tadas@unaffiliated/varis)
22:24:39 borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de)
22:25:52 × carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection)
22:26:12 carlomagno joins (~cararell@148.87.23.9)
22:29:26 × borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
22:29:33 <koz_> "The pat_lhs for explicitly bidirectional construction cannot use Record syntax. (Because the rhs expr might be constructing different data constructors.) It can use guards with multiple equations."
22:29:51 <koz_> Is the intent of the sentence that 'guards with multiple equations' can substitute for Record syntax?
22:29:55 <koz_> Or are they just unrelated?
22:30:23 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
22:32:53 × u0_a298 quits (~user@65.35.205.131) (Read error: Connection reset by peer)
22:33:23 notzmv` is now known as notzmv
22:33:35 <monochrom> Unrelated.
22:33:42 u0_a298 joins (~user@65.35.205.131)
22:33:42 × notzmv quits (~user@191.205.12.9) (Changing host)
22:33:42 notzmv joins (~user@unaffiliated/zmv)
22:33:45 <koz_> Figured as much, sads.
22:39:18 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 268 seconds)
22:41:06 borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de)
22:42:01 × johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
22:42:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:54:24 × dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 256 seconds)
22:57:31 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
23:02:44 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 268 seconds)
23:03:06 notzmv joins (~user@unaffiliated/zmv)
23:03:13 <koz_> I need naming advice. I keep running into this type: data Foo a = None | ExactlyOne a | TooMany.
23:03:18 <koz_> What's a good name for this?
23:05:16 × tumdedum quits (~tumdedum@unaffiliated/espiral) (Ping timeout: 240 seconds)
23:05:41 <EvanR> Maybe (Maybe a) ? :P
23:06:24 tumdedum joins (~tumdedum@unaffiliated/espiral)
23:06:40 <koz_> EvanR: Isomorphism is not naming. :P
23:06:53 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
23:06:56 <EvanR> or Maybe on top of the zero or one type of your choice
23:07:15 <EvanR> the TooMany seems like an add-on
23:07:30 <justsomeguy> koz_: I saw a video where edwin brady mentions a particular name for this from whatever fancy type system he's basing his language on.
23:07:36 <dolio> It's the flat lattice on `a`.
23:07:38 justsomeguy tries to remember the name he used...
23:08:06 <koz_> dolio: What's a flat lattice?
23:08:52 <dolio> It's got a bottom and a top and a single layer of 'totally defined values' in the middle, which are all incomparable.
23:09:04 <koz_> dolio: TIL, thanks.
23:09:31 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a1f6:288c:9ca1:722b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:09:31 <dolio> Like the integers as a lattice.
23:10:52 <dolio> People describe the Haskell integers as a "flat domain", because there's no top.
23:11:07 justsomeguy would probably just call it Quantity
23:12:19 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
23:12:42 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:13:42 <EvanR> data Goldilocks a = TooFew | JustRight a | TooMany
23:15:39 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
23:16:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:17:37 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
23:18:16 evanjs joins (~evanjs@075-129-098-007.res.spectrum.com)
23:18:46 × borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
23:20:01 <koz_> EvanR: Good enough for me!
23:23:16 × terrorjack quits (~terrorjac@static.23.111.201.195.clients.your-server.de) (Quit: Ping timeout (120 seconds))
23:24:12 <koz_> justsomeguy: If you find out what Edwin named it, I'd be curious to hear.
23:24:16 terrorjack joins (~terrorjac@static.23.111.201.195.clients.your-server.de)
23:24:46 <justsomeguy> koz_: In this paper he calls it multiplicity https://dl.acm.org/doi/10.1145/3209108.3209189
23:24:56 <koz_> Yeah, that works too.
23:25:16 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Quit: Ping timeout (120 seconds))
23:25:46 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
23:25:52 × xff0x quits (~fox@2001:1a81:5260:ab00:82ea:b3e3:e22c:7f9) (Ping timeout: 260 seconds)
23:26:00 <EvanR> ThisMany Int a
23:26:10 × michalz quits (~user@185.246.204.59) (Remote host closed the connection)
23:26:15 <EvanR> -> Multiplicity a
23:26:24 <justsomeguy> "Briefly, in QTT a variable has a multiplicity: 0, 1 or unrestricted (ω)."
23:26:26 <EvanR> or some such
23:26:34 xff0x joins (~fox@2001:1a81:5260:ab00:97f1:2be1:c9ad:fa5c)
23:26:43 <koz_> So 0, 1 and too many. :P
23:28:30 <hpc> "there are 3 numbers in programming: 0, 1, and infinity" :D
23:28:51 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 265 seconds)
23:29:03 TMA joins (tma@twin.jikos.cz)
23:29:28 borne joins (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de)
23:29:42 × fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Quit: leaving)
23:30:45 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds)
23:32:52 <justsomeguy> I really hope that Idris becomes a useable language for practical things in my lifetime. (Maybe it already is?)
23:33:14 jespada joins (~jespada@90.254.245.49)
23:33:16 <koz_> justsomeguy: Libraries and tooling, yo.
23:33:32 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
23:33:34 <justsomeguy> Yeah, also better performance.
23:34:01 <hpc> just do what python programmers do and write C instead :D
23:34:26 <hpc> (or haskell) and then ffi it
23:35:12 tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net)
23:35:26 × u0_a298 quits (~user@65.35.205.131) (Ping timeout: 272 seconds)
23:36:41 justsomeguy is super interested, but will probably never get around to it. He's already putting a bunch of time in to figure out Haskell, which is already pretty far removed from the mindshare of people who do simple sysadmin things.
23:37:10 <justsomeguy> I almost picked go or rust, but haskell was just too interesting.
23:37:22 <koz_> justsomeguy: I'll pick 'can do this at all' before 'can do this fast'.
23:37:38 <koz_> Having to roll your own... everything is the biggest impediment to Idris' success IMHO.
23:38:00 <EvanR> success at being an interesting research project, check
23:38:04 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
23:38:25 <EvanR> success at being promoted to de facto next big thing by fans, check
23:38:52 <EvanR> it's failed to avoid success already!
23:39:14 <koz_> EvanR: 'Avoid success at any cost' is not the Idris motto last I checked. :P
23:39:23 <hpc> justsomeguy: there's a surprising amount of overlap between haskell and puppet, i have found
23:39:28 <EvanR> exactly
23:42:54 × ubert quits (~Thunderbi@p200300ecdf35147ee6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
23:43:29 × livvy quits (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
23:43:43 <justsomeguy> hpc: I thought Haskell would be great for writing small cli utilities that are easy to test and easier to distribute than Python, which is what I'm using now. (Well, sort of, I'm a terrible programmer, so I don't write too much to begin with.)
23:43:51 × daGrevis quits (~daGrevis@unaffiliated/dagrevis) (Quit: Ping timeout (120 seconds))
23:44:03 daGrevis joins (~daGrevis@unaffiliated/dagrevis)
23:46:39 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:48:07 jamm joins (~jamm@unaffiliated/jamm)
23:48:24 × texasmynsted quits (~texasmyns@92.119.17.139) (Remote host closed the connection)
23:49:01 <Boarders> what is the idiomatic way with a bytestring to drop the first line (everything up to and including the first \n)
23:49:01 texasmynsted joins (~texasmyns@92.119.17.139)
23:51:01 × monadmatt quits (~user@119-17-128-101.771180.mel.nbn.aussiebb.net) (Remote host closed the connection)
23:51:23 <Rembane> Boarders: I use drop 1 . dropWhile (/= '\n'), but I'm not sure it's the best way.
23:51:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:51:56 <Boarders> I reach for something similar but with Bytestring.break (== '/n')
23:52:06 <Boarders> but unclear if there is something more appropriate
23:52:41 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 268 seconds)
23:52:49 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
23:53:16 <Rembane> Boarders: break lets you keep the first line, you can throw it away immediately by using dropWhile instead
23:53:48 × texasmynsted quits (~texasmyns@92.119.17.139) (Ping timeout: 272 seconds)
23:55:34 <Boarders> fair point
23:57:12 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
23:57:19 × wonko7 quits (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Ping timeout: 256 seconds)
23:57:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
23:58:29 <justsomeguy> Does “{-# LANGUAGE FlexibleInstances #-}” just allow you to write concrete compound types in instance declarations? Am I understanding this correctly?
23:59:26 <justsomeguy> So I can do something like “instance Something [Char] { ... }” rather than “instance Something [a] { ... }”?

All times are in UTC on 2020-12-17.