Home freenode/#haskell: Logs Calendar

Logs on 2020-11-21 (freenode/#haskell)

00:00:05 Tario joins (~Tario@201.192.165.173)
00:00:43 <texasmynsted> What is "When using the standard console runner," that is referenced in the Tasty readme?
00:01:00 <texasmynsted> I mean what is the "standard console runner"?
00:01:08 × Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 256 seconds)
00:01:14 <texasmynsted> I would expect it to be "cabal test"
00:01:42 × solonarv quits (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
00:01:54 × LittleFox quits (~littlefox@rondra.lf-net.org) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
00:01:54 × beng-nl1 quits (~beng-nl@217.146.82.202) (Remote host closed the connection)
00:02:05 LittleFox joins (~littlefox@rondra.lf-net.org)
00:02:26 × LittleFox quits (~littlefox@rondra.lf-net.org) (Client Quit)
00:02:36 LittleFox joins (~littlefox@rondra.lf-net.org)
00:02:42 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:02:46 <dsal> texasmynsted: You can think of OverloadedStrings as replacing every occurrence of `"x"` with `fromString "x'`
00:02:49 <dsal> :t fromString
00:02:50 <lambdabot> IsString a => String -> a
00:03:08 <dsal> It doesn't mess up your quotes like I did, though.
00:03:15 <texasmynsted> gotcha
00:06:01 hlisp joins (~hlisp@114.246.35.11)
00:07:12 Cthalupa joins (~cthulhu@47.186.47.75)
00:07:54 bbro joins (~bbro@c-24-4-176-204.hsd1.ca.comcast.net)
00:07:59 × kokwok quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 245 seconds)
00:10:06 <texasmynsted> I can get the tasty options to be honored at compile-time but not at run time. I do not know where the runtime they describe exists.
00:10:19 <texasmynsted> I can only execute the Tasty tests via "cabal test"
00:10:28 × hlisp quits (~hlisp@114.246.35.11) (Ping timeout: 260 seconds)
00:12:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:12:32 × cawfee quits (chiya@2406:3003:2077:2341::babe) (Ping timeout: 260 seconds)
00:14:04 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 240 seconds)
00:14:32 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
00:16:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
00:17:09 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
00:17:56 × bbro quits (~bbro@c-24-4-176-204.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
00:18:26 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
00:19:26 cosimone joins (~cosimone@5.170.240.6)
00:19:26 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
00:19:27 × moet quits (~moet@mobile-166-137-178-165.mycingular.net) (Quit: leaving)
00:20:04 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
00:20:31 cawfee joins (chiya@2406:3003:2077:2341::babe)
00:22:09 × vsiddharth quits (~user@135-180-144-154.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
00:26:14 Feuermagier joins (~Feuermagi@213.178.26.41)
00:27:03 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
00:29:36 <jcd> How do you loop over a list of IO actions?
00:30:36 <monochrom> the same way I loop over a list.
00:32:26 christo joins (~chris@81.96.113.213)
00:33:45 sh9 joins (~sh9@softbank060116136158.bbtec.net)
00:34:18 × julm quits (~julm@revolt129.abo.ilico.org) (Quit: Reconnecting)
00:34:34 julm joins (~julm@revolt129.abo.ilico.org)
00:35:25 Varis joins (~Tadas@unaffiliated/varis)
00:36:24 <sm[m]> texasmynsted: have a look at cabal test --help, there is --test-option[s]
00:36:55 <sm[m]> or you can probably run the test executable directly with something like cabal exec -- NAMEOFTESTEXE ...
00:39:40 <sm[m]> incidentally, you can also build your test suite into your main app: https://github.com/simonmichael/hledger/blob/master/hledger/Hledger/Cli/Commands.hs#L270
00:40:34 vhs_ joins (~vhs@41.46.228.159)
00:40:53 nbloomf joins (~nbloomf@2600:1700:ad14:3020:154:88ea:8f88:a5f)
00:41:46 × vhs quits (~vhs@41.239.254.104) (Ping timeout: 246 seconds)
00:42:20 minimario joins (2fe3e53b@047-227-229-059.res.spectrum.com)
00:42:36 <minimario> tooling question: anyone come across the issue where "quick fix" on vscode loops and never fixes anything
00:43:13 sh91 joins (~sh9@softbank060116136158.bbtec.net)
00:43:26 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
00:43:34 × revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
00:44:24 revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
00:44:29 × sh91 quits (~sh9@softbank060116136158.bbtec.net) (Client Quit)
00:45:24 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 265 seconds)
00:48:28 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:49:27 × MasseR quits (~MasseR@51.15.143.128) (Ping timeout: 256 seconds)
00:51:48 MasseR joins (~MasseR@51.15.143.128)
00:52:56 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:6c06:f0fd:283a:1f37:de16)
00:53:22 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
00:54:26 siloxid joins (~user@unaffiliated/siloxid)
00:55:26 xnt14 joins (~xnt14@185.204.1.185)
00:55:54 <jcd>
00:55:54 <jcd> I have an list of IO-contexted values, '[IO a]'. I have a function that removes a context 'B'. According to the documentation, I should be able to use the context-removing function on the list, but I can't. The IO context remains intact. Is there a special function/method/technique that I'm not using?
00:57:05 <glguy> jcd: You can't "remove" IO, you can only sequence IO actions together to make more interesting IO actions
00:57:23 <glguy> I don't know what context 'B' is though
00:58:40 <Ariakenom> " the documentation" "the context-removing function"
00:58:45 <Ariakenom> what are these?
00:58:51 <jcd> https://paste.tomsmeding.com/k8d1Va08
00:59:05 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-uhdfbowqpmvzztxz) (Quit: Connection closed for inactivity)
00:59:33 <jcd> The library I'm using is Network.HTTP.Client.
00:59:48 <glguy> jcd: let responses = map (get_response manager) search_urls -- becomes -- responses <- mapM (get_response manager) search_urls
01:00:07 × AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
01:00:10 <monochrom> You should be looking into mapM_ or mapM, instead of map.
01:00:15 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
01:00:47 × todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Read error: Connection reset by peer)
01:00:47 <Ariakenom> you can use ghci to do things interactively
01:01:16 todda7 joins (~torstein@ppp-2-84-17-53.home.otenet.gr)
01:02:06 <Sose> is Data.List.intersect really slow on long lists? any alternatives? I have two lists that are both around 150k elements and I'm trying to find the intersections :D
01:03:08 <monochrom> Or even better, write your own recursion, so you understand why map doesn't cut it.
01:03:30 <glguy> Sose: it's checking elements together pairwise, so yes it'll be quite slow for anything more than a handful of elements
01:03:42 <glguy> Sose: to do better you'll need something like Data.Set
01:03:58 <monochrom> intersect is quadratic time
01:04:10 hlisp joins (~hlisp@114.246.35.11)
01:04:28 <glguy> or to sort the lists and write a function that takes advantage of the fact that the lists are sorted to do it in one pass through the two lists
01:04:28 <Sose> alright, I'll look into Data.Set
01:04:33 <monochrom> My list is below two hundread, it's fast enough for me.
01:05:30 <jcd> I see! mapM is under 'Basic Monad functions'. Ouch haha. Okay thank you!
01:05:48 bbro joins (~bbro@c-24-4-176-204.hsd1.ca.comcast.net)
01:06:07 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
01:08:37 × hlisp quits (~hlisp@114.246.35.11) (Ping timeout: 264 seconds)
01:10:54 christo joins (~chris@81.96.113.213)
01:13:05 hlisp joins (~hlisp@114.246.35.11)
01:13:54 × bbro quits (~bbro@c-24-4-176-204.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
01:15:21 × christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds)
01:15:21 × tabemann quits (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Read error: Connection reset by peer)
01:17:12 christo joins (~chris@81.96.113.213)
01:18:21 × hlisp quits (~hlisp@114.246.35.11) (Ping timeout: 256 seconds)
01:18:33 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
01:19:22 <Sose> okay, just doing a dumb fromList, intersection and toList with Set takes the time required from minutes to seconds.. thanks again
01:20:35 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
01:21:25 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:23:30 × chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
01:23:44 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
01:24:45 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
01:26:01 × Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 264 seconds)
01:27:12 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:154:88ea:8f88:a5f) (Ping timeout: 260 seconds)
01:27:31 × minimario quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
01:27:48 fubu joins (2fe3e53b@047-227-229-059.res.spectrum.com)
01:27:52 <fubu> Hello!
01:28:13 <fubu> Why doesn't this function work?
01:28:14 <fubu> fibs2 = 1 : 1 : (head $ zipWith (+) fibs2 (tail fibs2))
01:29:07 sh9 joins (~sh9@softbank060116136158.bbtec.net)
01:29:41 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee)
01:29:42 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
01:30:52 Tario joins (~Tario@201.192.165.173)
01:32:02 <Ariakenom> fubu: head takes the first element out of a list. while : adds an element to a list. so in x : (y : z) x is an element, y is an element, but z is a list.
01:32:27 <Ariakenom> so z shouldnt be an element, it should be a list
01:32:45 × nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 240 seconds)
01:33:56 Lord_of_Life joins (~Lord@46.217.217.57)
01:34:22 <Ariakenom> z in my exanple is your (head $ zipWith (+) fibs2 (tail fibs2))
01:34:56 × Lord_of_Life_ quits (~Lord@46.217.218.71) (Ping timeout: 240 seconds)
01:35:50 × LKoen quits (~LKoen@169.244.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.”)
01:38:21 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
01:39:25 <fubu> thank you. I fixed the function, but now i'm failing to see how it works
01:39:30 <fubu> fibs2 = 1 : 1 : (zipWith (+) fibs2 (tail fibs2))
01:40:04 <fubu> I kind of get it, but I don't see how the evaluation works in terms of what is on the stack at each point in time
01:41:03 <dsal> What's "the stack"?
01:41:07 <Ariakenom> you can do the step by step evaluation on paper
01:41:59 <fubu> hm, evaluation stack?
01:42:14 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:42:45 <dsal> That's a list, not a stack, though. Thinking of a stack will be rather confusing.
01:43:01 <fubu> i'm also not sure how the two instances of fibs2 on the right hand side are connected
01:43:08 conal joins (~conal@64.71.133.70)
01:43:12 <dsal> zipWith does that.
01:43:13 <dsal> :t zipWith
01:43:14 <lambdabot> (a -> b -> c) -> [a] -> [b] -> [c]
01:43:14 <fubu> because i know if we do something like f x = g x x, then x only gets evaluated once
01:43:28 <fubu> oh yeah, i know how the terms are being added
01:43:38 <fubu> i'mi not too sure how it's getting evaluated though
01:43:52 <fubu> like you start with 1 : 1 : (zipWith (+) fibs2 (tail fibs2))
01:44:08 <fubu> and then it calls the first fib2 on the RHS to evaluate it
01:44:14 × stree quits (~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
01:44:14 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
01:44:21 <Ariakenom> fubu, once or twice, like that, doesnt matter in this case
01:44:31 stree joins (~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net)
01:44:32 <dsal> > zipWith (+) [a, b, c, d] (tail [a, b, c, d]) :: [Expr]
01:44:34 <lambdabot> [a + b,b + c,c + d]
01:44:48 <Ariakenom> you can start with a simpler version
01:45:13 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
01:45:35 kupi joins (uid212005@gateway/web/irccloud.com/x-vjlwewutkgmnxvxr)
01:45:40 <Ariakenom> nat = 0 : (map (+1) nat)
01:45:41 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
01:45:45 <dsal> So once you get past the [1,1] at the beginning. It's just an infinite stream of numbers added to the same infinite stream of numbers after dropping the first one.
01:45:53 <Ariakenom> or even simpler
01:46:02 <Ariakenom> zeroes = 0: zeroes
01:46:14 <fubu> yeah i understand the nat case
01:46:51 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:47:13 <dsal> > let fibs2 = a : b : zipWith (+) fibs2 (tail fibs2) in fibs2 :: [Expr]
01:47:15 <lambdabot> [a,b,a + b,b + (a + b),a + b + (b + (a + b)),b + (a + b) + (a + b + (b + (a ...
01:47:47 <dsal> It's not super easy to think about that in terms of Peano numbers...
01:48:08 <dsal> > zipWith (+) [1..5] [2..6]
01:48:10 <lambdabot> [3,5,7,9,11]
01:48:32 <dsal> That's all it's doing.
01:48:41 <fubu> ok, i understand the zipWith now
01:48:52 <fubu> but what's the order in which things get evaluated?
01:48:57 <fubu> because at the first stage, you have something like
01:49:12 <fubu> 1 : 1 : (zipWith (+) [1,1,???] [1,???]) right
01:49:19 <fubu> where you only know the 1 : 1 exists
01:49:35 <fubu> so does it then lazily do the 1+1?
01:49:41 <fubu> and attach it to the list
01:49:45 <fubu> and then fill in the next step?
01:50:02 <fubu> and now it's 1 : 1 : (zipWith (+) [1, 1, 2, ...] [1, 2, ...] )
01:50:46 <Ariakenom> well you know the first value of the two zipWith lists. so you know the first value of that result
01:51:15 <fubu> but isn't + lazy?
01:51:23 <fubu> so the result will be stored as 1+1 right
01:51:45 <Ariakenom> zipWith (+) [1,1,..] [1,..] = 2: zipWith (+) [1,..] [..]
01:51:58 <Ariakenom> fubu, sure
01:52:28 <Ariakenom> if you print (show) 1+1 then you will get the string "2"
01:52:54 <dsal> "stored" is kind of a weird word. I don't think it's "stored" anywhere.
01:52:59 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee)
01:53:32 <fubu> how does the evaluation process work?
01:53:40 <dsal> > let fibs2 = a : b : zipWith (+) fibs2 (tail fibs2) in fibs2 :: [Expr]
01:53:43 <lambdabot> [a,b,a + b,b + (a + b),a + b + (b + (a + b)),b + (a + b) + (a + b + (b + (a ...
01:54:14 <fubu> like after compilation how does haskell know what order to do the lazy evaluation in?
01:54:46 <dsal> I'm not sure what you mean. There's a clear dependency.
01:55:00 <Ariakenom> the things that are computed are forced by main::IO ()
01:55:19 <fubu> like
01:55:21 <dsal> Yeah, if you don't ever use the value, it's never computed, so it's not relevant.
01:55:42 <fubu> you have fibs2 = 1 : 1 : (zipWith (+) fibs2 (tail fibs2))
01:55:55 <fubu> are all 3 fibs2 variables linked to each other
01:56:13 <dsal> > let fibs2 = 1 : 1 : (zipWith (+) fibs2 (tail fibs2)) in head fibs2
01:56:15 <lambdabot> 1
01:56:19 <fubu> so that when you compute a new value in fibs2, all 3 variables are automatically updated?
01:56:30 <Ariakenom> yeah, same variable
01:56:40 <Ariakenom> same memory object
01:57:17 <dsal> i.e., it's not a variable at all, and you're not so much computing values or updating things. It's just a list.
01:57:58 <Ariakenom> note that things are always updated from less information to more information. they dont change previous information
01:58:11 <dsal> > let as = 1 : 2 : 3 : as in take 11 as -- it just happens to include itself
01:58:12 <lambdabot> [1,2,3,1,2,3,1,2,3,1,2]
01:58:41 <dsal> But if you were to evaluate this concept manually without thinking about how you'd do it in C or something, it'd be pretty clear.
01:58:49 falafel_ joins (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
01:58:53 <fubu> ah yes, i come from C :P
01:59:13 <dsal> Dropping some of that baggage can be hard. :)
01:59:32 <dsal> You don't tell Haskell how to do things (mostly). You tell Haskell what you want done.
02:00:01 <dsal> You want a list that's made up of itself? You express it in the most simple way, and the runtime does the thing it could do to make that happen.
02:00:17 <Ariakenom> so (zeroes = 0: zeroes) the tail of the list actual is the same pointer as the beginning
02:00:17 <dsal> > let a = a in a -- of course, it has to at least make sense
02:00:21 <lambdabot> *Exception: <<loop>>
02:01:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
02:01:15 toorevitimirp joins (~tooreviti@117.182.180.118)
02:01:26 <dsal> But lists aren't necessarily slots of discrete values. They can just be an infinite recipe list for producing values.
02:01:33 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 2.9)
02:01:36 <dsal> > [ x^2 | x <- [1..] ]
02:01:38 <lambdabot> [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484...
02:01:50 <dsal> That's all the squares. If you want the sum of all squares...
02:01:54 <dsal> > sum [ x^2 | x <- [1..] ]
02:02:00 <lambdabot> mueval-core: Time limit exceeded
02:02:11 <dsal> lambdabot times out, but if you did that yourself and waited long enough, you'd know the sum of all squares.
02:02:22 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-eizsscpohqhxizqc) (Quit: Connection closed for inactivity)
02:02:47 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
02:02:58 <Ariakenom> (!) this claim is unverified
02:03:02 × renzhi quits (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 260 seconds)
02:03:33 Codaraxis joins (~Codaraxis@91.193.4.24)
02:03:57 <dsal> That's true, I personally lack the patience to wait for it to finish.
02:04:21 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
02:05:17 cosimone_ joins (~cosimone@5.170.240.6)
02:05:42 <Ariakenom> (I just used a twitter.com meme in IRC)
02:05:50 <dsal> > sum . take 1000 $ [ x^2 | x <- [1..] ] -- but you can get a taste by just grabbing the first 1000
02:05:52 <lambdabot> 333833500
02:06:19 <dsal> Oh wow, I didn't even get the reference out of context. heh
02:06:28 <Ariakenom> :D
02:08:06 <dsal> While it is true that that's what I asked the computer to do, it's also an example of a poorly selected algorithm.
02:08:46 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-frcalbfvnpyatyuv)
02:13:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:13:39 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
02:14:08 DirefulSalt joins (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
02:14:42 × cosimone_ quits (~cosimone@5.170.240.6) (Quit: cosimone_)
02:15:47 × jchia__ quits (~jchia@58.32.37.146) (Ping timeout: 265 seconds)
02:17:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
02:17:43 jchia__ joins (~jchia@58.32.37.146)
02:18:37 gxt joins (~gxt@gateway/tor-sasl/gxt)
02:19:59 × fubu quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
02:20:01 × toorevitimirp quits (~tooreviti@117.182.180.118) (Remote host closed the connection)
02:20:54 <ski> dminuoso : ok
02:21:42 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
02:23:37 Jonkimi727406120 joins (~Jonkimi@115.44.7.41)
02:23:45 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
02:24:23 <kupi> > 1
02:24:25 <lambdabot> 1
02:24:43 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:11e6:1867:44b7:d623) (Ping timeout: 272 seconds)
02:25:00 <kupi> >foldl (+) 0 [0..]
02:25:05 × Entertainment quits (~entertain@104.246.132.210) ()
02:25:50 <kupi> oh no
02:26:10 <dsal> You should've used foldl'
02:26:36 <kupi> i intentionally used the lazy version
02:26:50 <kupi> wanted to see how does it respond
02:27:30 Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus)
02:27:54 <kupi> >"still alive"
02:28:31 vicfred joins (~vicfred@unaffiliated/vicfred)
02:28:55 <texasmynsted> sm[m]: Okay I will try your suggestions. Thank you.
02:29:11 <dsal> kupi: lambdabot supports private intimate chats as well.
02:29:19 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection)
02:29:29 <Ariakenom> kupi, space after >
02:29:36 × vicfred quits (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded)
02:29:37 FreeBirdLjj joins (~freebirdl@101.228.42.108)
02:29:47 luke joins (~luke@bitnomial/staff/luke)
02:30:05 × Jonkimi727406120 quits (~Jonkimi@115.44.7.41) (Ping timeout: 240 seconds)
02:30:06 vicfred joins (~vicfred@unaffiliated/vicfred)
02:30:47 <dsal> Oh, my client doesn't render it that way. It automatically puts it into some kind of markdown quote format.
02:31:32 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
02:31:36 × Chi1thangoo quits (~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds)
02:32:32 × Ariakenom quits (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
02:33:17 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:33:52 Tario joins (~Tario@201.192.165.173)
02:34:57 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
02:35:44 toorevitimirp joins (~tooreviti@117.182.180.118)
02:35:45 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
02:37:23 × xff0x quits (~fox@2001:1a81:5385:e100:f695:2019:7725:a87d) (Ping timeout: 272 seconds)
02:38:01 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:6c06:f0fd:283a:1f37:de16) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:38:03 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
02:38:57 xff0x joins (~fox@2001:1a81:53c2:b800:6e69:5f46:fae4:631a)
02:47:29 × luke quits (~luke@bitnomial/staff/luke) (Quit: sleep)
02:53:38 et09 joins (~et09@unaffiliated/endolphin)
02:54:11 sand_dul1 joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
02:57:04 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Quit: Lost terminal)
02:58:09 × siloxid quits (~user@unaffiliated/siloxid) (Remote host closed the connection)
02:58:25 siloxid joins (~user@unaffiliated/siloxid)
02:58:42 × sand_dul1 quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Client Quit)
03:03:27 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
03:03:27 × falafel_ quits (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
03:05:50 <Axman6> lambdabot also doesn't respond if you use the wrong syntax...
03:05:56 × cosimone quits (~cosimone@5.170.240.6) (Quit: cosimone)
03:09:18 × jedws quits (~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:10:25 × alp quits (~alp@88.126.45.36) (Ping timeout: 240 seconds)
03:13:44 <siraben> Anyone working with GHC 8.12's linear types with a Nix overlay?
03:15:04 drbean joins (~drbean@TC210-63-209-164.static.apol.com.tw)
03:15:16 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
03:16:13 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 256 seconds)
03:18:01 hackage Z-IO 0.1.8.1 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.8.1 (winterland)
03:23:22 × jedai42 quits (~jedai@lfbn-dij-1-708-251.w90-100.abo.wanadoo.fr) (Ping timeout: 256 seconds)
03:25:39 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
03:27:05 day joins (~Unknown@unaffiliated/day)
03:29:42 siloxid joins (~user@unaffiliated/siloxid)
03:31:09 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
03:33:18 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
03:34:37 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
03:35:32 × acidjnk_new2 quits (~acidjnk@p200300d0c719ff68f4d20d2f20034438.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
03:38:28 machinedgod joins (~machinedg@24.105.81.50)
03:40:18 boxscape joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
03:40:33 × boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Client Quit)
03:43:17 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
03:43:22 × m0rphism quits (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
03:43:40 lagothrix is now known as Guest39499
03:43:40 × Guest39499 quits (~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services)))
03:43:46 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
03:44:10 n0042 joins (d055ed89@208.85.237.137)
03:47:55 × n0042 quits (d055ed89@208.85.237.137) (Remote host closed the connection)
03:49:00 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
03:50:45 × theDon quits (~td@94.134.91.165) (Ping timeout: 260 seconds)
03:52:27 theDon joins (~td@94.134.91.87)
03:55:08 wei2912 joins (~wei2912@unaffiliated/wei2912)
03:56:14 × maroloccio quits (~marolocci@2a02:8084:221:ce00:164f:8aff:fed8:411d) (Quit: WeeChat 2.3)
03:56:56 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
03:57:13 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds)
03:58:24 Jonkimi727406120 joins (~Jonkimi@115.44.7.41)
04:00:00 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
04:02:18 siloxid joins (~user@unaffiliated/siloxid)
04:02:53 × Jonkimi727406120 quits (~Jonkimi@115.44.7.41) (Ping timeout: 260 seconds)
04:04:08 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:06:00 hoker joins (2fe3e53b@047-227-229-059.res.spectrum.com)
04:06:18 <hoker> hi, so I was going through CIS194 and got stuck on this last part, "supply monad": https://www.seas.upenn.edu/~cis194/fall16/hw/07-laziness.html
04:06:39 <hoker> i was able to write the monad functions, but didn't understand how to label the leaves of a tree with natural numbers
04:07:37 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
04:08:01 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee)
04:08:35 × crdrost quits (~crdrost@2601:646:8280:85f0:90f7:1b03:f01f:afae) (Quit: This computer has gone to sleep)
04:13:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:14:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:17:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
04:21:37 nineonine joins (~nineonine@50.216.62.2)
04:23:02 × nineonine quits (~nineonine@50.216.62.2) (Client Quit)
04:26:08 × howdoi quits (uid224@gateway/web/irccloud.com/x-mmsjxvzuqvfjlnly) (Quit: Connection closed for inactivity)
04:27:20 christo joins (~chris@81.96.113.213)
04:28:13 × rprije quits (~rprije@124.148.131.132) (Remote host closed the connection)
04:28:34 rprije joins (~rprije@124.148.131.132)
04:30:14 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
04:30:37 Jonkimi727406120 joins (~Jonkimi@115.44.7.41)
04:31:30 <c_wraith> hoker: the idea is to use the supply to generate a list of natural numbers. Then recurse through the tree, replacing the node value with the next value from the supply when you hit a leaf.
04:31:52 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
04:32:00 <hoker> yeah, so I didn't actually understand the point of mapSupply, mapSupply2, and bindSupply
04:32:31 <c_wraith> those are the implementation for the Functor/Applicative/Monad instances
04:32:43 <c_wraith> Since you have those, you can just use do notation.
04:34:36 <c_wraith> The next section shows using do notation in a similar way. With a different type, but it shows the same ideas.
04:34:45 × Jonkimi727406120 quits (~Jonkimi@115.44.7.41) (Ping timeout: 240 seconds)
04:35:00 <hoker> yeah, can you explain intuitively what the functor/applicative/monad instances mean?
04:35:29 christo joins (~chris@81.96.113.213)
04:35:39 <hoker> like i guess mapSupply is like taking some stream labeler and returning a new stream labeler
04:35:46 <hoker> where the transformation comes from the function
04:35:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:35:51 <c_wraith> not quickly. They're... more abstract than most people are ready to grasp the first time they run into them.
04:36:41 × mozzarella quits (~sam@unaffiliated/sam113101) (Ping timeout: 256 seconds)
04:37:01 jedai42 joins (~jedai@lfbn-dij-1-708-251.w90-100.abo.wanadoo.fr)
04:37:07 <c_wraith> at an extremely vague level - Functor lets you modify inside a type. Applicative lets you combine values in a fixed way. Monad lets you combine them in a context-sensitive way.
04:37:16 <c_wraith> But that's really too vague to mean much.
04:37:32 <hoker> oh i've seen them a few times, i just meant in the context of supply specifically
04:37:38 <hoker> i'm not too comfortable
04:37:42 <hoker> but i'm familiar
04:38:25 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
04:39:41 <c_wraith> the only interesting part from the perspective of using it is the value named get. (It's not a function, at least from the outside)
04:39:49 × christo quits (~chris@81.96.113.213) (Ping timeout: 265 seconds)
04:39:55 <c_wraith> You can bind the result of get to fetch the next value from the supply
04:40:17 × polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
04:41:14 <c_wraith> The various instances you have take care of chaining the new value forward afterwards. The nice thing there is that you don't have to handle parameters carefully to make sure you don't mess up the handling of the stream. They're just taken care of for you.
04:43:00 <c_wraith> Given the starting point in the last exercise, you should be able to do something like runSupply nats (do x <- get ; y <- get ; return (x, y)) and get a result of (0,1)
04:44:30 <c_wraith> Does that make it any clearer what's going on there?
04:45:29 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-fgwigxpmxrbdsiil) ()
04:45:36 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
04:47:45 jedws joins (~jedws@101.184.150.93)
04:48:24 × hoker quits (2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 245 seconds)
04:48:29 × borne quits (~fritjof@200116b86455d000f1dc39039d201adf.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
04:53:10 mozzarella joins (~sam@unaffiliated/sam113101)
05:01:53 siloxid joins (~user@unaffiliated/siloxid)
05:05:45 SanchayanMaity joins (~Sanchayan@122.167.90.144)
05:07:23 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds)
05:07:29 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 272 seconds)
05:09:41 conal joins (~conal@64.71.133.70)
05:09:56 × texasmynsted quits (~texasmyns@212.102.45.109) (Remote host closed the connection)
05:10:33 texasmynsted joins (~texasmyns@212.102.45.109)
05:11:30 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
05:12:02 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
05:12:10 gxt joins (~gxt@gateway/tor-sasl/gxt)
05:12:30 berberman joins (~berberman@unaffiliated/berberman)
05:13:05 × conal quits (~conal@64.71.133.70) (Client Quit)
05:13:44 siloxid joins (~user@unaffiliated/siloxid)
05:15:00 × texasmynsted quits (~texasmyns@212.102.45.109) (Ping timeout: 256 seconds)
05:15:20 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
05:17:27 × xnt14 quits (~xnt14@185.204.1.185) (Remote host closed the connection)
05:19:02 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
05:20:22 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
05:21:09 gproto023 joins (~gproto23@unaffiliated/gproto23)
05:23:43 × gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
05:36:13 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds)
05:36:44 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
05:37:22 × drbean quits (~drbean@TC210-63-209-164.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
05:39:16 mbomba joins (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
05:39:34 × gproto023 quits (~gproto23@unaffiliated/gproto23) (Remote host closed the connection)
05:40:01 gproto023 joins (~gproto23@unaffiliated/gproto23)
05:41:33 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
05:42:31 hackage optparse-applicative 0.16.1.0 - Utilities and combinators for parsing command line options https://hackage.haskell.org/package/optparse-applicative-0.16.1.0 (huw)
05:43:26 × toorevitimirp quits (~tooreviti@117.182.180.118) (Remote host closed the connection)
05:43:54 texasmynsted joins (~texasmyns@212.102.45.109)
05:45:29 nados joins (~dan@107-190-41-58.cpe.teksavvy.com)
05:46:42 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
05:46:47 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:47:32 perry69420 joins (6ee39737@110.227.151.55)
05:49:07 <perry69420> I found a minor error here - https://wiki.haskell.org/Dynamic_programming_example . How can I edit the page? (I do not have an account, making the account is a long process)
05:50:45 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
05:53:53 <perry69420> This line "Optional: If you know Applicatives and that Maybe is an Applicative, you can write it in a more regular way: " should be using Alternative, not Applicative
05:55:11 day_ joins (~Unknown@unaffiliated/day)
05:57:34 × vhs_ quits (~vhs@41.46.228.159) (Ping timeout: 256 seconds)
05:58:16 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
05:58:16 day_ is now known as day
06:00:00 gproto023 is now known as gproto23
06:00:17 Jonkimi727406120 joins (~Jonkimi@113.87.161.66)
06:01:00 siloxid joins (~user@unaffiliated/siloxid)
06:03:56 × darjeeling_ quits (~darjeelin@122.245.211.11) (Ping timeout: 240 seconds)
06:04:31 × Alleria_ quits (~AllahuAkb@69.202.254.168) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:04:52 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds)
06:05:08 × et09 quits (~et09@unaffiliated/endolphin) (Ping timeout: 260 seconds)
06:05:10 bbro joins (~bbro@c-24-4-176-204.hsd1.ca.comcast.net)
06:06:05 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
06:06:10 pfurla joins (~pfurla@64.145.79.196)
06:06:14 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
06:08:16 × SanchayanMaity quits (~Sanchayan@122.167.90.144) (Ping timeout: 256 seconds)
06:08:31 SanchayanMaity joins (~Sanchayan@106.200.237.128)
06:09:04 × jamestmartin quits (james@jtmar.me) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
06:10:41 × johnw quits (~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
06:13:00 jamestmartin joins (~james@jtmar.me)
06:13:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:16:47 siloxid joins (~user@unaffiliated/siloxid)
06:17:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:18:43 <ski> perry69420 : what wording do you think would be more appropriate ?
06:18:58 × Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Quit: Ping timeout (120 seconds))
06:19:18 Jonkimi727406120 joins (~Jonkimi@113.87.161.66)
06:19:18 × nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
06:20:15 nados joins (~dan@107-190-41-58.cpe.teksavvy.com)
06:20:34 <ski> replacing both occurances of "Applicative" with "Alternative" ?
06:20:57 × Sarma quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
06:21:47 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
06:21:52 darjeeling_ joins (~darjeelin@122.245.211.11)
06:22:24 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
06:24:48 <perry69420> ski yeah, I think both should be swapped. I guess it should be mentioned that Alternative required Applicative for clarity but that's a secondary issue
06:25:50 <ski> perhaps saying "If you know Applicatives & Alternatives and ..." for the first one ?
06:26:10 × darjeeling_ quits (~darjeelin@122.245.211.11) (Ping timeout: 246 seconds)
06:26:58 × jedws quits (~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:27:55 <perry69420> That seems good. But should it mention Functor as well then?
06:28:36 <ski> could say "Applicative and Alternative functors", i suppose
06:28:37 SanchayanM joins (~Sanchayan@223.226.47.98)
06:28:49 <perry69420> That sounds better!
06:29:31 andos joins (~dan@107-190-41-58.cpe.teksavvy.com)
06:29:48 × nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
06:30:26 × SanchayanMaity quits (~Sanchayan@106.200.237.128) (Ping timeout: 256 seconds)
06:33:12 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:34:00 <ski> ("is an Alternative" or "is Alternative" ?)
06:35:01 <perry69420> I'm not sure, sorry! English isn't my first language
06:35:10 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:35:37 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
06:36:36 <perry69420> "If you know Applicative and Alternative Functor classes and that Maybe is an Alternative". Is this fine?
06:36:38 <ski> i think people tend to say "Applicative functor", and not just "Applicative", as a noun. but "Applicative"/"Alternative" as an adjective could work
06:37:45 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
06:38:54 darjeeling_ joins (~darjeelin@122.245.211.11)
06:38:55 <ski> i think i'd lean towards the adjectival form here. if someone objects, they can change it
06:38:57 <perry69420> then "is Alternative" makes more sense
06:39:01 <perry69420> Sounds good
06:40:09 <ski> (for "Monad", i don't think it works using it as an adjective. "monadic" is used, but not for quite the corresponding thing)
06:41:30 <ski> (now i'm wondering whether to say "know about" or just "know")
06:41:30 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
06:41:41 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
06:41:52 <perry69420> haha I think you're overthinking.
06:42:34 <ski> perry69420 : refresh
06:43:12 <perry69420> Thanks ski. I'll mail them to make me an account as well
06:44:57 ski nods
06:49:34 × Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 272 seconds)
06:52:49 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
06:57:38 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
07:03:00 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
07:07:40 conal joins (~conal@64.71.133.70)
07:08:10 × pfurla quits (~pfurla@64.145.79.196) (Ping timeout: 260 seconds)
07:10:03 lemmih joins (~lemmih@2406:3003:2072:44:1424:8740:3970:71a)
07:11:52 n0042 joins (d055ed89@208.85.237.137)
07:12:06 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
07:13:20 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
07:15:08 jedws joins (~jedws@101.184.150.93)
07:15:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:17:31 × jedws quits (~jedws@101.184.150.93) (Client Quit)
07:18:20 Jonkimi727406120 joins (~Jonkimi@113.87.161.66)
07:19:20 × alx741 quits (~alx741@181.196.68.156) (Ping timeout: 256 seconds)
07:19:56 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:19:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
07:20:36 × aarvar quits (~foewfoiew@50.35.43.33) (Ping timeout: 240 seconds)
07:23:09 × bbro quits (~bbro@c-24-4-176-204.hsd1.ca.comcast.net) (Quit: Leaving)
07:24:16 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
07:25:16 AIM` joins (~AIM`@185.163.110.116)
07:25:16 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
07:25:47 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
07:26:16 × Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
07:28:12 falafel__ joins (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
07:28:29 isBEKaml joins (~isBEKaml@unaffiliated/isbekaml)
07:29:30 newbeee joins (6c1d4e90@pool-108-29-78-144.nycmny.fios.verizon.net)
07:31:30 hackage pandora 0.3.2 - A box of patterns and paradigms https://hackage.haskell.org/package/pandora-0.3.2 (iokasimovmt)
07:31:45 × vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 240 seconds)
07:32:21 alx741 joins (~alx741@181.196.69.47)
07:35:10 × n0042 quits (d055ed89@208.85.237.137) (Remote host closed the connection)
07:37:02 chkno_ joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
07:37:02 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
07:37:52 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
07:38:27 <Sose> is there a way to make "brittany" always format "where" the same way? funnily enough in my current file it seems to alternate every time and it looks a bit funny imo...
07:39:36 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
07:40:42 edaou joins (~elie@178.135.1.49)
07:40:46 <Sose> wait a sec.. it just did that suddenly, or atleast left them alone after I made them all look similar
07:41:42 × falafel__ quits (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
07:45:09 edaou parts (~elie@178.135.1.49) ("Using Circe, the loveliest of all IRC clients")
07:51:55 invaser joins (~Thunderbi@31.148.23.125)
07:53:38 Sarma joins (~Amras@unaffiliated/amras0000)
07:54:48 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:56:57 siloxid joins (~user@unaffiliated/siloxid)
07:57:00 bitmagie joins (~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de)
07:57:12 × jcd quits (~user@2601:282:1300:7cb0::5be7) (Remote host closed the connection)
08:01:37 oish joins (~charlie@228.25.169.217.in-addr.arpa)
08:02:17 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 272 seconds)
08:02:55 <jophish> Woo, got some vulkan ray tracing running!
08:03:14 <jophish> 60Hz of blue background!
08:08:47 johnw joins (~johnw@haskell/developer/johnw)
08:16:47 × bitmagie quits (~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de) (Quit: bitmagie)
08:32:10 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
08:37:17 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
08:39:44 bitmagie joins (~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de)
08:40:21 chaosmasttter joins (~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de)
08:41:50 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
08:42:20 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
08:42:52 dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net)
08:43:26 gproto023 joins (~gproto23@unaffiliated/gproto23)
08:44:14 Varis joins (~Tadas@unaffiliated/varis)
08:45:36 × gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
08:48:24 × newbeee quits (6c1d4e90@pool-108-29-78-144.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
08:49:37 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
08:49:38 gproto0023 joins (~gproto23@unaffiliated/gproto23)
08:50:56 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
08:51:08 × Lord_of_Life quits (~Lord@46.217.217.57) (Changing host)
08:51:08 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
08:51:24 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
08:51:45 × gproto023 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
08:52:04 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
08:53:24 shangxiao joins (~davids@101.181.159.140)
08:54:37 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
08:55:19 × dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
08:55:22 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:55:54 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
08:56:35 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
08:57:28 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:6c06:8500:38e7:4522:4d5)
08:59:36 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
09:00:22 alp joins (~alp@2a01:e0a:58b:4920:487a:c7d8:cfd9:16b5)
09:01:47 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
09:02:22 bitlord joins (5b5a2c1b@s91904427.blix.com)
09:02:46 bitlord is now known as Guest24698
09:06:32 p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
09:13:38 coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
09:13:54 × bitmagie quits (~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de) (Quit: bitmagie)
09:15:04 × perry69420 quits (6ee39737@110.227.151.55) (Ping timeout: 245 seconds)
09:15:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:16:44 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:6c06:8500:38e7:4522:4d5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:18:57 × mbomba quits (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
09:19:47 <siraben> jophish: using what library?
09:20:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
09:22:37 × Guest24698 quits (5b5a2c1b@s91904427.blix.com) (Remote host closed the connection)
09:23:16 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Ping timeout: 240 seconds)
09:23:49 oish joins (~charlie@228.25.169.217.in-addr.arpa)
09:23:54 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
09:26:08 Inoperable joins (~PLAYER_1@fancydata.science)
09:26:16 × shangxiao quits (~davids@101.181.159.140) (Ping timeout: 240 seconds)
09:26:22 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:29:01 shangxiao joins (~davids@101.181.159.140)
09:30:00 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
09:32:32 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
09:32:58 × Graypup_ quits (Graypup@lfcode.ca) (Ping timeout: 272 seconds)
09:34:58 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:35:29 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
09:38:14 × codedmart quits (~codedmart@149.28.9.205) (Quit: ZNC 1.7.5 - https://znc.in)
09:38:20 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
09:38:25 × Codaraxis quits (~Codaraxis@91.193.4.24) (Remote host closed the connection)
09:38:33 codedmart joins (~codedmart@149.28.9.205)
09:38:47 Codaraxis joins (~Codaraxis@91.193.4.24)
09:39:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
09:39:56 × andos quits (~dan@107-190-41-58.cpe.teksavvy.com) (Ping timeout: 240 seconds)
09:40:38 Graypup_ joins (Graypup@lfcode.ca)
09:40:39 avdb joins (~avdb@ip-213-49-103-194.dsl.scarlet.be)
09:46:09 × avdb quits (~avdb@ip-213-49-103-194.dsl.scarlet.be) (Quit: avdb)
09:50:18 avdb joins (~avdb@ip-213-49-103-194.dsl.scarlet.be)
09:50:48 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection)
09:51:16 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
09:52:32 × wwwww quits (~wwwww@unaffiliated/wwwww) (Ping timeout: 265 seconds)
09:54:19 wwwww joins (~wwwww@unaffiliated/wwwww)
09:56:52 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:57:51 siloxid joins (~user@unaffiliated/siloxid)
09:59:29 Inoperable joins (~PLAYER_1@fancydata.science)
10:00:56 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
10:01:32 <jophish> siraben: mine :D (vulkan)
10:02:22 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-frcalbfvnpyatyuv) (Quit: Connection closed for inactivity)
10:02:52 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
10:04:30 infinity0 joins (~infinity0@freenet/developer/infinity0)
10:08:25 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:c0a0:dc60:ea9e:fbab)
10:08:38 × avdb quits (~avdb@ip-213-49-103-194.dsl.scarlet.be) (Quit: avdb)
10:09:41 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
10:10:07 <siraben> jophish: nice!
10:10:19 perry69420 joins (6ee39737@110.227.151.55)
10:11:56 × xlei quits (znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in)
10:11:56 × jophish quits (~jophish@2400:8901::f03c:91ff:fe39:7a9) (Quit: WeeChat 2.4)
10:13:13 Jonkimi727406120 joins (~Jonkimi@113.87.161.66)
10:14:19 AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl)
10:14:28 × Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Client Quit)
10:15:01 × kupi quits (uid212005@gateway/web/irccloud.com/x-vjlwewutkgmnxvxr) (Quit: Connection closed for inactivity)
10:15:02 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:c0a0:dc60:ea9e:fbab) (Ping timeout: 264 seconds)
10:18:12 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
10:20:18 xlei joins (znc@unaffiliated/xlei)
10:21:00 Jonkimi727406120 joins (~Jonkimi@113.87.161.66)
10:21:11 jophish joins (~jophish@2400:8901::f03c:91ff:fe39:7a9)
10:23:15 <jophish> siraben: thanks, next up actually tracing the rays against something other than the background :)
10:23:25 Inoperable joins (~PLAYER_1@fancydata.science)
10:23:42 <jophish> although technically I'm not even generating any rays at the moment. but the blue is being generated by a shader in a ray tracing pipeline :)
10:24:37 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
10:29:05 <tomsmeding> 07:34:00 ski | ("is an Alternative" or "is Alternative" ?)
10:29:16 <tomsmeding> I have some more alternatives for you: "implements Alternative" and "is an instance of Alternative"
10:30:19 borne joins (~fritjof@200116b864bc9600f1dc39039d201adf.dip.versatel-1u1.de)
10:30:36 ben_m joins (~ben@unaffiliated/ben-m/x-8385872)
10:31:14 × shangxiao quits (~davids@101.181.159.140) (Quit: WeeChat 3.0)
10:32:17 × chaosmasttter quits (~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:34:57 fendor_ joins (~fendor@91.141.1.146.wireless.dyn.drei.com)
10:37:16 × fendor quits (~fendor@77.119.129.57.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
10:38:45 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
10:41:46 × hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
10:42:18 <Orbstheorem> When pantry finds a git extra-dep in stack.yaml, where does it clone it to? Does it keep a copy of the repo or just compiles the lib and deletes it afterwards?
10:43:54 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 272 seconds)
10:50:42 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds)
10:53:27 tomsmeding always uses his best friend `find` to find out where programs put things
10:53:39 christo joins (~chris@81.96.113.213)
10:57:30 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
11:00:40 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
11:01:31 × alp quits (~alp@2a01:e0a:58b:4920:487a:c7d8:cfd9:16b5) (Ping timeout: 272 seconds)
11:02:01 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
11:06:33 Lycurgus joins (~niemand@cpe-45-46-142-188.buffalo.res.rr.com)
11:08:30 Franciman joins (~francesco@host-79-27-199-238.retail.telecomitalia.it)
11:08:37 × Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 264 seconds)
11:10:14 × shadowdao quits (~user@unaffiliated/shadowdaemon) (Ping timeout: 264 seconds)
11:10:32 × borne quits (~fritjof@200116b864bc9600f1dc39039d201adf.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
11:17:31 <ziman> what's the recommended build system these days (preferably with a future perspective)? stack+hpack? cabal-install-v2?
11:18:15 cads joins (~cads@ip-64-72-99-232.lasvegas.net)
11:18:54 Lycurgus recommends ur own judgment
11:19:19 × Lycurgus quits (~niemand@cpe-45-46-142-188.buffalo.res.rr.com) (Quit: Exeunt)
11:20:34 <Franciman> ziman, it depends, the thing is that probably cabal is good enough
11:21:10 <Franciman> so you wouldn't need the extra things stack gives to you (but also consider that sometimes you need some features not supported by stack, for example backpack)
11:21:43 <Franciman> for me the most attractive thing of stack is stackage, i.e. a curated set of packages which somebody^{TM} guarantees that work well toghether
11:21:44 <Franciman> together
11:22:00 <Franciman> but you should probably consider your own judgment
11:22:22 <Franciman> as Lycurgus said
11:22:26 <xerox_> I like the stackage site to do hoogle searches, very clean
11:23:17 <Franciman> soon^{TM} vabal will support stackage files (which are essentially cabal freeze files) and you will use them without stack
11:23:50 siloxid joins (~user@unaffiliated/siloxid)
11:24:18 <ziman> thank you :)
11:24:33 <Franciman> but since vabal is not really useful to anyone, I am considering first rewriting part of its logic in prolog
11:24:46 Jonkimi727406120 joins (~Jonkimi@113.87.161.66)
11:25:07 <ziman> i find it tricky to find sufficiently up-to-date information on the various build systems because the landscape keeps changing
11:25:19 <Franciman> I understand
11:25:36 <Franciman> my personal approach is: go with cabal until you find something incredibly wrong you can't fix
11:25:42 <Franciman> and this has never happened to me lately
11:25:51 <Franciman> especially after the v2-thing became the default behavior
11:26:06 × gproto0023 quits (~gproto23@unaffiliated/gproto23) (Remote host closed the connection)
11:26:08 <ziman> since i like "simple" things (as in fewest dependencies etc.), i'll go for cabal and see what happens
11:26:18 <Franciman> yes that's my base motive too
11:26:31 gproto0023 joins (~gproto23@unaffiliated/gproto23)
11:26:33 <ziman> assuming that cabal is the "simplest" choice here
11:26:58 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 272 seconds)
11:27:33 <Franciman> for me it is true
11:28:11 <Franciman> anybody has their preferences, tho
11:28:50 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 264 seconds)
11:29:09 siloxid joins (~user@unaffiliated/siloxid)
11:31:19 enoq joins (~textual@194-208-146-143.lampert.tv)
11:32:35 gproto023 joins (~gproto23@unaffiliated/gproto23)
11:33:12 <jophish> I use hpack+cabal
11:33:41 <jophish> listing modules manually is work for a computer, not a human
11:33:43 acidjnk_new2 joins (~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de)
11:33:49 <jophish> but cabal works much better with nix
11:34:56 × gproto0023 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
11:35:48 Fractalis joins (~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24)
11:36:16 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 246 seconds)
11:36:55 <ski> tomsmeding : hm, yea. i guess i didn't want to change it too much
11:37:33 <tomsmeding> ski: I wasn't entirely serious, I agree with your assessment :p
11:38:22 <srk> 7/81
11:38:30 srk oop
11:38:31 <tomsmeding> > 7/81
11:38:34 <lambdabot> 8.641975308641975e-2
11:38:58 × robotmay quits (~beepboop@2001:8b0:7af0:2580:9618:82ff:fe37:d2b0) (Quit: Be excellent to each other)
11:44:04 × rprije quits (~rprije@124.148.131.132) (Ping timeout: 272 seconds)
11:46:32 × ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 244 seconds)
11:47:01 sw1nn joins (~sw1nn@host81-131-191-165.range81-131.btcentralplus.com)
11:47:18 epsilonhalbe joins (~epsilonha@89.34.165.94)
11:49:21 rprije joins (~rprije@124.148.131.132)
11:50:49 × isBEKaml quits (~isBEKaml@unaffiliated/isbekaml) (Read error: Connection reset by peer)
11:52:11 larou joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
11:52:11 m0rphism joins (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
11:52:32 × acidjnk_new2 quits (~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:54:35 × sw1nn quits (~sw1nn@host81-131-191-165.range81-131.btcentralplus.com) (Quit: WeeChat 2.9)
11:55:46 sw1nn joins (~sw1nn@host81-131-191-165.range81-131.btcentralplus.com)
11:55:53 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:2574:1856:b0b0:22f)
11:58:21 <maerwald> jophish: cabal-fmt can automatically add modules
11:58:56 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:2574:1856:b0b0:22f) (Client Quit)
11:59:35 epsilonhalbe parts (~epsilonha@89.34.165.94) ()
12:01:14 raichoo joins (~raichoo@dslb-178-009-023-219.178.009.pools.vodafone-ip.de)
12:05:08 ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net)
12:05:18 LKoen joins (~LKoen@169.244.88.92.rev.sfr.net)
12:05:21 × ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host)
12:05:21 ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus)
12:07:15 Ariakenom joins (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
12:07:18 acidjnk_new2 joins (~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de)
12:12:22 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
12:15:23 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
12:17:01 <jophish> maerwald: TIL! thanks
12:17:10 <jophish> although I do also like how hpack uses yaml
12:19:00 <maerwald> yeah, cabal file format is weird
12:19:18 <maerwald> you can't change anything without reformatting the entire file
12:19:26 <jophish> I wonder how well a PR to cabal which adds yaml support would go down...
12:19:35 <jophish> well, I don't wonder lol. It would be panned
12:20:02 <jophish> but I'd like to see it happen, and then for the .cabal format to be phased out over the next infinity years
12:20:12 <maerwald> anything would be better than current format, but you have to support both forever and that's additional maintenance burden
12:20:22 <jophish> or, for cabal to be able to run hpack behind the scenes
12:20:29 <maerwald> that's never gonna happen :p
12:20:30 <jophish> I think stack can do this
12:20:50 <jophish> yeah, for sure the .cabal format will be preserved forever
12:20:54 <jophish> :(
12:21:00 hackage beam-automigrate 0.1.0.1 - DB migration library for beam, targeting Postgres. https://hackage.haskell.org/package/beam-automigrate-0.1.0.1 (abrar)
12:21:19 <jophish> but it could be frozen, and any new features solely added to the yaml/hpack interface
12:22:02 <jophish> maerwald: thanks for all the hard work you do for Haskell in nixpkgs BTW, it's appreciated!
12:22:22 <maerwald> I wasn't aware I'm contributing to nixpkgs
12:22:34 <jophish> oops!
12:22:52 <jophish> I've become confused with maralorn
12:23:03 <maerwald> I gave up on nix 6 years ago, when I realized the community has no quality standards.
12:23:06 <jophish> too much decaf in my coffee
12:24:20 <maerwald> now I'm just glad when I'm not pestered with it at work :p
12:25:27 × AIM` quits (~AIM`@185.163.110.116) (Remote host closed the connection)
12:26:14 gproto023 is now known as gproto23
12:29:25 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
12:29:30 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
12:29:30 neiluj joins (~jco@unaffiliated/neiluj)
12:29:40 xangri joins (bab7275a@186.183.39.90)
12:31:05 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:33:07 × jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
12:33:30 jb55 joins (~jb55@gateway/tor-sasl/jb55)
12:34:48 × Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 260 seconds)
12:36:00 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
12:36:17 knupfer joins (~Thunderbi@200116b82ce1e1003ca956fffe6ed6fc.dip.versatel-1u1.de)
12:36:59 × knupfer quits (~Thunderbi@200116b82ce1e1003ca956fffe6ed6fc.dip.versatel-1u1.de) (Remote host closed the connection)
12:37:08 knupfer joins (~Thunderbi@200116b82ce1e10080928bee7ad1b338.dip.versatel-1u1.de)
12:38:13 Inoperable joins (~PLAYER_1@fancydata.science)
12:42:02 __monty__ joins (~toonn@unaffiliated/toonn)
12:42:53 geekosaur joins (ac3a3b08@172.58.59.8)
12:43:58 × edwardk quits (sid47016@haskell/developer/edwardk) (Read error: Connection reset by peer)
12:44:06 × runeks quits (sid21167@gateway/web/irccloud.com/x-tsqpbadbudnfxfmt) (Read error: Connection reset by peer)
12:44:08 edwardk joins (sid47016@haskell/developer/edwardk)
12:44:29 × pepeiborra quits (sid443799@gateway/web/irccloud.com/x-qimnexanhdwpswoz) (Read error: Connection reset by peer)
12:44:29 × ProofTechnique quits (sid79547@gateway/web/irccloud.com/x-eksujsicoqugirny) (Read error: Connection reset by peer)
12:44:33 × alexknvl quits (sid259568@gateway/web/irccloud.com/x-hdmczryidxkpwdtp) (Read error: Connection reset by peer)
12:44:36 pepeiborra joins (sid443799@gateway/web/irccloud.com/x-pndolohhnspnwqav)
12:44:50 alexknvl joins (sid259568@gateway/web/irccloud.com/x-jnvjyffojwxkuwuh)
12:45:05 runeks joins (sid21167@gateway/web/irccloud.com/x-ryjozvleeapnxzus)
12:45:06 × rprije quits (~rprije@124.148.131.132) (Ping timeout: 260 seconds)
12:45:20 ProofTechnique joins (sid79547@gateway/web/irccloud.com/x-svkesokyijyfonih)
12:45:45 Chi1thangoo joins (~Chi1thang@87.112.60.168)
12:46:32 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
12:48:31 robbiet480 joins (~robbiet48@178.162.212.214)
12:50:01 × gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 264 seconds)
12:52:07 xangri parts (bab7275a@186.183.39.90) ()
12:56:16 gproto23 joins (~gproto23@unaffiliated/gproto23)
12:59:03 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
12:59:39 × geekosaur quits (ac3a3b08@172.58.59.8) (Ping timeout: 245 seconds)
13:01:30 Lord_of_Life_ joins (~Lord@46.217.217.57)
13:02:01 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds)
13:03:08 Lord_of_Life_ is now known as Lord_of_Life
13:03:22 × salumu quits (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Quit: WeeChat 3.0)
13:03:51 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
13:04:39 alp joins (~alp@2a01:e0a:58b:4920:49a7:8d86:1a2b:64a5)
13:04:56 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
13:05:58 oish joins (~charlie@228.25.169.217.in-addr.arpa)
13:08:21 <maralorn> jophish: Funny, this is the second time someone confused our nix in few days.
13:08:22 <maralorn> jophish: And thank you!
13:09:07 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
13:09:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:09:56 × gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
13:09:59 gproto0023 joins (~gproto23@unaffiliated/gproto23)
13:10:44 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
13:11:13 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
13:12:37 geekosaur joins (ac3a3e89@172.58.62.137)
13:13:53 × siloxid quits (~user@unaffiliated/siloxid) (Ping timeout: 272 seconds)
13:16:25 × xff0x quits (~fox@2001:1a81:53c2:b800:6e69:5f46:fae4:631a) (Ping timeout: 272 seconds)
13:16:56 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:17:08 xff0x joins (~fox@2001:1a81:53c2:b800:23a4:8a65:fdbc:e15b)
13:20:13 bitmagie joins (~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de)
13:20:18 _mecairS` joins (~st_ars@110.54.187.248)
13:20:41 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
13:24:16 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 240 seconds)
13:24:23 da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.161.165)
13:24:45 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
13:25:48 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds)
13:28:31 × Lord_of_Life quits (~Lord@46.217.217.57) (Read error: Connection reset by peer)
13:29:24 Lord_of_Life joins (~Lord@46.217.217.57)
13:29:24 × Lord_of_Life quits (~Lord@46.217.217.57) (Changing host)
13:29:24 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
13:30:03 perohig joins (~user@dsl-212-23-31-113.zen.co.uk)
13:30:04 × perry69420 quits (6ee39737@110.227.151.55) (Ping timeout: 245 seconds)
13:30:47 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
13:31:22 × _mecairS` quits (~st_ars@110.54.187.248) (Quit: Hi. If i ever be an Angel of Light to guide you, to lead you in every way, will you also think of me at night and day.. https://bit.ly/36blphN)
13:32:10 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
13:32:53 perry69420 joins (6ee39737@110.227.151.55)
13:32:56 perohig parts (~user@dsl-212-23-31-113.zen.co.uk) ()
13:34:14 × bgamari quits (~bgamari@72.65.101.76) (Ping timeout: 256 seconds)
13:34:28 cyphase joins (~cyphase@unaffiliated/cyphase)
13:35:42 bgamari joins (~bgamari@2001:470:e438::1)
13:37:23 <jophish> maralorn: I made a test for HLS (in vim, but doesn't have to be). It works quite reliably now I've worked the kinks out. Do you think that this would make a reasonable addition to the nixos tests in nixpkgs: https://github.com/expipiplus1/dotfiles/blob/f41836bb61d98502236a7ea6522dbc24830af439/tests/vim-diagnostic-list.nix
13:37:26 <jophish> it's quite niche
13:37:32 <jophish> but it would be good to get HLS tested there
13:37:53 × SanchayanM quits (~Sanchayan@223.226.47.98) (Quit: SanchayanM)
13:39:06 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
13:39:31 gproto023 joins (~gproto23@unaffiliated/gproto23)
13:41:45 cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
13:42:30 × gproto0023 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 272 seconds)
13:50:01 jedws joins (~jedws@101.184.150.93)
13:50:51 wygulmage joins (d4662d5d@212.102.45.93)
13:51:38 <wygulmage> Question about Async: When would I want to use `cancel` rather than `uninterruptibleCancel`?
13:52:57 <merijn> "It Depends"
13:53:05 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
13:53:32 × robbiet480 quits (~robbiet48@178.162.212.214) (Remote host closed the connection)
13:54:16 aj2 joins (~aj@193.56.252.12)
13:54:32 <wygulmage> I was trying to think of a use case for `cancel` and I couldn't think of one, but I'm not very good at thinking in terms of concurrency.
13:55:00 <merijn> wygulmage: Well, when waiting for succesful cancellation isn't important
13:55:35 <merijn> wygulmage: The cancellation always happens (since async exceptions are blocked during "throwTo")
13:56:03 <wygulmage> Doesn't `cancel` also wait?
13:56:54 <merijn> wygulmage: cancel waits without exceptions masked, so with cancel the final "waitCatch" (which confirms the termination of the cancelled thread) can itself be interrupted by a cancel of the thread
13:57:09 <merijn> Suppose thread A spawns async B, which spawn async C
13:57:14 <merijn> B cancels C
13:57:29 <merijn> "cancel" waits to receive the exception C got (via waitCatch)
13:57:30 hackage heap-console 0.1.0.1 - interactively inspect Haskell values at runtime https://hackage.haskell.org/package/heap-console-0.1.0.1 (TheMatten)
13:57:51 <merijn> wygulmage: The difference between cancel and uninterruptibleCancel is that the latter masks async exceptions during the wait
13:58:14 <merijn> so with uninterruptibleCancel, A can't cancel B while B waits for the final exception from C
13:58:30 <wygulmage> Oh, I see. That makes sense. So if you want to immediately kill the thread waiting for the other to cancel, you you plain `cancel`. Thanks!
13:58:32 <merijn> With cancel, A can cancel B while before it receives the final exception of C
13:59:17 <merijn> wygulmage: The reason for uninterruptibleCancel might be if you care about races with cancellation of C
13:59:22 × knupfer quits (~Thunderbi@200116b82ce1e10080928bee7ad1b338.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
13:59:33 <merijn> i.e. imagine I cancel C, but C gets killed by another exception before it receives the cancel
13:59:51 <merijn> If it's important that I check that final exception, then you need uninterruptibleCancel to guarantee you will see it
14:00:00 <merijn> If you just need C dead and don't care, cancel should be fine
14:00:11 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
14:02:39 <wygulmage> Thanks, merijn; that's much more straightforward than I expected.
14:04:54 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
14:05:09 <merijn> wygulmage: Basically, there's two levels of masking interrupts. "mask" which blocks async exceptions but unblocks them while blocking on (say) MVars, etc. (to help make it easier to avoid deadlocks)
14:05:34 <merijn> And then there's uninterruptibleMask which will blocks them, even when the code blocks on stuff like MVars
14:08:05 <wygulmage> Right. I got the use of 'uninterruptibleMask' for cleanup/finalizers, but I wasn't thinking of the return from the child thread in those terms.
14:08:05 × carlomagno1 quits (~cararell@148.87.23.6) (Remote host closed the connection)
14:09:42 machinedgod joins (~machinedg@24.105.81.50)
14:12:01 HugoDan joins (~semba@a109-49-47-155.cpe.netcabo.pt)
14:12:47 HugoDan parts (~semba@a109-49-47-155.cpe.netcabo.pt) ()
14:13:56 <merijn> iirc, async just has an outer handler that writes any exceptions to a TVar/MVar that the parent thread can access
14:14:16 <Uniaika> I should use 'ki' one day
14:15:18 <Feuermagier> how can i check if number is contained at most once in a list?
14:15:43 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
14:15:54 × wygulmage quits (d4662d5d@212.102.45.93) (Ping timeout: 245 seconds)
14:16:43 <merijn> Turn it into a map with numbers as keys and counts as values?
14:16:49 <merijn> :t M.fromListWith
14:16:50 <lambdabot> Ord k => (a -> a -> a) -> [(k, a)] -> M.Map k a
14:17:32 <merijn> > M.fromListWith (+) . map (,1) $ "Hello World!"
14:17:34 <lambdabot> fromList [(' ',1),('!',1),('H',1),('W',1),('d',1),('e',1),('l',3),('o',2),('...
14:17:38 <Feuermagier> merijn, intersting idea! - that should even allow me to check multiple numbers for occurance without additional cost
14:17:39 <fendor_> > ((< 2) . length . filter (== 1)) [1,2,3,4,1]
14:17:41 <lambdabot> False
14:18:04 <fendor_> > (\x -> (< 2) . length . filter (== x)) [1,2,3,4,1] 4
14:18:06 <lambdabot> error:
14:18:06 <lambdabot> • No instance for (Num [[Integer]]) arising from the literal ‘4’
14:18:06 <lambdabot> • In the second argument of ‘\ x
14:18:18 <fendor_> > (\x -> (< 2) . length . filter (== x)) 4 [1,2,3,4,1]
14:18:20 <lambdabot> True
14:18:23 <merijn> fendor_: Mine is more robust and cheaper for repeated queries ;)
14:18:29 <fendor_> absolutely
14:18:40 fendor_ is now known as fendor
14:18:52 <merijn> It could've been even easier if we didn't have a bad Monoid instance for Map >.<
14:19:03 merijn hisses at containers
14:19:30 <merijn> No clue which monkey decided on that nonsense
14:19:36 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
14:19:51 <merijn> But I have no hopes if it ever getting fixed :\
14:20:35 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
14:20:50 polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
14:21:49 <Feuermagier> where in my dependencies do i have to add map to use it? (the import says "could not load map; is member f hidden package")
14:21:50 × cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Read error: Connection reset by peer)
14:22:41 <merijn> Feuermagier: Add "containers" to build-depends in your cabal file
14:23:19 × larou quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
14:24:53 sondre joins (~sondre@cm-84.211.56.132.getinternet.no)
14:25:19 <Feuermagier> tgrl wsgi• build-depends:
14:25:19 <Feuermagier> base == 4.*
14:25:19 <Feuermagier> containers
14:25:22 mputz joins (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
14:25:36 <Feuermagier> like this? build-depends:
14:25:36 <Feuermagier> base == 4.*
14:25:36 <Feuermagier> containers:
14:25:48 <merijn> you need a comma between them, iirc
14:26:01 SanchayanMaity joins (~Sanchayan@223.226.47.98)
14:30:29 × SanchayanMaity quits (~Sanchayan@223.226.47.98) (Client Quit)
14:31:10 × sondre quits (~sondre@cm-84.211.56.132.getinternet.no) (Quit: sondre)
14:31:57 <Feuermagier> ah, that was it
14:31:59 <Feuermagier> thx
14:33:30 aldessa joins (~hugh@host-92-27-117-235.static.as13285.net)
14:33:50 × Audentity quits (~Audentity@4e69b241.skybroadband.com) (Ping timeout: 265 seconds)
14:36:10 Audentity joins (~Audentity@4e69b241.skybroadband.com)
14:37:13 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
14:37:17 <Feuermagier> merijn, how would I check every entry in the map for my "only once" condition?
14:37:52 <merijn> Feuermagier: Pretty sure there are some index maps/folds
14:38:00 <merijn> and also filters?
14:38:05 <Feuermagier> rgr. will take a look at those
14:38:16 × darjeeling_ quits (~darjeelin@122.245.211.11) (Ping timeout: 246 seconds)
14:38:17 <merijn> Feuermagier: Just filter out everything with value 1 and check if the result is empty
14:38:49 czwartyeon joins (4d2d3763@77-45-55-99.sta.asta-net.com.pl)
14:39:13 × mputz quits (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
14:39:23 × texasmynsted quits (~texasmyns@212.102.45.109) (Remote host closed the connection)
14:39:38 texasmynsted joins (~texasmyns@212.102.45.109)
14:40:35 zyklotomic joins (~ethan@unaffiliated/chocopuff)
14:40:45 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
14:40:56 <zyklotomic> is there any reason why ghc doesn't automatically derive functor and applicative
14:40:56 <aldessa> are there any haskell libraries for dynamic programming or integer programming that can be recommended? i'm trying to pack n cuboids and think i can formulate it as an integer programming problem
14:41:18 <zyklotomic> *if you define monad
14:41:45 <Uniaika> hmm
14:41:57 <Uniaika> maybe we could put a rule for Monad
14:42:03 <maralorn> jophish: Well, more tests are better tests! Of course the first step would be to get the hls unit tests working in nixpkgs, (as well as dependencies like ghcide, etc,.) I am nearly there for hls but there are two tests which run into timeouts so I disabled them for now.
14:42:20 <Uniaika> zyklotomic: historically, Applicative was not so tightly linked to Monad
14:42:25 <Uniaika> now it is the case
14:42:29 <Uniaika> this could indeed change
14:42:30 <zyklotomic> yeah, I am following the historical aspect of it
14:42:43 <zyklotomic> is it a matter of not having gotten to it yet?
14:42:53 <zyklotomic> or is there a reason why we might not want it to behave that way
14:42:57 <Uniaika> zyklotomic: can you open a ticket on https://gitlab.haskell.org/ghc/ghc/-/issues/new ?
14:43:32 <zyklotomic> I'm just a beginner, I'm not very confident on how valid this opinion is though lol
14:44:11 <geekosaur> deriving applicative might be because some types have more than one valid applicative (see ZipList)
14:44:21 Tario joins (~Tario@201.192.165.173)
14:44:21 <merijn> zyklotomic: You can't automatically derive Applicative
14:44:46 <merijn> Functors are possible because lawful functors are unique
14:45:13 <zyklotomic> I understand that they might not be unique, but what if you just wanted to use the Monad definition
14:45:14 lucasb joins (uid333435@gateway/web/irccloud.com/x-ssbbedmexymeqbgx)
14:45:17 <merijn> Uniaika: What would that ticket be for?
14:45:25 <merijn> zyklotomic: You can
14:45:36 × bitmagie quits (~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de) (Quit: bitmagie)
14:45:51 <zyklotomic> It is just a minor question, I was wondering why it wasn't the default to be able to do something like filling that boiler plate in fro you
14:45:51 <merijn> If you implement Monad you can just define Applicative as "<*> = ap"
14:45:52 sondr3_ joins (~sondr3@cm-84.211.56.132.getinternet.no)
14:46:00 <zyklotomic> the "pure = return", "(<*>) = ap"
14:46:06 <Uniaika> merijn: become a URL we can link to people where GHC developers explain why we can or cannot automagically derive Applicative and Functor when one only derives Monad
14:46:18 <merijn> zyklotomic: Because it'd 1) break things and 2) return is planned to be removed from the class
14:46:43 <merijn> Uniaika: You can derive functor even without Monad :p
14:46:49 <merijn> Just enable -XDeriveFunctor
14:46:57 <maralorn> jophish: I am not very experienced with nixos tests, but the test you suggested seems a bit brittle. It looks like it would fail if e.g. the error message was improved or something in the plugin layouts.
14:47:12 <Uniaika> merijn: but can you derive Monad without Functor? :P
14:47:21 <jophish> yeah, I certainly wouldn't want to use it as it is!
14:47:26 <Uniaika> that's what I was talking about
14:47:28 <sondr3_> I'm writing a parser in Haskell to practice and want to test private parts of the code, in Rust this is easy by either testing in the same file as the code, or declaring things to be pub(crate). How can I do something like this in Haskell?
14:47:28 <zyklotomic> yeah my question isnt' the automagically part
14:47:43 <jophish> tbh, posting the link to my specific test was irrelevant,
14:48:02 <zyklotomic> but like why it can't fill in the "(<*>) = ap" for you by default, how would it break things merijn
14:48:03 <merijn> sondr3_: Are you using cabal-install or stack?
14:48:16 <sondr3_> merijn: cabal
14:48:28 <zyklotomic> i'm asking cause i dont see where, not that i disagree
14:48:30 <merijn> sondr3_: Ok, then you can't quite do the same, but there's some tricks
14:48:46 <merijn> sondr3_: So, in recent versions of the cabal spec you can define multiple internal libraries
14:48:59 <sondr3_> I'm open to move to Stack tbh, I've had a bunch of annoyances with cabal
14:49:03 <merijn> sondr3_: So you could define the core logic in an internal library that exports all internals
14:49:29 <merijn> sondr3_: then your public library can re-export the "public" parts of the internal lib and your tests can depend on the internal version
14:49:46 <sondr3_> merijn: Ooh, that's clever, thanks
14:50:18 urodna joins (~urodna@unaffiliated/urodna)
14:50:36 <merijn> sondr3_: I'm just not sure how well/if stack supports that, hence the question :)
14:51:05 <merijn> sondr3_: https://cabal.readthedocs.io/en/latest/cabal-package.html#sublibs
14:51:07 et09 joins (~et09@unaffiliated/endolphin)
14:51:26 <sondr3_> merijn: Ah, fair. Thanks for the pointer, I'll give it a go
14:51:36 <yushyin> are multiple *internal* libraries that recent?
14:51:49 × geekosaur quits (ac3a3e89@172.58.62.137) (Remote host closed the connection)
14:51:49 <yushyin> oh 2.0
14:51:50 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
14:51:55 Deide joins (~Deide@217.155.19.23)
14:52:02 darjeeling_ joins (~darjeelin@122.245.219.209)
14:53:07 × czwartyeon quits (4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection)
14:53:12 <merijn> yushyin: No, but stack is...opinionated on what part of Cabal they wish to support
14:53:21 <merijn> sondr3_: btw, I'm curious which annoyances you had with cabal-install?
14:53:38 × aldessa quits (~hugh@host-92-27-117-235.static.as13285.net) (Read error: Connection reset by peer)
14:54:33 <Uniaika> merijn: I think you can insert verbatim stuff in package.yaml?
14:55:00 <merijn> package.yaml /= stack
14:55:04 <sondr3_> merijn: Mostly getting cabal repl to properly use my project local .ghci file, I want to set OverloadedStrings and load a module
14:55:26 <merijn> sondr3_: Oh, I just have those extensions set in my global .ghci file :)
14:55:27 <yushyin> merijn: yes :/ I switched back from stack to cabal because of similar reasons
14:55:53 <merijn> package.yaml is hpack and hpack is a huge mistake, imo
14:56:10 <sondr3_> merijn: Yeah I'm considering doing the same, it'd just be nice to have it work locally
14:56:28 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
14:56:33 <Uniaika> merijn: my bad indeed
14:57:13 czwartyeon joins (4d2d3763@77-45-55-99.sta.asta-net.com.pl)
14:57:16 <merijn> Uniaika: stack automatically uses hpack if needed, leading many people to consider it part of stack, but even Snoyman now recommends against relying on only package.yaml and recommends committing the generated .cabal file
14:58:02 × Fractalis quits (~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24) (Ping timeout: 260 seconds)
14:58:11 <Uniaika> merijn: oh yeah we do it at work now
14:58:28 <Uniaika> latest stack versions give you a warning
14:58:49 × perry69420 quits (6ee39737@110.227.151.55) (Ping timeout: 245 seconds)
14:59:46 <merijn> Like, I get why people like hpack, because they get to be lazy. But there's a reason why cabal-install doesn't allow you to be lazy. Being lazy turns your package management, distribution, and archiving into a huge unfixable clusterfuck
14:59:54 <merijn> This is why pip and npm are such insane messes
15:00:02 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 260 seconds)
15:00:18 <zyklotomic> huh what makes npm and pip bad
15:00:30 p-core joins (~Thunderbi@2a0e:1c80:4:1024::1007)
15:00:55 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
15:01:15 <merijn> zyklotomic: Have you ever worked on code locally and tried to reproduce that environment on another machine?
15:01:38 <merijn> It's so bad everyone now just uses dockers, because it's easier to just copy your entire machine then figuring out how to package/distribute things
15:01:39 <zyklotomic> yeah, nix
15:02:19 <zyklotomic> i was on that boat too until nixOS
15:02:24 <zyklotomic> or is that a different issue
15:02:35 <zyklotomic> have you heard of nix?
15:02:37 <merijn> zyklotomic: Right, but the reason Nix works is the same thing cabal insists on
15:02:38 <et09> i need to fully wipe my stack installation i think
15:02:47 <merijn> zyklotomic: "rigidly specify exactly everything you depend on"
15:02:59 <zyklotomic> wait pip doesn't?
15:03:07 <merijn> zyklotomic: Which is the exact thing people complain about
15:03:11 <et09> getting these errors like uh, ghc failed a sanity check, cannot find snapshot
15:03:15 <zyklotomic> that's kinda shocking, I never realized
15:03:20 <merijn> et09: eh...that's bad :D
15:03:24 <et09> but deleting .stack, .ghc, /usr/local/bin/stack doesn't seem like enough
15:04:08 <Uniaika> peculiar
15:04:09 <et09> my core problem is that i'm trying to install a recompile-able xmonad + xmobar + xmonad-contrib + xmonad-utils
15:04:16 <Uniaika> HAHAHA
15:04:18 <Uniaika> :D
15:04:26 <merijn> zyklotomic: If you manually install something into your virtualenv (another massive hack!), pip will happily let you use it without you adding it to requirements.txt
15:04:40 <et09> i.e. xmonad --recompile
15:05:30 <zyklotomic> merijn: i've kinda forgotten it works that way
15:06:27 <zyklotomic> like manually installing, declaratively installing gives such a peace of mind
15:06:59 <merijn> v2-build is lightyears ahead of pip/virtualenv/npm :)
15:07:46 <zyklotomic> i *think* cargo also uses this saner behavior
15:08:16 Lycurgus joins (~niemand@cpe-45-46-142-188.buffalo.res.rr.com)
15:08:20 <sondr3_> Cargo is really nice, my absolute favorite package manager
15:08:46 <zyklotomic> i like rustc more than i like cargo, not that it is bad
15:08:54 <zyklotomic> the enumerated warnings are really user friendly
15:09:13 kamilbeker joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:10:18 <sondr3_> My favorite part of using Rust is that with rustup I get a package manager, formatter, linter and auto-updating all in one
15:10:53 × kamilbeker quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
15:10:58 <zyklotomic> rustup is really nice, even with nixos, i still prefer rustup
15:11:13 czwartye1 joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:11:19 <merijn> boo to autoformatters
15:11:30 × czwartye1 quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
15:11:46 <zyklotomic> my first experience with autoformatters was Go
15:11:48 czwartye1 joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:11:49 <zyklotomic> and I thought I was crazy
15:11:55 <yushyin> with ghcup we ahve a similar toolchain installer
15:11:56 <zyklotomic> or going bonkers
15:12:05 <sondr3_> Yay to autoformatters, now I don't have to think about formatting and the whole ecosystem feels much more cohesive
15:12:13 <merijn> My argument against autoformatters: https://twitter.com/comerijn/status/1257804634833420292
15:12:42 × czwartyeon quits (4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection)
15:12:52 <merijn> "not thinking about formatting" is just as bad as "not thinking about naming"
15:12:52 <zyklotomic> that's valid, though i'll give Go a free pass
15:12:57 × alp quits (~alp@2a01:e0a:58b:4920:49a7:8d86:1a2b:64a5) (Ping timeout: 272 seconds)
15:13:16 <merijn> It's on brand for Go
15:13:28 <sondr3_> I see both sides, I personally don't care, I like not having to think about it
15:13:38 <hpc> my first experience with autoformatters was java, where to be fair, i wasn't thinking about naming either :P
15:13:40 <Feuermagier> how do I zipWith, but only with one of the arguments changeing?
15:13:42 <zyklotomic> yeah, like I can say Go is the only language it would seem to make sense for
15:13:44 <merijn> Which is "solve every problem by making the exact opposite of the right choice" :p
15:13:53 <sondr3_> Especially when contributing to other peoples packages
15:13:57 <merijn> Go got 2 things right
15:14:00 <maerwald> merijn: it's twice as bad if you're one of those people who memorize code based on the structure and someone else decides to run an autoformatter over it
15:14:04 <merijn> 1) cross-compilation support from day 1
15:14:10 <merijn> 2) lightweight threading
15:14:31 <merijn> Possibly 3? I think they default link static too?
15:14:39 <maerwald> I think more important than reading code is... navigating code :)
15:14:48 <maerwald> (because most stuff you don't actually wanna read)
15:14:49 <merijn> that too
15:14:52 × da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:15:02 <hpc> 2 is kind of iffy as well, doesn't their lightweight threading not give you very much control over the threads themselves?
15:15:07 Lycurgus parts (~niemand@cpe-45-46-142-188.buffalo.res.rr.com) ("Deus Ex")
15:15:38 <merijn> hpc: Well, at least even *they* designers of "the most backwards language since the 80s" realised that OS threading as default was dumb
15:15:44 <merijn> Gotta give them credit for that :p
15:15:53 <zyklotomic> Feuermagier: what do you mean
15:15:58 <hpc> yeah true
15:15:59 <zyklotomic> could you give an ex
15:16:09 <yushyin> zyklotomic: sondr3_: hls uses ormolu, so there you go.
15:16:28 <sondr3_> I use ormolu too,
15:16:29 <Feuermagier> zyklotomic, compine x with every argument out of [list] by function f - cycle through the list, keep x
15:17:00 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
15:17:14 <sondr3_> It's my absolute least favorite formatter, Britanny looks better but I get the feeling that it has some deep architectural problems
15:17:52 <merijn> Feuermagier: Can you give an example of an input and output
15:18:40 <yushyin> sondr3_: just don't think/care about it :P you said it yourself
15:19:14 Inoperable joins (~PLAYER_1@fancydata.science)
15:19:17 czwartyeon joins (4d2d3763@77-45-55-99.sta.asta-net.com.pl)
15:19:28 <Feuermagier> merijn, x=3, [0,1,2] function = "*" result=[0,3,6]
15:19:37 × czwartye1 quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
15:19:53 czwartye1 joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:20:02 <merijn> You don't need zipWith, just map :p
15:20:04 <sondr3_> yushyin: Haha, I know, at least I mostly agree with rustfmt, I just don't like how ormolu puts the comma at the end of lines and not the beginning :(
15:20:13 <Feuermagier> merijn, essentially zipWith, but with one argument just being [x,x,x,x,x...]
15:20:26 <merijn> > map (3*) [0,1,2]
15:20:28 <lambdabot> [0,3,6]
15:20:29 <Feuermagier> *oh*
15:20:46 <Feuermagier> THX!
15:20:46 <zyklotomic> wait you can do that?
15:20:56 <zyklotomic> i've been doing (*3) the entire time
15:21:00 <zyklotomic> oh right
15:21:05 <merijn> zyklotomic: you can do both
15:21:11 <zyklotomic> yeah it never occured to me
15:21:18 <merijn> It matters, actually
15:21:28 <merijn> > map (/2) [1..10]
15:21:31 <lambdabot> [0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0]
15:21:36 <merijn> > map (2/) [1..10]
15:21:38 <lambdabot> [2.0,1.0,0.6666666666666666,0.5,0.4,0.3333333333333333,0.2857142857142857,0....
15:21:42 <zyklotomic> oh or the ugly
15:21:47 <zyklotomic> > map ((/) 2) [1..10]
15:21:49 <lambdabot> [2.0,1.0,0.6666666666666666,0.5,0.4,0.3333333333333333,0.2857142857142857,0....
15:21:57 <zyklotomic> lol
15:22:03 <zyklotomic> but (*) is ass
15:22:14 <zyklotomic> *comm
15:22:45 <sondr3_> be nice to (*)
15:22:50 × czwartyeon quits (4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Disconnected by services)
15:23:20 czwartye1 is now known as czwartyeon
15:23:53 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
15:24:12 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:24:29 hidedagger joins (~nate@unaffiliated/hidedagger)
15:24:58 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
15:27:17 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
15:27:35 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:27:42 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
15:28:20 <Feuermagier> how do I elegantly check if an entire list of bools is true if I "and" it?
15:28:31 hidedagger joins (~nate@unaffiliated/hidedagger)
15:28:51 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:28:52 <merijn> :t and
15:28:53 <lambdabot> Foldable t => t Bool -> Bool
15:29:09 <ski> Feuermagier : did the list come from `map' ?
15:29:13 <merijn> :t getAll . foldMap All
15:29:14 <lambdabot> Foldable t => t Bool -> Bool
15:30:25 <ski> @type all
15:30:26 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
15:30:40 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
15:30:50 <sondr3_> How do I combine parsers in Megaparsec? I have `char '<' *> takeWhile1P Nothing (== '=') <* char '>'` which discards the chars, and I can't figure out how to combine them
15:30:57 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
15:30:59 carlomagno joins (~cararell@148.87.23.4)
15:31:01 <Feuermagier> ski, yes. I have 3 seperate lists generated by 3 seperate functions
15:31:09 <dminuoso> all p = getAll #. foldMap (All #. p)
15:31:13 <ski> @src all
15:31:13 <lambdabot> all p = and . map p
15:31:15 Tario joins (~Tario@201.192.165.173)
15:31:15 <ski> @src any
15:31:15 <lambdabot> any p = or . map p
15:31:22 <dminuoso> Curious that this uses foldMap
15:31:41 <ski> Feuermagier : if you have `and (map p xs)', you can say `all p xs'
15:31:42 <dminuoso> sondr3_: In what way do you want to combine then?
15:31:49 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
15:31:50 <ski> > liftA2 (^) [0,1,2,3] [0,1,2,3]
15:31:52 <lambdabot> [1,0,0,0,1,1,1,1,1,2,4,8,1,3,9,27]
15:31:53 <merijn> dminuoso: "getAll (coerce fold)" :p
15:31:57 <merijn> eh
15:32:01 <merijn> add a . there
15:32:09 <sondr3_> dminuoso: so the output becomes "<===>", now it is just "==="
15:32:13 <ski> > [m ^ n | m <- [0,1,2,3],n <- [0,1,2,3]]
15:32:16 <lambdabot> [1,0,0,0,1,1,1,1,1,2,4,8,1,3,9,27]
15:32:17 <dminuoso> ski: The "output"?
15:32:20 <dminuoso> Err sondr3_.
15:32:25 <zyklotomic> won't a regular fold work?
15:32:27 <ski> > [[m ^ n | n <- [0,1,2,3]] | m <- [0,1,2,3]]
15:32:30 <lambdabot> [[1,0,0,0],[1,1,1,1],[1,2,4,8],[1,3,9,27]]
15:32:36 <merijn> :t fold
15:32:37 <lambdabot> (Foldable t, Monoid m) => t m -> m
15:32:40 <merijn> :t foldMap
15:32:42 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
15:32:52 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:32:56 <merijn> zyklotomic: You can do it with a regular fold, sure. But monoids are cool
15:33:07 <ski> > let pam = flip map in [0,1,2,3] `pam` \m -> [0,1,2,3] `pam` \n -> m ^ n
15:33:09 <lambdabot> [[1,0,0,0],[1,1,1,1],[1,2,4,8],[1,3,9,27]]
15:33:19 <merijn> zyklotomic: Also, monoids compose better
15:33:20 <dminuoso> sondr3_: Also, your `takeWhile1P Nothing (== '=')` should just be `some (char '=')`
15:33:25 <sondr3_> dminuoso: I meant what it returns x) the signature is `parser :: Parser Text`
15:33:48 <dminuoso> sondr3_: Ah. So the most naive way is to use the monadic interface.
15:33:59 <dminuoso> But that's not necessary
15:34:59 <sondr3_> I've never done parser combinators before, so the code is surely weird :P
15:35:12 <dminuoso> sondr3_: https://gist.github.com/dminuoso/6fcd4ffac6afc5a7a4ec9f39052dd986
15:35:22 <dminuoso> Note that its usually awkward to return exactly what you parsed.
15:36:05 <Feuermagier> ski, thx! - that works for me
15:36:12 <dminuoso> I want to emphasize that you dont have to use the do/monadic interface here, you can do this with applicative too, but this is probably more readable
15:36:41 <dminuoso> Oh, actually that code is off..
15:36:53 <sondr3_> dminuoso: I'm all ears for suggestions and tips
15:37:08 <dminuoso> takeWhile1P is right after all
15:37:20 <zyklotomic> oh foldMap is essentialy Writer?
15:37:33 <ski> Feuermagier : it sounded like perhaps, by "how do I zipWith, but only with one of the arguments changeing?","compine x with every argument out of [list] by function f - cycle through the list, keep x", you also had in mind possibly choosing `x' in each possible way, from a list. (hence the above lambdabot queries)
15:37:48 <dminuoso> sondr3_: reload my gist
15:38:19 <dminuoso> sondr3_: So I dont know what you're doing exactly, why do you need the parser to return the exact string it just parsed?
15:39:03 <et09> ugh i don't get this
15:39:18 <et09> xmonad --recompile, stack exec xmonad -- --recompile show it can't find XMonad, Xmonad.Util, etc.
15:39:29 <sondr3_> dminuoso: I'm learning parsing?Haskell by parsing a format called HRX, and it requires "boundaries" (the <===>) to be the same width in the same document
15:39:30 <et09> even after i just installed all of them with stack install
15:39:52 <dminuoso> sondr3_: I see! :)
15:40:55 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
15:40:55 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
15:40:55 neiluj joins (~jco@unaffiliated/neiluj)
15:42:26 <dminuoso> sondr3_: Perhaps you could write two combinators, firstBoundary :: Parser Int; and boundary :: Int -> Parser ()
15:42:57 <dminuoso> Alternatively, you could bury the boundary length inside the state of your parser
15:43:21 <dminuoso> say some `Maybe Int` that starts at Nothing, and `boundary :: Parser ()` then, if its Nothing, would determine the length, and if its `Just n` demand exactly n equals.
15:44:09 <sondr3_> Yeah, I've been thinking about doing that, seems to be the easiest way in my head
15:44:12 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
15:44:20 son0p joins (~son0p@181.58.39.182)
15:44:35 aarvar joins (~foewfoiew@50.35.43.33)
15:45:04 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
15:45:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:45:19 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
15:46:00 × kish` quits (~oracle@unaffiliated/oracle) (Remote host closed the connection)
15:47:10 kish` joins (~oracle@unaffiliated/oracle)
15:49:33 Inoperable joins (~PLAYER_1@fancydata.science)
15:50:57 × ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
15:51:10 tremon joins (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl)
15:51:25 ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
15:51:50 × aarvar quits (~foewfoiew@50.35.43.33) (Quit: Leaving.)
15:52:07 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
15:55:22 aarvar joins (~foewfoiew@50.35.43.33)
15:55:38 × aarvar quits (~foewfoiew@50.35.43.33) (Client Quit)
15:56:00 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
15:56:14 christo joins (~chris@81.96.113.213)
15:57:13 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 264 seconds)
15:57:50 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
16:00:29 Rudd0 joins (~Rudd0@185.189.115.108)
16:01:31 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
16:01:45 <idnar> @hoogle (a -> b -> c -> d) -> (a, b, c) -> d
16:01:46 <lambdabot> Data.Tuple.Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
16:01:46 <lambdabot> Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
16:01:46 <lambdabot> Data.Tuple.HT uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
16:05:26 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
16:05:58 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
16:06:25 Codaraxis_ joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
16:06:36 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4)
16:06:44 DavidEichmann joins (~david@62.110.198.146.dyn.plus.net)
16:07:32 Fractalis joins (~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24)
16:08:16 × Codaraxis quits (~Codaraxis@91.193.4.24) (Ping timeout: 240 seconds)
16:08:43 × tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) ()
16:09:47 caef^ joins (caef@ip98-184-89-2.mc.at.cox.net)
16:11:51 × p-core quits (~Thunderbi@2a0e:1c80:4:1024::1007) (Ping timeout: 272 seconds)
16:12:02 gproto0023 joins (~gproto23@unaffiliated/gproto23)
16:12:35 avdb joins (~avdb@ip-213-49-103-194.dsl.scarlet.be)
16:12:39 xerox_ joins (~xerox@unaffiliated/xerox)
16:14:15 × gproto023 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
16:14:51 gproto0023 is now known as gproto23
16:16:15 × LKoen quits (~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection)
16:17:23 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
16:17:30 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
16:19:40 × Codaraxis_ quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
16:19:45 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:20:25 xerox_ joins (~xerox@unaffiliated/xerox)
16:20:26 <sondr3_> dminuoso: when using State in megaparsec do I need the `mtl` package? I can't figure out how to modify state with the examples
16:21:07 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
16:21:19 oish joins (~charlie@228.25.169.217.in-addr.arpa)
16:21:56 nbloomf joins (~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4)
16:21:56 × chkno_ quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
16:22:10 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
16:22:36 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 256 seconds)
16:24:42 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
16:25:42 alp joins (~alp@2a01:e0a:58b:4920:b173:4b4d:a0b6:acac)
16:27:13 dorkside joins (~tdbgamer@208.190.197.222)
16:28:20 <sm[m]> et09: you need to ask #xmonad, but I'm guessing xmonad --recompile is special/not smart enough to detect the environment provided by stack exec
16:30:40 Codaraxis joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
16:31:35 <et09> i got it working after following these steps - https://brianbuccola.com/how-to-install-xmonad-and-xmobar-via-stack/
16:32:01 × avdb quits (~avdb@ip-213-49-103-194.dsl.scarlet.be) (Ping timeout: 264 seconds)
16:32:26 × acidjnk_new2 quits (~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
16:32:36 foursaph joins (~foursaph@dynamic-095-116-060-225.95.116.pool.telefonica.de)
16:33:59 <sm[m]> et09: nice, that should be made prominent for xmonad users
16:35:22 vicfred joins (~vicfred@unaffiliated/vicfred)
16:38:08 shf joins (~sheaf@2a01:cb19:80cc:7e00:b8bb:ef68:fc1c:f951)
16:38:15 LKoen joins (~LKoen@169.244.88.92.rev.sfr.net)
16:38:28 <et09> man 15gb hard drive on this and 11gb already used after install, 4gb for stack
16:41:24 <et09> and i think the hd is soldered into the motherboard lol. doomed
16:41:27 <sm[m]> maybe there's a ghc version/old-ghc libs in there you can delete ? ncdu is good
16:41:45 <et09> ncdu?
16:41:53 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection)
16:42:05 <sm[m]> yup, great tool
16:42:10 <et09> oo nice
16:42:15 <et09> i have cli scripts that do similar
16:42:28 <et09> well it's 2.2gb /programs, 1.3gb /pantry, 442mb /snapshots
16:42:44 <et09> only one ghc version i think ...
16:42:51 <sm[m]> rats
16:43:08 <et09> no matter
16:43:14 <et09> this is a random toy project anyway
16:43:28 andos joins (~dan@69-165-210-185.cable.teksavvy.com)
16:43:29 <MarcelineVQ> sounds about right: ghc, hackage index, libraries
16:43:31 <et09> ill dig up like a 32/64gb ssd if i wanna throw snes games on here or something
16:43:41 <sm[m]> what kind of machine has a 15G drive ?
16:43:46 chaosmasttter joins (~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de)
16:43:52 <et09> you don't want to know
16:44:20 <et09> hp chromebook 11 g5, ~2015
16:44:25 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
16:44:51 kritzefitz joins (~kritzefit@212.86.56.80)
16:45:09 <MarcelineVQ> You could probably compile on a larger computer and move the executable +​ settings to your smaller storage device
16:45:48 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
16:46:11 <MarcelineVQ> dunno how reasonable that is for xmonad in terms of seeing the effects of particular changes
16:46:32 × xff0x quits (~fox@2001:1a81:53c2:b800:23a4:8a65:fdbc:e15b) (Ping timeout: 260 seconds)
16:47:20 xff0x joins (~fox@2001:1a81:53c2:b800:5bdf:9233:5c1b:206)
16:48:22 × foursaph quits (~foursaph@dynamic-095-116-060-225.95.116.pool.telefonica.de) (Quit: leaving)
16:48:36 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
16:48:40 FreeBirdLjj joins (~freebirdl@101.228.42.108)
16:49:39 f-a joins (~f-a@151.36.70.173)
16:50:08 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:50:43 <sm[m]> "suboptimal" I think we could say
16:51:50 <merijn> stack generally installs multiple GHC's, so that quickly racks up space
16:52:02 melkor joins (~melkor@31.31.76.126)
16:53:07 <maerwald> merijn: if it had a way to garbage collect, but...
16:53:21 <sm[m]> et09 checked, and only has the one
16:54:08 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
16:56:43 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
17:00:44 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
17:01:26 Inoperable joins (~PLAYER_1@fancydata.science)
17:01:53 renzhi joins (~renzhi@2607:fa49:655f:e600::28da)
17:02:16 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
17:03:41 × Fractalis quits (~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24) (Quit: Leaving)
17:04:21 christo joins (~chris@81.96.113.213)
17:06:01 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
17:07:18 Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
17:08:34 × Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Remote host closed the connection)
17:08:54 conal joins (~conal@64.71.133.70)
17:10:52 hidedagger joins (~nate@unaffiliated/hidedagger)
17:11:15 Inoperable joins (~PLAYER_1@fancydata.science)
17:12:22 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds)
17:13:52 bitmapper joins (uid464869@gateway/web/irccloud.com/x-pcjsdqzlpwhjwdiy)
17:14:18 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137)
17:14:40 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
17:14:50 invaser joins (~Thunderbi@31.148.23.125)
17:16:27 × alp quits (~alp@2a01:e0a:58b:4920:b173:4b4d:a0b6:acac) (Ping timeout: 272 seconds)
17:16:47 × hidedagger quits (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
17:18:27 hidedagger joins (~nate@unaffiliated/hidedagger)
17:18:28 <et09> if it were that serious i'd just use a c tiling window manager hah
17:18:52 <et09> i just got this chromebook for free like 5 years ago and had to do a hardware mod (removing a screw -_-) to install linux on it
17:19:00 <et09> and never got around to it until this week
17:19:14 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137) (Ping timeout: 264 seconds)
17:19:27 <maerwald> just use i3 then
17:20:21 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
17:21:50 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
17:23:11 HarveyPwca joins (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
17:24:04 Inoperable joins (~PLAYER_1@fancydata.science)
17:24:21 <zyklotomic> huh? why do you have to roll your own xmonad
17:24:26 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection)
17:24:34 <zyklotomic> i've been ok enough with the ones in my distro's repos
17:25:03 FreeBirdLjj joins (~freebirdl@101.228.42.108)
17:25:13 <maerwald> the entire point of xmonad is "code as configuration", no?
17:25:24 <zyklotomic> and if I really needed to, i would feel comfortable enough directly changing the package manager build-file, not sure about your use case though
17:25:41 <zyklotomic> maerwald: yeah, but it can still read my xmonad.hs file in my home dir
17:26:23 <zyklotomic> i'm not sure about its inner workings, but it has always been able to read my ~/xmonad/xmonad.hs file
17:27:21 alp joins (~alp@2a01:e0a:58b:4920:a8cc:de6c:bd5c:69eb)
17:27:40 <zyklotomic> so i don't think it's as intense/hard core as some other WM's where you have to modify the actual source code
17:29:11 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
17:29:45 × FreeBirdLjj quits (~freebirdl@101.228.42.108) (Ping timeout: 260 seconds)
17:30:31 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
17:35:25 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
17:36:24 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
17:36:53 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:37:01 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
17:42:56 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
17:43:46 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
17:44:58 knupfer joins (~Thunderbi@i5E86B4AF.versanet.de)
17:45:49 × hidedagger quits (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
17:46:15 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
17:46:26 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:46:34 hidedagger joins (~nate@unaffiliated/hidedagger)
17:47:06 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
17:47:11 jonatanb_ joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
17:47:39 oish joins (~charlie@228.25.169.217.in-addr.arpa)
17:49:12 × f-a quits (~f-a@151.36.70.173) (Quit: leaving)
17:49:13 hidedagger joins (~nate@unaffiliated/hidedagger)
17:49:33 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
17:50:03 solonarv joins (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr)
17:50:05 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
17:50:37 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 264 seconds)
17:51:36 czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
17:51:39 christo joins (~chris@81.96.113.213)
17:53:26 × chaosmasttter quits (~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
17:53:46 × knupfer quits (~Thunderbi@i5E86B4AF.versanet.de) (Quit: knupfer)
17:55:17 hidedagger joins (~nate@unaffiliated/hidedagger)
17:55:36 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
17:55:36 × christo quits (~chris@81.96.113.213) (Ping timeout: 240 seconds)
17:55:50 × jonatanb_ quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
17:56:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
17:57:03 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds)
17:57:51 <dminuoso> sondr3_: It's easiest with mtl.
17:58:32 <sondr3_> dminuoso: Yeah, managed to get it to work with it :)
17:58:40 <dminuoso> Great! :)
18:00:34 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
18:00:37 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
18:01:29 knupfer joins (~Thunderbi@200116b82ce1e1004151d196bd118340.dip.versatel-1u1.de)
18:01:59 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137)
18:02:21 hidedagger joins (~nate@unaffiliated/hidedagger)
18:03:13 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
18:04:56 × raichoo quits (~raichoo@dslb-178-009-023-219.178.009.pools.vodafone-ip.de) (Quit: Lost terminal)
18:06:52 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
18:07:43 hidedagger joins (~nate@unaffiliated/hidedagger)
18:08:29 christo joins (~chris@81.96.113.213)
18:08:49 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
18:08:50 cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
18:08:55 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
18:12:49 × gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 264 seconds)
18:16:44 × cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Ping timeout: 240 seconds)
18:16:53 × Inoperable quits (~PLAYER_1@fancydata.science) (Excess Flood)
18:21:37 × alp quits (~alp@2a01:e0a:58b:4920:a8cc:de6c:bd5c:69eb) (Ping timeout: 260 seconds)
18:25:25 <merijn> maerwald: Not really
18:25:25 gproto23 joins (~gproto23@unaffiliated/gproto23)
18:25:56 <merijn> maerwald: The point of xmonad is more like "we made a DSL/library for writing custom window managers and are suckering people into writing Haskell window managers by telling them its configuration"
18:26:38 Inoperable joins (~PLAYER_1@fancydata.science)
18:27:13 <zyklotomic> thats a pretty hilarious take
18:27:30 <merijn> zyklotomic: It's true, though :)
18:28:05 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
18:29:32 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
18:31:29 <zyklotomic> I will admit that is what exposed me to Haskell
18:31:42 <zyklotomic> so inadvertently or not (idk tbh), Xmonad did its purpose
18:31:48 invaser joins (~Thunderbi@31.148.23.125)
18:31:55 × hidedagger quits (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
18:32:03 <zyklotomic> it definitely is good publicity for the language
18:32:06 <monochrom> My view is they were too lazy to design and implement a proper config format.
18:32:10 × neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving)
18:32:17 <zyklotomic> ...and called it a feature
18:32:19 <merijn> monochrom: Compromise: It was both
18:32:35 <merijn> monochrom: Can you blame them? Dhall hadn't been invented yet!
18:32:53 <monochrom> They could have invented dhall or better.
18:33:22 <geekosaur> the problem with monochrom's view is that spencer was a dwm user and explicitly cloned dwm
18:33:32 <dsal> et09: I have a chromebook pixel I pulled the screw out of. It runs nixos+xmonad now.
18:33:36 <geekosaur> "because haskell was better at doing edsls"
18:33:41 <merijn> geekosaur: That's the suckless one?
18:33:47 <geekosaur> yeh
18:34:15 <zyklotomic> i guess theres dozens of us! dsal
18:34:16 <merijn> I wonder if they're still around, or if they've given up in the onslaught of terrible software :p
18:34:34 <geekosaur> dunno
18:35:01 <geekosaur> they've not exactly lived up to their name at times, thoguh; they've had some pretty terrible bugs
18:35:42 <merijn> To be fair, the main motivation/ideology wasn't "less buggy"
18:36:01 <merijn> It was simpler, clearer, and less resource intensive
18:36:16 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 240 seconds)
18:36:25 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
18:36:27 <zyklotomic> and have it "suck less"
18:36:27 hidedagger joins (~nate@unaffiliated/hidedagger)
18:36:31 <monochrom> All three were destroyed by migrating to Haskell and GHC.
18:36:37 <merijn> monochrom: ;)
18:37:03 <merijn> monochrom: And yet Haskell still sucks less than C :p
18:37:14 <merijn> Hell, Haskell is a better C than C :p
18:38:00 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
18:38:22 nbloomf joins (~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4)
18:39:01 p-core joins (~Thunderbi@2a0e:1c80:4:1023::1004)
18:40:24 × hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit)
18:40:56 hidedagger joins (~nate@unaffiliated/hidedagger)
18:41:10 × DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
18:42:25 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4) (Client Quit)
18:42:43 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-bxutlphfkqmfvhzw)
18:44:02 nbloomf joins (~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4)
18:44:04 robotmay joins (~beepboop@80.172.187.81.in-addr.arpa)
18:44:39 dfaiv joins (44f9e9e4@68-249-233-228.lightspeed.okcbok.sbcglobal.net)
18:45:07 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 272 seconds)
18:46:26 <tomsmeding> I'm happily using suckless' st terminal
18:46:36 <tomsmeding> one datapoint :p
18:46:43 <merijn> There's no way to make terminals suck less :p
18:46:58 <tomsmeding> ¯\_(ツ)_/¯
18:47:37 <tomsmeding> would be interesting to meet a person that actually uses ii
18:47:56 <merijn> tomsmeding: Out of morbid curiosity? :p
18:48:01 <tomsmeding> yes :p
18:48:40 <merijn> tomsmeding: There's two kinds of people. People who like terminals, and people who've read the APUE chapter on terminals and know how they work and what kinda weird abomination they are >.>
18:48:44 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
18:48:55 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4) (Client Quit)
18:49:15 tomsmeding doesn't know what APUE is, but I know how ansi escape sequences work, does that count?
18:49:39 × son0p quits (~son0p@181.58.39.182) (Quit: leaving)
18:49:45 <merijn> tomsmeding: Advanced Programming in the UNIX Environment
18:50:01 <merijn> The bible for anyone who wants any hope of writing remotely robust portable posix code :)
18:51:25 <dolio> Seems to me the problem is that people generally want to replace terminals with something worse, rather than better.
18:51:42 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
18:51:43 nbloomf joins (~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4)
18:52:16 <merijn> dolio: Doesn't that hold for basically every technology? :p
18:52:51 <dolio> Probably.
18:52:52 <merijn> dolio: See TypeInType ;)
18:57:09 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
18:59:00 qqqqqq joins (~Me@185.142.40.159)
18:59:03 <qqqqqq> 6Lets praise Allah; 3he is our God, thee one; he is the god of Moses; Noah; Jesus & Mohammed; he sent us our Book 7 Quran, 10Monotheism is cleared by all prophets ~ 6 We get heaven & happiness on earth by praying to the one god 6& by Saying No God except Allah & that Mohammed is the messenger of Allah. 4 treat others as u like to be treated 10---------;{@
18:59:05 qqqqqq parts (~Me@185.142.40.159) ()
18:59:55 <Uniaika> *sigh*
19:00:34 <tomsmeding> well it is nice and colourful
19:00:45 <[exa]> the last part actually made some sense
19:00:54 <tomsmeding> except for the ;{@
19:00:57 <[exa]> I give 3 stars out of 5 and ban
19:01:03 <merijn> [exa]: Agreed, we should bring back ascii roses
19:01:05 <Uniaika> nah the rose was decent, [exa]
19:01:08 <Uniaika> I've seen worse
19:01:10 <[exa]> lol
19:01:12 <tomsmeding> oh that's a rose?
19:01:15 <Uniaika> yeah
19:01:22 tomsmeding is too young for this shit
19:01:29 <Uniaika> lol, how old are you? tomsmeding
19:01:31 <merijn> tomsmeding: Usually in MUDs they'd use that for flowers/roses
19:01:33 <hpc> all i saw was an unmatched squiggly brace
19:01:42 <merijn> Man...I miss MUDs...
19:01:44 <dolio> Missed an opportunity to color the rose correctly.
19:01:52 <tomsmeding> lol I'm 22 Uniaika
19:02:02 <Uniaika> tomsmeding: :D
19:02:03 <Uniaika> nice
19:02:06 <merijn> they were like MMOs, but before the massive exploitation of the modern games industry
19:02:06 <Uniaika> some young blood
19:02:07 Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.174)
19:02:08 <tomsmeding> I didn't have IRC in my life until recently
19:02:11 <hpc> but it's in a comment so i guess that's fine :P
19:02:14 <[exa]> merijn: let's waste a month playing ishar?
19:02:26 <Uniaika> tomsmeding: I'm 25 myself
19:02:52 <merijn> [exa]: I don't know ishar. I mostly played Aardwolf which was a *heavily* (to the point of unrecognisability) modified ROM 2.4
19:03:14 <[exa]> tomsmeding: Uniaika: worry not, I'm 33 and I have no idea whether there's any correlation between age and knowledge of MUDs :D
19:03:16 <merijn> It's still up (or was a year ago), but I got kicked out of the clan :(
19:03:23 berberman_ joins (~berberman@unaffiliated/berberman)
19:03:27 <[exa]> o noes
19:03:27 <Uniaika> [exa]: :D
19:03:39 <merijn> [exa]: I'm 34, so that's about the tail end of the MUD era in terms of age :p
19:04:07 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
19:04:30 hackage candid 0.1 - Candid integration https://hackage.haskell.org/package/candid-0.1 (JoachimBreitner)
19:04:52 alp joins (~alp@2a01:e0a:58b:4920:4e0f:6ea:5e4e:a140)
19:07:13 <[exa]> merijn: like, my mud carreer peaked at like 16--18
19:07:30 son0p joins (~son0p@181.136.122.143)
19:07:33 <merijn> Mine probably right before WoW :p
19:07:38 <merijn> From one drug to another ;)
19:07:38 <[exa]> lol
19:07:48 <[exa]> that may correspond well, yes
19:07:50 × hidedagger quits (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
19:07:51 acidjnk_new2 joins (~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de)
19:10:34 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
19:10:36 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
19:12:32 chaosmasttter joins (~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de)
19:12:57 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4) (Quit: Textual IRC Client: www.textualapp.com)
19:15:13 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
19:21:26 Lycurgus joins (~niemand@98.4.114.74)
19:22:35 geekosaur joins (82659a09@host154-009.vpn.uakron.edu)
19:26:18 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
19:28:00 Guest42 joins (56ca6780@gateway/web/cgi-irc/kiwiirc.com/ip.86.202.103.128)
19:29:28 ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf)
19:30:25 <Feuermagier> %C08,13 how does one actually write in color here?
19:31:46 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:32:41 kupi joins (uid212005@gateway/web/irccloud.com/x-zjfftffhhqbtimeu)
19:33:32 <hpc> depends on the client
19:33:39 <geekosaur> that %C thing is specific to xchat and only if color is enabled (check its settings). at low level it's control-C,and up to the client to specify how to get that (the webchat I'm using doesn't seem to support it at all)
19:33:56 <Feuermagier> hexchat here
19:35:25 <geekosaur> then you needto enable the color escapes. I don't recall where that is in the settings
19:35:54 <geekosaur> (I usually edit the settings files directly while it's not running, there are a lot of settings it doesn't expose in the ui)
19:36:37 × Lycurgus quits (~niemand@98.4.114.74) (Quit: Exeunt)
19:36:40 <Feuermagier> IRC really has everything one could need
19:37:05 _linker_ joins (~linker@185.12.21.77)
19:41:14 <[exa]> Feuermagier: pls don't color
19:41:29 × alp quits (~alp@2a01:e0a:58b:4920:4e0f:6ea:5e4e:a140) (Ping timeout: 272 seconds)
19:41:45 <Feuermagier> [exa], why?
19:42:20 <[exa]> one shall typeset with a single ink, even IRC
19:46:17 Uniaika can show why colourful IRC can be a pain :>
19:46:45 Feuermagier is interested
19:47:01 <Uniaika> 14,6 KIKOO FEUERMAGIER !!!!!! :o))))))))))))))))
19:47:01 <Uniaika> 10,3 KIKOOOOOOOOOOOO FEUERMAGIER !!!!!!!! :o))))))))))))
19:47:02 <Uniaika> 7,4 KIKOO FEUERMAGIER !!!!!! :o))))))))))
19:47:03 <Uniaika> 13,11 KIKOOOOOOO FEUERMAGIER !!!!!!!!!!!!! :o))))))))
19:47:05 <Uniaika> 12,2 KIKOOOOOOOOO FEUERMAGIER !!! :o))))))))))))))))
19:47:05 × Uniaika quits (~uniaika@163.172.211.189) (Killed (Sigyn (Spam is off topic on freenode.)))
19:47:20 Feuermagier is amused
19:47:49 <maerwald> lol
19:47:57 <monochrom> Yikes Uniaika sacrified themselves to show you.
19:48:10 <Feuermagier> how honorful
19:48:25 <Feuermagier> may he rest in peace
19:50:46 Uniaika joins (~uniaika@163.172.211.189)
19:50:50 <zyklotomic> wait woah you can do that?
19:50:56 <zyklotomic> that worked for me, i was not ready for that
19:51:14 <merijn> You can do that, but clearly you shouldn't >.>
19:51:27 <Uniaika> Feuermagier: that's the last time I'm helpful :>
19:51:28 <zyklotomic> i have never ever seen colored in my 4 (albeit short) years of irc
19:51:38 <ben_m> what's next, embedded images, emoji and voice chat?
19:51:45 <zyklotomic> woah woah slow down
19:51:59 <zyklotomic> maybe a few decades down the road
19:52:12 <zyklotomic> i don't think that's possible right now
19:52:45 <zyklotomic> is there a clean way to compose functions that share tails?
19:52:57 <geekosaur> some clients translate emoji
19:52:57 <zyklotomic> f: a -> b -> c, g: b -> c -> d
19:53:10 <geekosaur> (it's a bad idea here, it'll do weird things to code)
19:53:16 <zyklotomic> where the b and the c arguments are the same
19:53:32 <zyklotomic> where the tail is the head of the next*
19:53:40 <Feuermagier> can I use emojis for variable or function names in haskell?
19:53:44 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:54:03 <maerwald> like haskell isn't obscure enough already
19:54:11 <Uniaika> ben_m: you could have avatars with Hexchat I think
19:54:19 <Uniaika> emojis are already here
19:54:42 <geekosaur> also there's emoji in unicode which probably pass through and are displayed by Unicode-capable clients
19:54:45 <merijn> > let x ☃ y = x*y + x + y in 3 ☃ 4 -- I dunno, can you?
19:54:48 <lambdabot> 19
19:54:59 <geekosaur> depends on the character class. I suspect they're symbols so would have to be operator syntax
19:55:21 <Feuermagier> merijn, my god, what have I done...
19:55:30 <merijn> > generalCategory '💩'
19:55:32 <lambdabot> OtherSymbol
19:55:40 <merijn> Symbol, so valid operator :)
19:55:53 jneira joins (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192)
19:55:54 <merijn> > let x 💩 y = x*y + x + y in 3 💩 4 -- I dunno, can you?
19:55:55 hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
19:55:56 <lambdabot> 19
19:56:05 <Feuermagier> *oh god*
19:56:14 × knupfer quits (~Thunderbi@200116b82ce1e1004151d196bd118340.dip.versatel-1u1.de) (Remote host closed the connection)
19:56:16 <zyklotomic> oh right i was reading the other the day, almost any unicode is a valid operator
19:56:21 <merijn> Feuermagier: For details see chapter 2 of the Haskell 2010 report :p
19:56:23 knupfer joins (~Thunderbi@200116b82ce1e1001cbbbad91fc51f3d.dip.versatel-1u1.de)
19:56:28 <merijn> zyklotomic: Not really
19:56:39 <merijn> zyklotomic: Only the unicode characters with "symbol" class
19:57:06 <merijn> > generalCategory '∑'
19:57:08 <lambdabot> MathSymbol
19:57:15 <Feuermagier> 🐧
19:57:18 <zyklotomic> ah
19:57:22 <merijn> > generalCategory 'Σ'
19:57:23 <lambdabot> UppercaseLetter
19:57:26 <zyklotomic> and then there's this abomination https://github.com/vasilevp/aboriginal lol
19:57:59 <merijn> Note how the sum symbol is an operator, but capital sigma is a letter and thus only in function names
19:59:14 <zyklotomic> that makes sense
19:59:15 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
19:59:28 <Feuermagier> KDE replaces each one of those emjois with high-res color-images, which do not fit one bit into IRC
19:59:31 <zyklotomic> i'm surprised they thought to make this distinction
19:59:41 <merijn> zyklotomic: Fun related trivia
19:59:42 henninb joins (~henninb@63.226.173.161)
19:59:50 Tario joins (~Tario@201.192.165.173)
20:00:04 <Feuermagier> we don't have lambda, but we have 🦙
20:00:16 <merijn> The fact that GHC compiles this package https://hackage.haskell.org/package/acme-lookofdisapproval-0.1/docs/Acme-LookOfDisapproval.html is technically a violation of the Haskell Report
20:00:33 kritzefitz joins (~kritzefit@212.86.56.80)
20:01:23 <merijn> Constructor names must start with a capital letter and non-constructor names must start with a lowercase letter or _
20:01:30 <merijn> Notice the flaw?
20:01:47 <gentauro> anybody here using `xmobar`?
20:02:03 <gentauro> I would like to hide it for one of my `workspaces`
20:02:04 <gentauro> :)
20:02:32 <gentauro> (by default, but maybe show it with some Xmonad shortcut)
20:02:34 <merijn> GHC (technically wrongly) lets non-constructor names start with "non-uppercase letters or _", rather than lowercase letter of _ :p
20:02:38 <merijn> > isUpper 'ಠ'
20:02:40 <lambdabot> False
20:02:42 <merijn> > isLower 'ಠ'
20:02:44 <lambdabot> False
20:03:03 <gentauro> merijn: you can't use lowercase greek letters for constructors
20:03:04 <merijn> > isLetter 'ಠ'
20:03:07 <lambdabot> True
20:03:09 <gentauro> but you can use the uppercase
20:03:43 conal joins (~conal@64.71.133.70)
20:03:43 <merijn> gentauro: 1) you can use lowercase greek letters for constructors, just not the first one, 2) I didn't say that? :)
20:04:09 <zyklotomic> gentauro: if you want immediate relief, i think the default is modifier-b
20:05:04 <geekosaur> gentauro, I think https://github.com/geekosaur/xmonad.hs/blob/pyanfar/xmonad.hs#L142 is as close as you get
20:05:06 <zyklotomic> i'm not sure about how to make it a rule though
20:05:15 <zyklotomic> oh ^ maybe geekosaur has it
20:05:32 <zyklotomic> merijn: that is one great hidden gem lol
20:05:50 <geekosaur> (note also the avoidStruts on the following line, for all the other workspaces)
20:07:00 <zyklotomic> is there a way around this following pattern? "segment str . viterbi hd $ str"
20:07:17 <zyklotomic> where str has to be used as an argument for both `segment' and `viterbi'
20:08:07 <dminuoso> liftA2 (.) segmetn (viterbi hd) $ str
20:08:12 <dminuoso> Not sure that's any better though.
20:08:36 <dminuoso> Or: (.) <$> segment <*> vierbi hd $ str
20:08:52 <dminuoso> no wait, that's not the same
20:08:52 <merijn> or...crazy idea
20:08:53 <zyklotomic> yeah I have liftA2 ominously imported before I asked
20:08:59 <gentauro> geekosaur: thanks, I will give it a try :)
20:09:00 <merijn> Write a lambda/put it into a let/where binding
20:09:13 × daGrevis quits (~daGrevis@unaffiliated/dagrevis) (Ping timeout: 260 seconds)
20:09:33 <zyklotomic> but is `liftA2 (.)' kinda a bit too crazy?
20:09:34 <dminuoso> or.. it is the same. I really dislike using the monadic interface of Reader
20:09:37 <merijn> I know, I know...it's outrageous...but it's so crazy it just might work!
20:09:43 <gentauro> geekosaur: funny enough, it's to run a vm with `win 10` xD
20:09:47 <dminuoso> zyklotomic: It is.
20:09:48 <zyklotomic> i think i abuse `liftA2 (.)' too much
20:10:01 <merijn> zyklotomic: Probably
20:10:25 <dminuoso> One of the issues with overusing Applicative in the middle of code, is that it's sometimes not immediate obvious which instance is being used.
20:10:33 <merijn> Here's a great tip from coming back to a huge codebase with 6 month to 1 year intervals: Putting stuff in let/where and giving stuff names is a pretty great idea
20:11:01 <merijn> liftA2 (.) is a great way to hate yourself
20:11:34 <zyklotomic> yeah ok, I sane-ed up a lil and deleted it
20:11:42 <zyklotomic> thanks y'all
20:11:45 <dminuoso> zyklotomic: Personally Id just write parens.
20:11:57 <dminuoso> segment str (vierbi hd str)
20:12:02 <dminuoso> perhaps with a let/where binding
20:12:10 <dminuoso> There's no need to try and get cute her
20:12:12 magma joins (~magma@host-87-20-128-180.retail.telecomitalia.it)
20:12:16 <dminuoso> It certainly doesnt *improve* readability
20:12:29 <zyklotomic> yeah, I was just wondering if there was a way to avoid that double invoctaion of str somehow
20:12:40 <dminuoso> zyklotomic: since its named, it will be shared anyhow.
20:12:43 daGrevis joins (~daGrevis@unaffiliated/dagrevis)
20:12:46 <dminuoso> (likely)
20:13:02 <zyklotomic> yeah, but aesthectically.... think about the a e s t h
20:13:03 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
20:13:12 <dminuoso> aesth?
20:13:25 <zyklotomic> i'm jokin tho /s
20:13:29 <tomsmeding> @pf \str -> segment str (viterbi hd str)
20:13:30 <lambdabot> Maybe you meant: pl bf
20:13:33 <tomsmeding> @pl \str -> segment str (viterbi hd str)
20:13:33 <lambdabot> ap segment (viterbi hd)
20:14:01 <dminuoso> 21:10:33 merijn | Here's a great tip from coming back to a huge codebase with 6 month to 1 year intervals: Putting stuff in let/where and giving stuff names is a pretty great idea
20:14:05 <dminuoso> This.
20:14:17 <tomsmeding> also if you use ap, think thrice and make a sacrifice
20:14:17 <zyklotomic> yah, i'm going to stick with that
20:14:28 <dminuoso> There's no single better general purpose technique to improve readability than to move things into let/where bindings.
20:14:37 <dminuoso> If the code becomes too complex, use more bindings.
20:15:16 <dsal> A lot of my programming was in RPL ("reverse polish lisp", a forth-like language on my HP48). I almost never used variables. heh
20:15:28 <zyklotomic> i tihnk i'm at the stage of learning in haskell where I want to know whether there are "better" ways to do what I'm doing
20:15:37 <zyklotomic> whether going out of my way to worry about that is a worthwhile pursuit idk
20:15:41 <dsal> Never leave that stage.
20:15:48 <tomsmeding> zyklotomic: http://pointfree.io/
20:15:56 <tomsmeding> infinite supply of unreadability
20:16:14 <dsal> But sometimes something like liftA2 is obviously beneficial. Something obscuring things doesn't help much.
20:16:35 × magma quits (~magma@host-87-20-128-180.retail.telecomitalia.it) (Client Quit)
20:16:51 <dsal> making things pointfree is helpful when you have `\f x -> g 3 x` or something.
20:17:19 ski . o O ( s/pointfree/pointless/ )
20:17:35 <tomsmeding> hence the naming of @pl
20:17:43 <zyklotomic> tomsmeding: ohhh
20:17:55 <dsal> In that case, you look and see the x on both sides, and you remove it. Then you see `\f -> g 3` and then you're like, why did I even have a lambda there?
20:17:56 <dminuoso> tomsmeding: Oh.. haha really?
20:17:59 <dminuoso> I always wondered about that one
20:18:16 <ski> @help pl
20:18:16 <lambdabot> pointless <expr>. Play with pointfree code.
20:18:33 <dminuoso> zyklotomic: I found GHC to be a great source for ideas how to make readable code
20:18:50 <dsal> Actually, I'm being a bit dumb. But in general, you can try a couple things and whichever makes the most sense to you wins.
20:18:55 <dminuoso> It is surprisingly readable
20:19:00 <dsal> Also, that metric will change over time.
20:19:13 <zyklotomic> yeah, because like idk how to describe the feeling, but the cliche adage
20:19:20 <zyklotomic> "the more you know, the more you don't know"
20:19:33 <dminuoso> Perhaps this is a process people need to go through
20:19:50 × knupfer quits (~Thunderbi@200116b82ce1e1001cbbbad91fc51f3d.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
20:19:53 <dminuoso> You dont know why certain styles are unmaintainable unless you use them. Or it teaches why they could be useful
20:20:02 × henninb quits (~henninb@63.226.173.161) (Quit: leaving)
20:20:06 <zyklotomic> yup fair, no shortcut
20:20:09 <dminuoso> Without it, you'd just be a victim to do whatever random folks on freenode told you
20:20:38 <geekosaur> that said, "a little knowledge is a dangerous thing"
20:21:08 <merijn> So is a lot of knowledge ;)
20:22:17 ski . o O ( <https://www.vex.net/~trebla/humour/tautologies.html#6> )
20:22:34 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
20:22:34 <merijn> I saw Vanessa's tweet over "being the Dickens of code" and my initial reaction was "I'm the H.P. Lovecraft of code", in that my code describes a slow descent into gibbering madness that unsettles the reader and makes them question their place in the universe... >.>
20:24:35 <merijn> monochrom: I've got an addendum to your xkcd link on that page ;)
20:24:44 × oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 265 seconds)
20:24:54 <merijn> monochrom: https://www.smbc-comics.com/comic/2014-09-02
20:25:43 falafel__ joins (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
20:26:27 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
20:26:44 guest29 joins (5f4965a4@95.73.101.164)
20:28:42 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
20:29:19 <dsal> zyklotomic: I ask @pl for suggestions sometimes and if they're obviously better, I use them. hlint also gives good recommendations sometimes. Only rarely does it give really bad advice, IMO.
20:29:42 <zyklotomic> yeah hlint has really helped
20:29:58 <zyklotomic> i, just seconds ago, as a matter of fact, wondered
20:30:07 <dsal> hlint got mad at me for using [Char] somewhere. I said what I meant.
20:30:07 <merijn> hlint's advice is contentious :p
20:30:09 <zyklotomic> how did I write such a clean loc, "oh wait hlint did"
20:30:15 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
20:30:23 <dsal> Yeah, all opinions are bad. Code formatters can be pretty awful.
20:30:23 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
20:30:48 <dsal> But when I had no idea what I was doing, some opinions were better than my own much of the time.
20:30:49 <dminuoso> I dont linters at all.
20:31:14 <dminuoso> They tend to create noise for disagreeing on my style, and then I spend more time tweaking the linter rules than it improves my code
20:31:25 <dminuoso> Because I refuse to blindly obey hlint
20:31:51 <dsal> I run it on occasion and it sometimes points out a dumb thing I did in refactoring.
20:31:58 <merijn> hlint is great
20:32:03 <merijn> If you're Neil Mitchell :)
20:32:16 <glguy> hlint is great for adding cpp noise to your code as you block out regions that it can't handle
20:32:39 <dsal> I think it's pretty good if you're learning and you want some degree of code review without bugging humans constantly.
20:32:40 <zyklotomic> as long as it's easy to tell the linter to shut up where you want to? i haven't gotten to the stage where I trust my style more
20:32:46 <zyklotomic> yeah
20:32:49 ski . o O ( "He is also known for crediting his computer \"Shalosh B. Ekhad\" as a co-author" <https://en.wikipedia.org/wiki/Shalosh_B._Ekhad> )
20:33:03 <glguy> The problem with leaning on it as a new user is you don't know which suggestions are ones you should have avoided
20:34:48 <dsal> I guess it depends on how you approach it. I never look at it to ask if my code is good. Just another opinion. Sometimes interesting ones.
20:35:22 <hpc> the trouble with hlint is there's not much it can do to catch things that matter
20:35:35 <hpc> compared to say, shellcheck which is almost compiler levels of valuable
20:36:04 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
20:36:04 <zyklotomic> i think at least as a very very novice, doing things like map (\x -> x+3), it was invaluable
20:36:32 <zyklotomic> it should get recommended more
20:36:41 alp joins (~alp@2a01:e0a:58b:4920:c8af:eb98:65bc:27e4)
20:36:52 <dminuoso> zyklotomic: As you can see there's a lot of disagreement in the past few minutes already.
20:36:55 <zyklotomic> and well, you'll know when you don't need it
20:36:56 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
20:37:03 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
20:37:31 <zyklotomic> dminuoso: :p, well specifically from the perspective of a complete noob though
20:37:48 <[exa]> hlint is GREAT for newbies
20:38:02 <monochrom> hlint is a very misleading name.
20:38:12 <monochrom> hlint is hardly comparable to C lint.
20:38:14 <[exa]> yeah, hhint
20:38:21 <dminuoso> At work I have a colleague who runs his python linter in the CI. So if you submit a merge request, and you use an underscore in a place that the linter things is "terrible style", it is undeployable.
20:38:34 <maerwald> hlint is annoying in CI
20:38:41 <monochrom> Whereas C lint points out very real mistakes, hlint is merely style nitpicking.
20:38:41 <dsal> Yeah, it never tells me my code is wrong, just stuff like, "Hey, `fmap f . fmap g` is `fmap (f . g)`
20:38:43 <dminuoso> So Im fairly allergic to linters. Beginners trust them too much
20:38:43 <dsal> "
20:38:48 <sszark> has hackage always not had a SSL certificate? or is that a mistake
20:39:09 <dminuoso> sszark: What do you mean? The website?
20:39:13 <monochrom> The damage is that beginners look at the name "hlint" and don't know it's a blatant lie.
20:39:17 <zyklotomic> yah i was going to say that double fmap rule was eye opening
20:39:25 <glguy> I agree they're annoying in CI, but if you accept the assumption that it's a good idea to use it at all it doesn't seem like a bad idea to enforce people clean up the suggestions
20:39:35 <hpc> sszark: it just doesn't redirect to https
20:39:41 <zyklotomic> dsal: i notice that when i'm writing javascript too now, it's crazy
20:39:46 <glguy> having long-running lint suggestions clouds seeing the new arguably useful ones, right?
20:40:14 <sszark> oh i see, that makes sense i guess hpc
20:40:21 <maerwald> well, the problem is if you disagree with most hlint suggestions and the ones that I don't disagree with are not worth the time
20:40:30 <monochrom> Like, there is a reason I write "\x -> f x" when teaching beginners. Shut up, hlint.
20:40:49 <merijn> sszark: hackage does have SSL, but there's no autoforward
20:41:00 <monochrom> No, actually, I should speak like hlint does. Why don't you shut the f* up, hlint.
20:41:13 <glguy> relying on autoforward isn't a great plan. explicitly use https if that's what you want
20:41:13 <dminuoso> Also, you should name it TLS. SSL is usually used to refer to the old versions of the protocol suite. :)
20:41:14 <merijn> sszark: There was an email about setting up an autoforward the past week
20:41:25 <merijn> sszark: Anyway, hackage doesn't need SSL for security anyway
20:41:38 <merijn> (well, assuming you got cabal-install from a trusted source :p)
20:42:05 × guest29 quits (5f4965a4@95.73.101.164) (Remote host closed the connection)
20:42:09 <maerwald> merijn: and how do you verify the hackage index?
20:42:15 <merijn> maerwald: It's signed
20:42:33 <maerwald> with a human key?
20:42:33 × chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
20:42:38 <merijn> maerwald: You need an uncompromised cabal-install first, but you can't download that from Hackage anyway
20:42:50 <dsal> Transport isn't going to verify your index
20:42:50 triteraflops joins (~triterafl@host-148-170-141-28.public.eastlink.ca)
20:43:04 chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
20:43:12 <merijn> maerwald: Hackage uses TUF, so, eh, look up the details yourself? https://theupdateframework.io/
20:43:22 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
20:44:17 <triteraflops> I decided linear programming is a good idea, and would like to experiment further with it. How "ready" is linear haskell? Could it plausibly be used on a real world project without anything catching fire?
20:44:38 <merijn> triteraflops: Considering it requires an unreleased GHC "no" :p
20:44:55 <triteraflops> lol
20:44:58 <triteraflops> irp
20:44:59 <triteraflops> rip
20:45:40 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
20:45:40 <merijn> You could, conceivably, build something non-trivial by grabbing a build from CI and using head-hackages, but it's very much a "DIY ductape and wire" kinda stage"
20:46:28 <triteraflops> "
20:47:30 <triteraflops> Well, what about Idris? I know I should ask #idris, but what the hey.
20:47:41 <merijn> Does Idris even have linear types?
20:47:48 <triteraflops> idris2 does
20:50:24 × xsperry quits (~as@unaffiliated/xsperry) ()
20:50:27 <MarcelineVQ> there's no no-fire gurantees on any software
20:50:37 <merijn> MarcelineVQ: Of course
20:50:42 Volt_ joins (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net)
20:50:46 <merijn> MarcelineVQ: There's no guarantees for your hardware either :p
20:51:07 <merijn> At some point you need to settle for a realistic threat model
20:51:21 <hpc> that's the nice thing about hardware, the fires are literal
20:51:24 <merijn> I would recommend following James Mickens' threat model :p
20:52:10 <monochrom> Just use a nitrogen chamber.
20:52:13 <merijn> I refer to the threat model table on page 2 of https://www.usenix.org/system/files/1401_08-12_mickens.pdf (although, in all honestly I highly recommend reading the entire thing)
20:52:25 <merijn> s/honestly/honesty
20:53:10 <monochrom> Use the subtraction method. s/in all// is a more efficient fix. :)
20:54:30 hackage zio 0.1.0.2 - App-centric Monad-transformer based on Scala ZIO (UIO + ReaderT + ExceptT). https://hackage.haskell.org/package/zio-0.1.0.2 (bebarker)
20:54:32 <hpc> oh man, that pdf is great
20:55:01 <merijn> hpc: Good news for you
20:55:13 <merijn> hpc: He wrote like 10 more editorials and gave several equally amazing talks
20:55:38 <merijn> The Night Watch is especially nice if you've ever done any systems stuff
20:56:18 × zyklotomic quits (~ethan@unaffiliated/chocopuff) (Ping timeout: 256 seconds)
20:58:30 × LKoen quits (~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection)
20:58:50 xsperry joins (~as@unaffiliated/xsperry)
20:59:42 × falafel__ quits (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
21:00:09 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Read error: Connection reset by peer)
21:01:04 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
21:03:00 hackage pandoc-crossref 0.3.8.4 - Pandoc filter for cross-references https://hackage.haskell.org/package/pandoc-crossref-0.3.8.4 (lierdakil)
21:03:11 × p-core quits (~Thunderbi@2a0e:1c80:4:1023::1004) (Ping timeout: 272 seconds)
21:03:49 × AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
21:04:08 <triteraflops> I just learned about Clean. Looks like that's the way to go for building a real thing today using linear types.
21:04:27 <merijn> Clean doesn't have linear types, I don't think?
21:04:35 <merijn> Pretty sure they only have uniqueness types, no?
21:04:41 <ski> correct
21:04:43 <triteraflops> isn't that the same thing?
21:04:43 <c_wraith> Uniqueness types are a lot more useful anyway
21:04:49 <ski> triteraflops, nope
21:04:53 <merijn> Although, if you wanna built CRUD applications for Windows, Clean is good ;)
21:05:25 pavonia joins (~user@unaffiliated/siracusa)
21:06:19 <triteraflops> ski: so what's the difference?
21:07:21 <c_wraith> a linear function says "this function uses this argument exactly once". A function with a unique constraint says "this value is passed to this function and not use anywhere else"
21:07:54 <ski> (Mercury's another language with uniqueness. although, in that case, not put into the types, but rather the "insts" (instatiation states). Rust also has stuff that is of a somewhat similar ilk)
21:08:48 <triteraflops> hm, kind of moves the bubble over.
21:09:27 <triteraflops> uniqueness puts constraints on other functions and linearity is a constraint only on that function
21:09:38 <ski> triteraflops : with uniqueness, you know that the value haven't been duplicated in the past (but you're allowed to duplicate in the future). with linearity/affinity, you're promising not to duplicate it in the future (but it might already have been duplicated in the past)
21:09:47 <c_wraith> more generally, uniqueness puts the constraint on the caller. But yes.
21:11:12 <triteraflops> But they're kinda solving the same problem, of compile-time duplication awareness and avoidance
21:11:38 <ski> (difference between linearity and affinity is that affinity allows you to (implicitly) discard, while linearity doesn't (you could still pass explicitly to a waste disposal facility))
21:12:18 <triteraflops> Then there's C++'s move semantics, which are just silly.
21:12:29 <triteraflops> I still don't understand them.
21:12:40 <triteraflops> too complicated
21:13:34 <[exa]> there's no move
21:14:52 × alx741 quits (~alx741@181.196.69.47) (Ping timeout: 260 seconds)
21:15:06 <merijn> move semantics are ok, they're pretty straightforward it's the rvalue reference stuff that's a confusing mess :)
21:15:12 <ski> it seems to me there's an interesting language trapped inside C++ lvalue & rvalue references, move semantics, perfect forwarding, wanting to be released
21:15:35 <c_wraith> C++ is long past mere lvalues and rvalues. now it has a whole hierarchy
21:15:40 <merijn> pvalues!
21:15:59 <merijn> lvalue references, rvalue references!
21:15:59 <ski> (wg 70
21:16:04 <triteraflops> copy elision
21:16:08 <merijn> I think we have like prvalues too?
21:16:15 <triteraflops> yeah that too
21:16:25 <merijn> triteraflops: copy elision is obsoleted by move semantics and rvalue references
21:16:43 <triteraflops> well, good for C++
21:16:46 <triteraflops> lol
21:16:54 <triteraflops> I gave up on it a while ago
21:17:04 <[exa]> there are 3 in fact, standard section 7.2.1 specifies just lvalue, xvalue and prvalue
21:17:16 <merijn> move semantics are just a more formal and structured way of considering copy elision without worrying whether copy elision will trigger by the compiler, since it's now specified
21:17:28 <[exa]> copy&move elision are completely orthogonal concepts related to function call semantics
21:17:41 <merijn> anyhoo
21:17:54 <merijn> This conversation is triggering, so time to stop coding/ircing ;)
21:18:00 knupfer joins (~Thunderbi@200116b82ce1e10028bb8f758d5216f6.dip.versatel-1u1.de)
21:19:06 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:21:00 LKoen joins (~LKoen@169.244.88.92.rev.sfr.net)
21:21:40 <triteraflops> wth, there's like 5 people in #cleanlang. Why isn't this language more popular?
21:23:38 <merijn> Because I think the only people using it are all at the Radboud Universiteit :p
21:24:16 <merijn> It's mostly a research language, I don't think there's a very big community working on libraries, packages, etc.
21:24:17 <ski> Clean isn't bad
21:24:37 <merijn> ski: I didn't say it was, I just said it didn't have any users ;)
21:24:44 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
21:25:01 <merijn> You need critical mass for libraries and you need libraries for users
21:25:15 <[exa]> Evil me: Clean isn't popular because it didn't target the web. Realistic me: Well, yeah
21:25:29 ski . o O ( "Recently, researchers have experimented with new I/O combinators based on monads." -- <https://web.archive.org/web/20140303101716/http://www-fp.dcs.st-and.ac.uk/%7Ekh/papers/io-tutorial/io-tutorial.html> )
21:25:56 <merijn> Every year at the NL-FP day we still have the mandatory one or two Clean talks :p
21:26:28 <dsal> How many days of dirty talks?
21:26:52 <ski> merijn : ah, sorry. i didn't mean that to sound like being an opposing point to what you said, just as a general sentiment response to triteraflops
21:28:11 × geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
21:28:15 × coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:28:45 × gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
21:28:50 Tario joins (~Tario@201.192.165.173)
21:29:57 conal joins (~conal@64.71.133.70)
21:32:09 <ski> Clean has an interesting integration of `Dynamic' with pattern-matching, allowing them to trivially implement e.g. `dynApply'; <https://clean.cs.ru.nl/download/html_report/CleanRep.2.2_10.htm#_Toc311798086>
21:32:54 <monochrom> As a general heuristic, if you language doesn't use C syntax, it won't be popular.
21:33:15 <merijn> monochrom: SQL? :P
21:33:50 <monochrom> Hey, that's a great idea, perhaps the no-sql movement started with hating SQL syntax!
21:33:52 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:35:05 jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb)
21:35:09 × ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->)
21:35:13 <monochrom> Also it's just a heuristic. Python deviates partly from C syntax, and it's still popular. Although, Python probably shows you the largest extent of deviation you can afford.
21:36:17 <monochrom> Namely, if you still stick to the "f(x,y,z)" syntax, if you only replace {;} by layout, you will be OK.
21:36:53 <monochrom> Whereas Lisp's "(f x y z)" and SML's "f x y z" prove to be going too far.
21:39:51 invaser joins (~Thunderbi@31.148.23.125)
21:41:34 <ski> perhaps we just have to draw it out more
21:41:49 × Volt_ quits (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) (Quit: )
21:41:54 alx741 joins (~alx741@186.178.110.117)
21:43:38 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
21:44:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
21:44:33 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
21:45:39 p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
21:46:53 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
21:49:40 p-core1 joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
21:49:56 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Client Quit)
21:49:56 p-core1 is now known as p-core
21:53:34 × Franciman quits (~francesco@host-79-27-199-238.retail.telecomitalia.it) (Quit: Leaving)
21:54:15 <c_wraith> I think this is why codeworld doesn't expose the Prelude at all. It provides a set of base functionality that uncurries everything so that people don't have to not use commas
21:57:10 <ski> :(
22:00:18 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 272 seconds)
22:01:34 <monochrom> Haha this is great. My wild guess theory is right on.
22:02:17 <monochrom> Perhaps I really understand human nature! Long live cynicism!
22:05:02 Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
22:07:49 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
22:08:13 × dfaiv quits (44f9e9e4@68-249-233-228.lightspeed.okcbok.sbcglobal.net) (Remote host closed the connection)
22:09:30 hackage timerep 2.0.1.0 - Parse and display time according to some RFCs (RFC3339, RFC2822, RFC822) https://hackage.haskell.org/package/timerep-2.0.1.0 (koral)
22:10:32 × knupfer quits (~Thunderbi@200116b82ce1e10028bb8f758d5216f6.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
22:10:38 <maerwald> I wonder how long the haskell survey results take
22:10:48 <maerwald> it's been a week since it's closed I think
22:12:55 Tops2 joins (~Tobias@dyndsl-095-033-092-149.ewe-ip-backbone.de)
22:16:32 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:16:46 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 272 seconds)
22:17:33 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:18:04 × jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
22:19:14 inkbottle joins (~inkbottle@aaubervilliers-654-1-104-55.w86-212.abo.wanadoo.fr)
22:19:48 GuerrillaMonkey joins (~Jeanne-Ka@66.115.189.194)
22:20:40 × jneira quits (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Ping timeout: 256 seconds)
22:21:40 × Jeanne-Kamikaze quits (~Jeanne-Ka@66.115.189.174) (Ping timeout: 246 seconds)
22:22:11 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
22:26:32 × GuerrillaMonkey quits (~Jeanne-Ka@66.115.189.194) (Ping timeout: 265 seconds)
22:28:16 × inkbottle quits (~inkbottle@aaubervilliers-654-1-104-55.w86-212.abo.wanadoo.fr) (Ping timeout: 240 seconds)
22:28:57 × mrchampion quits (~mrchampio@216-26-218-246.dynamic.tbaytel.net) (Ping timeout: 265 seconds)
22:29:24 × chaosmasttter quits (~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
22:31:40 × xerox_ quits (~xerox@unaffiliated/xerox) (Quit: leaving)
22:34:27 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
22:34:59 mrchampion joins (~mrchampio@216-26-218-246.dynamic.tbaytel.net)
22:36:02 cheater joins (~user@unaffiliated/cheater)
22:36:17 × alp quits (~alp@2a01:e0a:58b:4920:c8af:eb98:65bc:27e4) (Ping timeout: 272 seconds)
22:37:22 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:38:56 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
22:40:28 cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it)
22:41:00 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
22:44:44 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:45:37 <texasmynsted> sounds like somebody needs to write a haskell program to tabulate the results
22:48:27 × sondr3_ quits (~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving)
22:49:00 conal joins (~conal@64.71.133.70)
22:50:22 × Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Quit: Leaving)
22:50:23 avoandmayo joins (~textual@122-58-109-105-adsl.sparkbb.co.nz)
22:50:41 redmp joins (~redmp@mobile-166-137-178-147.mycingular.net)
22:51:08 <redmp> is there a way to define a relation on types, such that i can query either side and get the other?
22:51:16 Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
22:51:40 <redmp> i'm contemplating storing a list of pairs of types and then defining lookup for the left item and lookup for the right item..
22:53:05 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:53:40 <texasmynsted> redmp: How would you use this? I am curious
22:54:02 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 260 seconds)
22:55:29 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds)
22:55:30 <texasmynsted> You could make a list of two-item ring buffers.
22:56:21 <texasmynsted> hmm. maybe that is not helpful. I really do not know what you want to do
22:56:30 hackage rowdy-yesod 0.0.1.1 - An EDSL for web application routes. https://hackage.haskell.org/package/rowdy-yesod-0.0.1.1 (parsonsmatt)
22:56:49 <ski> redmp : how about a multi-parameter type class (possibly with functional dependencies) ?
22:56:53 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
22:57:32 × Alleria_ quits (~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137) (Ping timeout: 260 seconds)
22:58:06 <redmp> ah, sorry, i was unclear.. the querying is a type level thing. I'm going to be querying at compile time
22:58:20 Alleria_ joins (~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137)
22:59:06 <ski> so do you think MPTCs, perhaps with FDs, could be helpful ?
22:59:37 <redmp> it might be? i'm not usually very successful when i try to use MPTCs
22:59:59 <redmp> i was thinking of a type level list and a type level lookup function because i think of that as being simpler
23:00:05 <redmp> MPTC would be nice because it's open
23:00:42 × cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Quit: cosimone)
23:00:59 × zebrag quits (~inkbottle@aaubervilliers-654-1-104-55.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
23:02:38 × tremon quits (~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
23:03:50 <ski> i guess it depnds on how you're intending to use it, as texasmynsted said
23:04:20 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
23:05:12 zebrag joins (~inkbottle@aaubervilliers-654-1-104-55.w86-212.abo.wanadoo.fr)
23:06:07 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 246 seconds)
23:06:48 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
23:06:56 Varis joins (~Tadas@unaffiliated/varis)
23:07:06 <redmp> err, i'm trying to represent a relation between types as a type family so that i can type some functions in terms of each domain from the other.. ie. FooOf BarType would give me the FooType from the Foo domain which corresponds to BarType... and then i could also say BarOf FooType to get back
23:08:04 × vancz quits (~vancz@unaffiliated/vancz) (Ping timeout: 272 seconds)
23:08:04 × pie_ quits (~pie_bnc]@unaffiliated/pie-/x-0787662) (Ping timeout: 272 seconds)
23:08:16 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds)
23:09:15 pie_ joins (~pie_bnc]@unaffiliated/pie-/x-0787662)
23:09:15 vancz joins (~vancz@unaffiliated/vancz)
23:09:48 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
23:12:04 × unlink_ quits (~unlink2@p57b85d53.dip0.t-ipconnect.de) (Remote host closed the connection)
23:12:19 unlink_ joins (~unlink2@p200300ebcf179a00278fd81c0246cc89.dip0.t-ipconnect.de)
23:12:35 <redmp> and then i can say things like `toFoo :: a -> FooOf a` and `fromFoo :: FooOf a -> a` or something
23:12:55 <redmp> those would have to be typeclass methods, i think
23:16:00 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
23:17:13 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:17:16 sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
23:18:17 × Tops2 quits (~Tobias@dyndsl-095-033-092-149.ewe-ip-backbone.de) (Read error: Connection reset by peer)
23:18:23 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
23:19:29 dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e)
23:19:44 <ski> redmp : hm, you could have injectivity to ensure it's invertible. however, i wonder if there's a nice way to ensure that `FooOf' is the inverse of `BarOf'
23:20:16 <ski> yea. you're probably looking at associated type families, then
23:20:48 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
23:21:02 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Read error: Connection reset by peer)
23:21:53 conal joins (~conal@64.71.133.70)
23:22:26 × conal quits (~conal@64.71.133.70) (Client Quit)
23:24:09 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
23:27:24 × aj2 quits (~aj@193.56.252.12) (Remote host closed the connection)
23:27:29 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
23:28:45 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
23:29:09 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
23:30:25 <ski> class (a ~ FooOf (BarOf a),Bar (BarOf a)) => Foo a where type BarOf a = b | b -> a; toBar :: a -> BarOf a; fromBar :: BarOf a -> a; toBar = fromFoo; fromBar = toFoo
23:30:28 <ski> class (b ~ BarOf (FooOf b),Foo (FooOf b)) => Bar b where type FooOf b = a | a -> b; toFoo :: b -> FooOf b; fromFoo :: FooOf b -> b; toFoo = fromBar; fromFoo = toBar
23:30:47 <ski> redmp : i wonder whether something like that could be helpful ?
23:31:12 × czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection)
23:32:39 <redmp> https://termbin.com/5l4q
23:32:41 conal joins (~conal@64.71.133.70)
23:32:43 xerox_ joins (~xerox@unaffiliated/xerox)
23:32:59 <redmp> ^ this implements the list approach that i described
23:33:09 <redmp> taking a look at your class based approach now..
23:34:24 <redmp> oh wow, ski, those classes convey the whole embedding/extraction thing
23:38:41 <ski> (i used `TypeFamilies',`TypeFamilyDependencies',`FlexibleContexts',`UndecidableSuperClasses')
23:39:19 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
23:39:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:39:35 hekkaidekapus[ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
23:40:01 × Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Quit: Leaving)
23:40:45 sfvm joins (~sfvm@37.228.215.148)
23:41:23 × hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
23:44:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
23:44:50 × yahb quits (xsbot@haskell/bot/yahb) (Ping timeout: 265 seconds)
23:44:58 × sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 246 seconds)
23:45:15 yahb joins (xsbot@haskell/bot/yahb)
23:47:17 fimp joins (~fimp@217.151.98.168)
23:49:06 alp joins (~alp@2a01:e0a:58b:4920:1cfa:109c:d72:5dd)
23:51:23 × et09 quits (~et09@unaffiliated/endolphin) (Remote host closed the connection)
23:54:25 da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.161.165)
23:57:11 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)

All times are in UTC on 2020-11-21.