2021/12/13

2021-12-13 00:00:15 +0100mud(~mud@user/kadoban)
2021-12-13 00:00:33 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 00:00:47 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection)
2021-12-13 00:02:54 +0100Axman6(~Axman6@user/axman6)
2021-12-13 00:05:14 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-13 00:05:25 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-12-13 00:06:26 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Client Quit)
2021-12-13 00:07:02 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-13 00:13:36 +0100ph88(~ph88@2a02:8109:9e00:71d0:943d:5b05:e9f7:79b5) (Quit: Leaving)
2021-12-13 00:14:14 +0100alx741(~alx741@181.199.42.79)
2021-12-13 00:16:07 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 00:19:13 +0100alx741(~alx741@181.199.42.79) (Read error: Connection reset by peer)
2021-12-13 00:21:19 +0100earendel(uid498179@user/earendel) (Quit: Connection closed for inactivity)
2021-12-13 00:22:40 +0100chomwitt(~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
2021-12-13 00:25:02 +0100mmhat(~mmh@55d44624.access.ecotel.net) (Quit: WeeChat 3.3)
2021-12-13 00:25:05 +0100machinedgod(~machinedg@24.105.81.50)
2021-12-13 00:26:39 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Remote host closed the connection)
2021-12-13 00:32:36 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 00:33:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 00:34:18 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Ping timeout: 260 seconds)
2021-12-13 00:34:46 +0100 <smichel17[m]> Does anyone know how to get GHC to spit out all of the options it's being called with? I'm using stack, but would like to know what the actual ghc command that runs in the end is.
2021-12-13 00:35:42 +0100 <hololeap> that sounds like it should be a debug option for stack (I'm not a stack user)
2021-12-13 00:35:44 +0100 <geekosaur> shouldn't stack -v show you that?
2021-12-13 00:36:32 +0100alx741(~alx741@157.100.93.160)
2021-12-13 00:36:34 +0100 <smichel17[m]> Ah, maybe. `stack -v` spits out *a lot*, so I was hoping there was a quicker way to get to the point, but I'll take a look
2021-12-13 00:37:05 +0100 <geekosaur> usually there isn't, it's up to the invoker to show how it's invoking
2021-12-13 00:39:53 +0100 <sm> verbosity control is not great with stack/cabal/ghc
2021-12-13 00:40:22 +0100 <sm> you get too much, or too little
2021-12-13 00:40:36 +0100slice(~slice@user/slice) (Quit: zzz)
2021-12-13 00:42:32 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-13 00:47:01 +0100Jing(~hedgehog@2604:a840:3::1001) (Remote host closed the connection)
2021-12-13 00:47:24 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 00:47:55 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-13 00:49:30 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Remote host closed the connection)
2021-12-13 00:50:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 00:50:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 00:50:55 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 00:51:39 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-13 00:52:17 +0100shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-12-13 00:53:19 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Remote host closed the connection)
2021-12-13 00:54:11 +0100 <smichel17[m]> Thanks, it was there, after some digging
2021-12-13 00:54:13 +0100jinsun__(~quassel@user/jinsun)
2021-12-13 00:55:51 +0100SoF3(~skius@user/skius)
2021-12-13 00:55:54 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-12-13 00:55:59 +0100shailangsa(~shailangs@host86-186-127-128.range86-186.btcentralplus.com) (Ping timeout: 252 seconds)
2021-12-13 00:56:14 +0100SoF(~skius@user/skius) (Killed (NickServ (GHOST command used by SoF3)))
2021-12-13 00:56:14 +0100SoF3SoF
2021-12-13 00:56:51 +0100ts2(~ts@46.101.20.9) (Ping timeout: 250 seconds)
2021-12-13 00:56:56 +0100dcoutts_(~duncan@71.78.6.51.dyn.plus.net)
2021-12-13 00:57:05 +0100jinsun(~quassel@user/jinsun) (Ping timeout: 252 seconds)
2021-12-13 00:57:05 +0100dcoutts(~duncan@71.78.6.51.dyn.plus.net) (Ping timeout: 252 seconds)
2021-12-13 00:57:09 +0100ts2(~ts@46.101.20.9)
2021-12-13 00:57:47 +0100max22-(~maxime@2a01cb0883359800ce4fb8a82cc4438c.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-12-13 00:59:45 +0100DNH(~DNH@2a02:8108:1100:16d8:fcc8:d2a0:3b64:5912) (Quit: Textual IRC Client: www.textualapp.com)
2021-12-13 01:02:49 +0100 <koz> Can I specify that a test-suite depends on a library, but not its tests?
2021-12-13 01:02:56 +0100 <koz> I'm getting cyclic dependency errors in the solver.
2021-12-13 01:04:26 +0100 <hololeap> that's weird, I would think that what you want would be the default
2021-12-13 01:04:44 +0100 <koz> hololeap: Well, it's not, sadly.
2021-12-13 01:04:51 +0100 <hololeap> this is cabal?
2021-12-13 01:04:57 +0100 <koz> Yup.
2021-12-13 01:05:13 +0100alx741(~alx741@157.100.93.160)
2021-12-13 01:07:11 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-13 01:07:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-13 01:07:58 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-12-13 01:09:57 +0100averell(~averell@user/averell) (Remote host closed the connection)
2021-12-13 01:13:28 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2021-12-13 01:13:31 +0100 <jackdk> It could be that the package is set up funny, like all the build-depends are in a common stanza or something. I know the nixpkgs haskell infrastructure disables checks on a bunch of libraries to break cycles
2021-12-13 01:13:50 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2021-12-13 01:13:53 +0100acidjnk(~acidjnk@p200300d0c7271e62c4e0968b1a8deb03.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-12-13 01:15:44 +0100 <koz> jackdk: Not as far as I can tell.
2021-12-13 01:16:33 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 01:16:46 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 01:17:14 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 256 seconds)
2021-12-13 01:19:50 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-13 01:20:01 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com)
2021-12-13 01:20:04 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 01:20:11 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-13 01:20:55 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Ping timeout: 252 seconds)
2021-12-13 01:21:10 +0100aeka`(~aeka@2606:9580:100:c:8757:8ee:ec9c:991c)
2021-12-13 01:22:01 +0100slice(~slice@user/slice)
2021-12-13 01:22:29 +0100aeka(~aeka@2606:6080:1002:9:ffc4:b9c1:20ad:82f9) (Ping timeout: 268 seconds)
2021-12-13 01:25:36 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 01:27:26 +0100altern(~Sergii@altern.corbina.com.ua)
2021-12-13 01:27:53 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-12-13 01:34:21 +0100 <pfurla> how can I use language pragmas in a .lhs file?
2021-12-13 01:34:47 +0100alx741(~alx741@157.100.93.160)
2021-12-13 01:35:15 +0100 <jackdk> `{-# LANGUAGE DataKinds #-}` or whatever at teh very top of the file
2021-12-13 01:36:03 +0100 <geekosaur> with .lhs I'd expect it to work the same way as anything else in a .lhs, precede with > or wrap in \begin{code} … \end{code}
2021-12-13 01:36:26 +0100 <pfurla> keep saying ``unlit' failed in phase `Literate pre-processor'. (Exit code: 1)` for {-# LANGUAGE LambdaCase #-}
2021-12-13 01:36:35 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-13 01:36:42 +0100 <geekosaur> I don't think it has to be the absolute first thing in the file because unlit runs before parsing]
2021-12-13 01:36:56 +0100 <pfurla> geekosaur same thing with >
2021-12-13 01:38:43 +0100 <monochrom> worksforme cannotreproduce
2021-12-13 01:38:51 +0100 <geekosaur> same
2021-12-13 01:38:56 +0100 <pfurla> interesting
2021-12-13 01:39:10 +0100 <geekosaur> @where paste
2021-12-13 01:39:10 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2021-12-13 01:39:16 +0100 <pfurla> I forgot a > in the last line of the source and it was causing the previous error
2021-12-13 01:42:50 +0100 <pfurla> yeah, ^ was the issue, thanks guys
2021-12-13 01:44:04 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com)
2021-12-13 01:45:19 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 268 seconds)
2021-12-13 01:50:42 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 01:50:53 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 01:54:55 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-12-13 01:56:43 +0100meinside(uid24933@id-24933.helmsley.irccloud.com)
2021-12-13 01:58:05 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 01:58:31 +0100machinedgod(~machinedg@24.105.81.50)
2021-12-13 02:08:18 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-13 02:08:32 +0100Stotteren(~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) (Remote host closed the connection)
2021-12-13 02:09:23 +0100alx741(~alx741@157.100.93.160)
2021-12-13 02:09:42 +0100img(~img@user/img)
2021-12-13 02:10:06 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 02:10:43 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com)
2021-12-13 02:11:10 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 02:12:23 +0100shailangsa_(~shailangs@host86-186-127-128.range86-186.btcentralplus.com) ()
2021-12-13 02:13:41 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-13 02:16:17 +0100altern(~Sergii@altern.corbina.com.ua) (Ping timeout: 252 seconds)
2021-12-13 02:17:04 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 02:18:08 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Read error: Connection reset by peer)
2021-12-13 02:18:35 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-13 02:19:57 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds)
2021-12-13 02:20:44 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 02:21:36 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 02:25:32 +0100Guest48(~Guest48@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 02:26:12 +0100 <Guest48> Hey Im trying to make a function that creates a pattern like this
2021-12-13 02:27:13 +0100 <Guest48> https://imgur.com/a/lMho8qo
2021-12-13 02:27:17 +0100 <Guest48> so it takes 3 values
2021-12-13 02:27:19 +0100 <Guest48> x y z
2021-12-13 02:27:55 +0100zebrag(~chris@user/zebrag)
2021-12-13 02:27:56 +0100 <Guest48> x is the the height y is the width and z is the steps
2021-12-13 02:28:05 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-13 02:28:13 +0100 <Guest48> My code right now looks like this
2021-12-13 02:28:20 +0100 <Guest48> steps :: Int -> Int -> String
2021-12-13 02:28:21 +0100 <Guest48> steps n m = putStr (unlines (replicate m (concat(replicate n " " ++ replicate n "*"))))
2021-12-13 02:28:57 +0100 <Guest48> so this creates the steps and the repetition
2021-12-13 02:29:49 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3)
2021-12-13 02:29:54 +0100 <Guest48> but in the picture you can see if I specify n steps it should duplicate n times on a new line all the while the width is x+x every loop
2021-12-13 02:30:47 +0100 <Guest48> I was wondering how do I call my functions n times whilst updating the doubling n
2021-12-13 02:30:55 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 02:30:57 +0100 <Guest48> if anyone could help it would be highly appreciated
2021-12-13 02:31:09 +0100 <nosewings> What do you mean by "steps"?
2021-12-13 02:31:35 +0100 <Guest48> so in the picture the two lines are repeated 4 times downwards
2021-12-13 02:31:42 +0100 <Guest48> then the pattern is reversed
2021-12-13 02:31:52 +0100 <Guest48> forget about the reversed part
2021-12-13 02:32:16 +0100 <Guest48> but the 2 lines repeat 4 times whilst the number of spaces + number of astrexis double
2021-12-13 02:32:52 +0100 <nosewings> So what values of x,y,z would generate the image you posted?
2021-12-13 02:33:05 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-12-13 02:33:46 +0100 <Guest48> so 2 3 4. 2 being the height, 3 being the width and 4 being steps
2021-12-13 02:34:12 +0100 <Guest48> steps x y takes the height and the width
2021-12-13 02:34:15 +0100 <Guest48> but im struggling on the steps
2021-12-13 02:34:31 +0100earendel(uid498179@user/earendel)
2021-12-13 02:34:32 +0100 <Guest48> all I would have to do is call steps 4 times and double the x every time its called
2021-12-13 02:35:06 +0100alx741(~alx741@157.100.93.160)
2021-12-13 02:35:08 +0100 <Guest48> sorry nosewings does that make sense
2021-12-13 02:36:05 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 252 seconds)
2021-12-13 02:36:12 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net) (Remote host closed the connection)
2021-12-13 02:37:55 +0100Jing(~hedgehog@2604:a840:3::1001) (Remote host closed the connection)
2021-12-13 02:38:46 +0100 <nosewings> Sure, but your type signature for steps doesn't seem right
2021-12-13 02:38:53 +0100 <nosewings> It should be steps :: Int -> Int -> IO ()
2021-12-13 02:39:58 +0100 <Guest48> yeah your right
2021-12-13 02:40:04 +0100 <Guest48> I changed that whilst testing something out
2021-12-13 02:41:31 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-13 02:42:38 +0100 <Guest48> nosewings you think you know how to do it?
2021-12-13 02:43:23 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-13 02:45:34 +0100 <nosewings> OK, so is the idea just that you want to do the same thing some number of times?
2021-12-13 02:45:46 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 02:47:01 +0100 <Guest48> yep
2021-12-13 02:47:23 +0100 <Guest48> nosewings but I need to update the parameters as well
2021-12-13 02:47:32 +0100 <nosewings> OK, there are functions in the standard library for that
2021-12-13 02:47:41 +0100 <nosewings> In this case, replicateM_ will do the job
2021-12-13 02:47:50 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 02:48:23 +0100 <Guest48> is there a way to do without using standard librarys?
2021-12-13 02:48:27 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788)
2021-12-13 02:48:48 +0100 <Guest48> wait is it in built into haskell?
2021-12-13 02:49:14 +0100 <nosewings> It's not a primitive; it's written in regular haskell
2021-12-13 02:49:35 +0100 <Guest48> yh I can only use primitive
2021-12-13 02:49:52 +0100 <nosewings> Ah, okay
2021-12-13 02:50:44 +0100 <nosewings> Hm, but you're also using unlines, replicate, concat, ++; these are also not primitives
2021-12-13 02:51:10 +0100 <nosewings> Anyway, the way to do this is with recursion
2021-12-13 02:51:20 +0100 <Guest48> sorry im not allowed to import anything
2021-12-13 02:51:22 +0100 <Guest48> thats the base rule
2021-12-13 02:51:46 +0100 <nosewings> Oh, okay
2021-12-13 02:51:50 +0100 <Guest48> if replicateM is like unlines/ replicate/concat then Im allowed to use it
2021-12-13 02:52:06 +0100 <nosewings> It's not in the Prelude, so you can't use it
2021-12-13 02:52:11 +0100 <Guest48> ah right
2021-12-13 02:52:13 +0100 <Guest48> understood
2021-12-13 02:52:19 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 250 seconds)
2021-12-13 02:52:21 +0100shailangsa(~shailangs@host86-186-127-128.range86-186.btcentralplus.com)
2021-12-13 02:52:25 +0100 <Guest48> how would you do this with recursion
2021-12-13 02:52:39 +0100 <nosewings> Actually, I don't think you even have to
2021-12-13 02:52:48 +0100 <Guest48> even better xp
2021-12-13 02:52:53 +0100 <nosewings> If you remove the `putStrLn`, you'll get a function that returns a String
2021-12-13 02:53:09 +0100 <nosewings> Then you want to print z copies of that string
2021-12-13 02:53:51 +0100 <Guest48> so would you use replicate again?
2021-12-13 02:54:29 +0100 <nosewings> Yeah, and then you'll have to concat the resulting string
2021-12-13 02:54:38 +0100 <nosewings> Er, resulting list
2021-12-13 02:54:45 +0100 <nosewings> Might have to be careful with newlines
2021-12-13 02:55:19 +0100 <Guest48> yh I tried that with replicate and concat but it gave me extra new lines
2021-12-13 02:55:27 +0100 <Guest48> because then I had to do unlines again
2021-12-13 02:56:47 +0100 <nosewings> Oh, but do you want to increase the number of asterisks at each step?
2021-12-13 02:57:10 +0100 <Guest48> yep
2021-12-13 02:57:17 +0100 <Guest48> so double them basically
2021-12-13 02:57:21 +0100 <Guest48> and double the amount of spaces
2021-12-13 02:57:49 +0100 <Guest48> not double
2021-12-13 02:57:53 +0100 <Guest48> x+x
2021-12-13 02:58:42 +0100 <nosewings> Okay, so you do have to use recursion
2021-12-13 02:59:23 +0100 <Guest48> no problem
2021-12-13 02:59:49 +0100 <nosewings> (Might be a fancy way to do it without it, but)
2021-12-13 03:00:06 +0100 <nosewings> The other trick is that you need to use some sort of helper function
2021-12-13 03:00:18 +0100 <Guest48> nah recursion is fine
2021-12-13 03:00:20 +0100 <nosewings> Oh, or maybe you don't
2021-12-13 03:00:30 +0100 <nosewings> So it will look something like
2021-12-13 03:00:40 +0100 <nosewings> steps m n 0 = ...
2021-12-13 03:00:44 +0100 <nosewings> steps m n p = ...
2021-12-13 03:01:06 +0100 <nosewings> Where the first one is the case where you have 0 steps left, and the second one is where you still have some steps left to go
2021-12-13 03:02:27 +0100 <Guest48> m has to increase as well
2021-12-13 03:02:40 +0100 <nosewings> Right, so you call the function again with a new value of m
2021-12-13 03:03:17 +0100 <Guest48> so steps m n 0, step m+m n 0, step m+m+m n p etc?
2021-12-13 03:03:38 +0100xff0x(~xff0x@2001:1a81:5203:4200:40b7:e822:93c8:fd81) (Ping timeout: 268 seconds)
2021-12-13 03:03:45 +0100alx741(~alx741@157.100.93.160)
2021-12-13 03:04:05 +0100 <nosewings> The sequence of recursive calls will look like steps m n p, steps m (2*m) (p - 1), steps m (3*m) (p - 2) ...
2021-12-13 03:04:07 +0100xff0x(~xff0x@port-92-195-24-10.dynamic.as20676.net)
2021-12-13 03:04:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 03:04:49 +0100 <Guest48> okk
2021-12-13 03:04:51 +0100 <Guest48> that makes sense
2021-12-13 03:05:00 +0100 <nosewings> i.e., `steps m n p` should end up calling itself like `steps (2*m) (n+m) (p - 1)
2021-12-13 03:05:15 +0100 <nosewings> You probably will need a helper function too, because you need to remember what the original value of m was
2021-12-13 03:05:24 +0100 <Guest48> got it
2021-12-13 03:05:55 +0100 <Guest48> so what would the helper function do
2021-12-13 03:06:33 +0100 <nosewings> The helper function would do basically all of the work
2021-12-13 03:07:22 +0100 <nosewings> Your function would end up looking something like steps m n p = steps' m n p where steps' x y z = ...
2021-12-13 03:07:37 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-12-13 03:08:09 +0100 <nosewings> And then steps' calls itself recursively like `steps' (x + m) (y + m) (p - 1)
2021-12-13 03:08:46 +0100 <Guest48> okk let me try and write this down, im new to haskell so im not entirely sure how to write this but Ill see
2021-12-13 03:08:50 +0100 <nosewings> The point is that this lets you remember what the original value of `m` was, so you always increase by the original amount instead of doubling
2021-12-13 03:09:03 +0100 <Guest48> i see
2021-12-13 03:09:24 +0100 <Guest48> whats the base case for the recursion?
2021-12-13 03:11:07 +0100 <nosewings> Something like `steps' x y 0 = ""`
2021-12-13 03:11:43 +0100 <Guest48> got it
2021-12-13 03:12:38 +0100 <nosewings> And then you append the strings at every step
2021-12-13 03:13:17 +0100 <Guest48> in the helper function or the main steps function
2021-12-13 03:13:37 +0100 <nosewings> In the helper function, because `steps` doesn't do anything except call the helper function
2021-12-13 03:13:53 +0100 <nosewings> Oh, look up where-syntax if you're unfamiliar with that keyword
2021-12-13 03:14:16 +0100 <Guest48> got it will do
2021-12-13 03:16:21 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 03:19:13 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 03:20:39 +0100Jing(~hedgehog@2604:a840:3::1001) (Remote host closed the connection)
2021-12-13 03:21:12 +0100 <snake> my haskell is spinning i wonder how long it will take to finish day 6 like this.. any suggestions? https://dpaste.com/7J4ZKM9FW
2021-12-13 03:23:14 +0100 <glguy> snake: you can probably finish part 1 like that, but not part 2
2021-12-13 03:23:40 +0100 <snake> yeah lol pt 1 was fast, but pt 2 is just... spinning away
2021-12-13 03:24:10 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 256 seconds)
2021-12-13 03:24:57 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-13 03:33:24 +0100Guest4846(~Guest48@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 03:34:29 +0100alx741(~alx741@157.100.93.160)
2021-12-13 03:34:35 +0100 <dsal> snake: 256 is a bigger number than 80. :)
2021-12-13 03:34:51 +0100Guest48(~Guest48@wireless-student-pt3-240-232.lut.ac.uk) (Ping timeout: 256 seconds)
2021-12-13 03:35:05 +0100 <snake> mhm, yeah im a total newbie with this haskell / functional stuff
2021-12-13 03:35:22 +0100 <dsal> It's not haskell/functional. This is one of those where the examples gives you a clue.
2021-12-13 03:35:34 +0100 <dsal> For the small example, you'd have a list of 26,984,457,539 fish.
2021-12-13 03:36:05 +0100 <snake> o
2021-12-13 03:36:44 +0100 <dsal> For the 255th run, you'd need to traverse a list about that big and do stuff to each element, including making new elements.
2021-12-13 03:37:20 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 03:37:44 +0100 <glguy> We haven't had anything this year that will be particular hard just as a consequence of using Haskell
2021-12-13 03:37:51 +0100 <snake> oh i guess i could just count the newfish
2021-12-13 03:38:02 +0100 <snake> wait AAAH
2021-12-13 03:38:03 +0100 <snake> idk
2021-12-13 03:38:28 +0100 <dsal> I managed to make something really hard by trying to use ST Arrays and having type inference be able to keep up.
2021-12-13 03:38:35 +0100 <jackdk> Why does `transformers` package have an AccumT and a CPS WriterT? Is there a difference?
2021-12-13 03:38:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-12-13 03:38:51 +0100 <snake> maybe i can use like a count for each fish if they have a synchronized time
2021-12-13 03:38:57 +0100 <dsal> It's pretty weird. I'll have code that works just fine, and then I'll add a newSTRef and it'll suddenly have no idea what these arrays are.
2021-12-13 03:41:44 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-13 03:43:09 +0100spoofer(~spoofer@64.185.111.205)
2021-12-13 03:45:14 +0100 <glguy> dsal: which problem had you pull out mutable arrays?
2021-12-13 03:45:39 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-13 03:45:39 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 03:46:16 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-12-13 03:47:30 +0100 <Guest4846> 'steps :: Int -> Int -> Int -> IO ()
2021-12-13 03:47:31 +0100 <Guest4846> steps m n p = steps` m n p
2021-12-13 03:47:31 +0100 <Guest4846>   where
2021-12-13 03:47:32 +0100 <Guest4846>     steps` x y 0 = ""
2021-12-13 03:47:32 +0100 <Guest4846>     steps` x y z = steps` (x+n) n (p-1)
2021-12-13 03:47:33 +0100 <Guest4846>     steps` x y z = (unlines (replicate y (concat(replicate x " " ++ replicate y "*"))))
2021-12-13 03:47:33 +0100 <Guest4846> '
2021-12-13 03:47:46 +0100 <Guest4846> im getting some sort of parse error on this code? anyone know why
2021-12-13 03:48:15 +0100 <hololeap> jackdk: AccumT is like a more powerful WriterT or a restricted StateT. It threads state like StateT, so you can `look` at the current state, but it only lets you mappend using `add`
2021-12-13 03:48:36 +0100 <jackdk> hololeap: ah, missed the read-side bit
2021-12-13 03:49:02 +0100 <hololeap> it's fairly useful although it lacks a lot of the mtl instances
2021-12-13 03:49:59 +0100 <jackdk> yeah I'm trying to get a new transformer for amazonka right at the moment - I have "lift MonadFoo through AmazonkaT" but not "lift MonadAmazonka through FooT"
2021-12-13 03:50:17 +0100 <dsal> glguy: I was trying it on day 11. It was… a little faster.
2021-12-13 03:50:23 +0100 <dsal> So much more code.
2021-12-13 03:50:28 +0100 <jackdk> and the design is awkward because ResourceT is a poo sometimes
2021-12-13 03:50:55 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 03:51:31 +0100 <jackdk> the main problem is that if I make the class provide `askEnv :: m Amazonka.Env` then I induce MonadResource constraints everywhere and lose mocking
2021-12-13 03:51:46 +0100 <nosewings> Guest4846: the problem is the backtick
2021-12-13 03:52:06 +0100 <nosewings> Backticks are syntax in Haskell; you need to use an an apostrophe
2021-12-13 03:53:56 +0100 <jackdk> if I make a class with methods like `sendEither :: (AWSRequest req, MonadAmazonka m) => req -> m (Either Error (AWSResponse req))` then I have to give up either GeneralizedNewtypeDeriving or `paginate :: (AWSPager req, MonadAmazonka m) => req -> ConduitT () (AWSResponse req) m ()`
2021-12-13 03:55:18 +0100 <jackdk> if I make a class whose method is a homomorphism from `Free (Coyoneda AWSAction) a -> m a` (a la ocharles), then I have to give up `reconfigure`/`within`/`once`/`timeout` combinators which are "`bracket`-like"
2021-12-13 03:55:27 +0100 <jackdk> very interested in opinions on how best to solve this
2021-12-13 03:55:54 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 260 seconds)
2021-12-13 03:56:53 +0100 <jackdk> Axman6: you around?
2021-12-13 04:03:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 04:03:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 04:03:18 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 04:04:04 +0100alx741(~alx741@157.100.93.160)
2021-12-13 04:04:45 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-13 04:08:02 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2021-12-13 04:09:27 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Ping timeout: 250 seconds)
2021-12-13 04:10:27 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-12-13 04:10:27 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-12-13 04:10:27 +0100finn_elijaFinnElija
2021-12-13 04:13:34 +0100jkaye(~jkaye@2601:281:8300:7530:d9cd:95:6ff7:6ae4)
2021-12-13 04:15:02 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 260 seconds)
2021-12-13 04:15:28 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 04:15:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 04:15:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 04:15:56 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 04:16:17 +0100 <dibblego> I'm dad but not around.
2021-12-13 04:16:47 +0100 <jackdk> dibblego: got any opinions onthe problem outlined above?
2021-12-13 04:17:06 +0100 <dibblego> woah context shift
2021-12-13 04:17:07 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2021-12-13 04:17:23 +0100 <dibblego> I'm not good at those without working with actual code tbh
2021-12-13 04:18:43 +0100 <dibblego> oh yeah, I roughly know that problem... I typically give up GeneralizedNewtypeDeriving since the other contenders are too useful to give up
2021-12-13 04:21:47 +0100Jing(~hedgehog@2604:a840:3::1001) (Remote host closed the connection)
2021-12-13 04:22:16 +0100whatif(~user@2400:8902::f03c:92ff:fe60:98d8) (Quit: ERC (IRC client for Emacs 26.3))
2021-12-13 04:22:39 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 04:25:48 +0100Jing(~hedgehog@2604:a840:3::1001)
2021-12-13 04:27:38 +0100td_(~td@muedsl-82-207-238-103.citykom.de) (Ping timeout: 256 seconds)
2021-12-13 04:28:07 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 268 seconds)
2021-12-13 04:28:39 +0100jkaye(~jkaye@2601:281:8300:7530:d9cd:95:6ff7:6ae4) (Ping timeout: 252 seconds)
2021-12-13 04:29:16 +0100td_(~td@94.134.91.178)
2021-12-13 04:29:20 +0100shapr`(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-13 04:30:51 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-12-13 04:33:02 +0100retroid_(~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds)
2021-12-13 04:33:39 +0100alx741(~alx741@157.100.93.160)
2021-12-13 04:35:51 +0100retroid_(~retro@05412d78.skybroadband.com)
2021-12-13 04:36:05 +0100mbuf(~Shakthi@122.174.40.28)
2021-12-13 04:36:29 +0100 <jackdk> dibblego: here is the problem https://www.irccloud.com/pastebin/JWvF4erR/MTLClassDesign.hs
2021-12-13 04:37:54 +0100gustik(~gustik@2a01:c844:242f:ba20:72e:7030:46bf:1353) (Quit: Leaving)
2021-12-13 04:40:32 +0100 <dibblego> will look I promise, millions of things stacked
2021-12-13 04:42:35 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2021-12-13 04:43:48 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2021-12-13 04:45:25 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 04:45:46 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-12-13 04:48:07 +0100 <hololeap> jackdk: just a shot in the dark, but have you looked into using polysemy for this? personally, I haven't used it
2021-12-13 04:50:25 +0100 <jackdk> hololeap: in the effect system space I think you would need polysemy or something like it to write something like `within :: Region -> Eff effs a -> Eff effs a`. But the work codebase I'm upgrading is built on MTL and I want to do this right for MTL and opensource it, then worry about effect systems once things mature some more. polysemy needs plugins and isovector is on break from it, eff needs new ghc primops, etc.
2021-12-13 04:51:26 +0100 <jackdk> `freer-simple`, for example, is not powerful enough
2021-12-13 04:53:36 +0100see(~see@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 04:53:46 +0100see(~see@wireless-student-pt3-240-232.lut.ac.uk) (Client Quit)
2021-12-13 04:54:21 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 04:58:12 +0100 <EvanR> stupid question after reading the ocharles blog link on monad stacks and APIs: why can't the API calls have type IO something
2021-12-13 04:59:08 +0100 <EvanR> is it then impossible to use from an enterprise haskell monad stack technology
2021-12-13 04:59:22 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 260 seconds)
2021-12-13 05:00:00 +0100Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.)
2021-12-13 05:01:08 +0100Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
2021-12-13 05:01:52 +0100alx741(~alx741@157.100.93.160)
2021-12-13 05:02:16 +0100cjb(~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50)
2021-12-13 05:05:15 +0100bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-12-13 05:05:35 +0100Guest4846(~Guest48@wireless-student-pt3-240-232.lut.ac.uk) (Quit: Client closed)
2021-12-13 05:06:50 +0100Guest71(~Guest71@167.179.75.123)
2021-12-13 05:06:58 +0100 <Guest71> ?src ($)
2021-12-13 05:06:58 +0100 <lambdabot> f $ x = f x
2021-12-13 05:07:03 +0100 <EvanR> IO is untestable?
2021-12-13 05:07:21 +0100 <Guest71> ?src (%)
2021-12-13 05:07:21 +0100 <lambdabot> x % y = reduce (x * signum y) (abs y)
2021-12-13 05:09:36 +0100 <Guest71> Hi, all. Is my typing of `?src ($)` visible to all of the people here?
2021-12-13 05:09:43 +0100 <EvanR> yes
2021-12-13 05:09:56 +0100 <EvanR> you could privmsg lambdabot if you want
2021-12-13 05:10:06 +0100_xor(~xor@dsl-50-5-233-169.fuse.net) (Read error: Connection reset by peer)
2021-12-13 05:10:38 +0100 <Guest71> Ok, I wll try that. Thanks. I just need a way to check sources of commonly used functions.
2021-12-13 05:11:18 +0100 <dsal> Guest71: That's not the actual source. You can click on the source link from the docs.
2021-12-13 05:11:34 +0100 <dsal> The @src thing just gives you a simple model to consider.
2021-12-13 05:11:41 +0100 <dsal> (though sometimes it's right)
2021-12-13 05:11:42 +0100 <dsal> @src fix
2021-12-13 05:11:42 +0100 <lambdabot> fix f = let x = f x in x
2021-12-13 05:12:25 +0100 <Guest71> I wish this functionality will be built into GHCi
2021-12-13 05:12:47 +0100 <dsal> You can easily add things like this to ghci
2021-12-13 05:12:59 +0100 <Guest71> Really? How?
2021-12-13 05:13:33 +0100 <dsal> With :def settings in your .ghci
2021-12-13 05:14:02 +0100 <Guest71> Great, I will try that. Thanks a lot.
2021-12-13 05:14:33 +0100_xor(~xor@dsl-50-5-233-169.fuse.net)
2021-12-13 05:15:17 +0100 <dsal> Just clicking on "Source" while reading the docs is going to be the most reliable thing, though.
2021-12-13 05:15:54 +0100 <jackdk> EvanR: if you're just providing an API for direct calls, you often can (though a `MonadIO m` constraint) is often easier to use. But yeah, there's two parts AIUI: 1. the testability you mentioned; 2. having some kind of monadic context gives you a good place to stow things like API keys etc
2021-12-13 05:16:28 +0100 <Guest71> No, :def is used to define new commands, but I actually want a way to get definition of built in functions if available if GHCi, so I can find the info without leaving from my terminal.
2021-12-13 05:16:28 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 05:17:13 +0100 <EvanR> I see, open a long term session sort of thing
2021-12-13 05:18:43 +0100 <EvanR> Guest71, ghci generally doesn't have access to sources, and you can download the @src list if you want. But the real sources are also available
2021-12-13 05:19:05 +0100 <snake> my new screaming-fast solution for day 6: https://dpaste.com/7S4S87HV4
2021-12-13 05:19:24 +0100 <EvanR> oh man
2021-12-13 05:20:14 +0100 <EvanR> I implemented day 6 with 8 registers and now runtime is dominated by loading the program and printing out the answer :(
2021-12-13 05:20:40 +0100 <snake> registers?
2021-12-13 05:20:52 +0100 <dsal> snake: (f0:f1:f2:f3:f4:f5:f6:f7:f8:[]) is [f0, f1, f2, f3, f4, f5, f6, f7, f8]
2021-12-13 05:20:59 +0100 <EvanR> yeah, x86-64
2021-12-13 05:21:07 +0100 <snake> dsal, thanks :V
2021-12-13 05:22:10 +0100 <EvanR> each day can be computed with 1 add, if you do 9 days at a time, you can get away with no loop breaker checks xD
2021-12-13 05:22:23 +0100 <EvanR> if you do 99 at a time, even better, which loop unroll can help with
2021-12-13 05:22:33 +0100 <dsal> That's a neat way to do it, though it'll complain with -Wall. I saw someone else do that with a tuuple.
2021-12-13 05:22:35 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-12-13 05:24:04 +0100shapr`shapr
2021-12-13 05:26:03 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 05:28:25 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-13 05:31:06 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 256 seconds)
2021-12-13 05:33:16 +0100alx741(~alx741@157.100.93.160)
2021-12-13 05:34:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 05:37:38 +0100 <pfurla> snake: you can do `drop 9 . take 10 . iterate breedFishes $ [0..8]` instead of `breedFishes [0..8] 10`
2021-12-13 05:38:12 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-12-13 05:42:21 +0100Guest71(~Guest71@167.179.75.123) (Ping timeout: 256 seconds)
2021-12-13 05:43:05 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-12-13 05:44:57 +0100 <dsal> drop 9 . take 10 sounds like (!! 10)
2021-12-13 05:45:10 +0100 <dsal> > drop 9 . take 10 $ [1..]
2021-12-13 05:45:11 +0100 <lambdabot> [10]
2021-12-13 05:45:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 05:45:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 05:45:13 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 05:45:20 +0100 <dsal> > [1..] !! 10
2021-12-13 05:45:21 +0100 <EvanR> (:[]) . (!! 10) xD
2021-12-13 05:45:21 +0100 <lambdabot> 11
2021-12-13 05:45:39 +0100 <dsal> Off by one... but iterate is zero based.
2021-12-13 05:45:40 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 05:45:40 +0100 <EvanR> it's going to eat the 10 who is alarmed
2021-12-13 05:45:44 +0100 <pfurla> > [1.10] !! 11
2021-12-13 05:45:45 +0100 <lambdabot> *Exception: Prelude.!!: index too large
2021-12-13 05:45:54 +0100 <dsal> You won't get that with iterate.
2021-12-13 05:46:05 +0100 <pfurla> > drop 11 . take 10 [1..10]
2021-12-13 05:46:07 +0100 <lambdabot> error:
2021-12-13 05:46:07 +0100 <lambdabot> • Couldn't match expected type ‘a -> [a1]’ with actual type ‘[a0]’
2021-12-13 05:46:07 +0100 <lambdabot> • Possible cause: ‘take’ is applied to too many arguments
2021-12-13 05:46:09 +0100 <pfurla> > drop 11 . take 10 $ [1..10]
2021-12-13 05:46:10 +0100 <lambdabot> []
2021-12-13 05:47:02 +0100 <dsal> iterate produces an infinite list. you don't have to be careful to not run past the end of it
2021-12-13 05:47:13 +0100 <pfurla> oh, true
2021-12-13 05:47:46 +0100 <pfurla> but I generally ignore unsafe functions
2021-12-13 05:48:37 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 05:48:54 +0100 <pfurla> the problem I wonder if using drop. take. iterate instead of direct recursion will use much more memory
2021-12-13 05:50:07 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-12-13 05:50:50 +0100 <EvanR> this problem requires zero ram xD
2021-12-13 05:50:52 +0100 <dsal> Safe is relative. Sometimes you've gotta divide.
2021-12-13 05:51:04 +0100 <hololeap> snake: this is how I did it. similar, but using different tools: https://dpaste.com/EMAJUY2LG
2021-12-13 05:51:04 +0100 <dsal> EvanR: Is that a lot?
2021-12-13 05:52:03 +0100 <dsal> hololeap: what is MonoidalIntMap?
2021-12-13 05:53:07 +0100 <xerox> I'd wager an IntMap containing monoids
2021-12-13 05:53:21 +0100 <hololeap> it's a wrapper around IntMap that gives a different semigroup instance. it basically makes `unionWith (<>)` the semigroup instance
2021-12-13 05:53:36 +0100 <jackdk> why that was never the default instance is beyond me
2021-12-13 05:53:43 +0100 <dsal> oh cool. The default one is kind of unexpected.
2021-12-13 05:53:58 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 260 seconds)
2021-12-13 05:54:01 +0100 <dsal> I've written that bug a few times.
2021-12-13 05:54:11 +0100 <hololeap> @hackage monoidal-containers
2021-12-13 05:54:11 +0100 <lambdabot> https://hackage.haskell.org/package/monoidal-containers
2021-12-13 05:54:20 +0100 <dsal> Things shouldn't compile if they don't do what I want.
2021-12-13 05:54:34 +0100 <int-e> dsal: easy!
2021-12-13 05:54:53 +0100 <int-e> dsal: it only gets tricky when you expect some things to actually compile
2021-12-13 05:54:54 +0100 <dsal> hololeap: Thanks. I've needed that often.
2021-12-13 05:55:13 +0100 <dsal> int-e: I was doing some ST recently, so I stopped expecting things to compile.
2021-12-13 05:55:31 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com)
2021-12-13 05:55:38 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 05:57:46 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 05:59:11 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 06:00:18 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com)
2021-12-13 06:00:37 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-12-13 06:01:05 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-12-13 06:01:24 +0100deadmarshal(~deadmarsh@95.38.117.193)
2021-12-13 06:02:50 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 256 seconds)
2021-12-13 06:03:34 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3)
2021-12-13 06:03:46 +0100alx741(~alx741@157.100.93.160)
2021-12-13 06:04:54 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-13 06:09:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-12-13 06:15:55 +0100Jing_(~hedgehog@2604:a840:3::10c8)
2021-12-13 06:17:55 +0100Jing(~hedgehog@2604:a840:3::1001) (Ping timeout: 252 seconds)
2021-12-13 06:20:05 +0100 <int-e> c_wraith: after checking literally billions of initial configuration, https://paste.debian.net/1223190/ is the worst one I have, with 45174 steps before synchronizing. From what I've seen, finding one with 29734 after only 440k attempts was very lucky.
2021-12-13 06:20:16 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 06:21:03 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 06:21:13 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-12-13 06:23:10 +0100Guest48(~Guest48@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 06:23:29 +0100Guest48(~Guest48@wireless-student-pt3-240-232.lut.ac.uk) (Client Quit)
2021-12-13 06:29:27 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 06:34:02 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 240 seconds)
2021-12-13 06:34:08 +0100jinsun__jinsun
2021-12-13 06:34:57 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-12-13 06:35:23 +0100hololeap(~hololeap@user/hololeap)
2021-12-13 06:39:29 +0100alx741(~alx741@157.100.93.160)
2021-12-13 06:40:10 +0100turlando(~turlando@user/turlando) (Ping timeout: 260 seconds)
2021-12-13 06:40:17 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-12-13 06:40:17 +0100turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2021-12-13 06:40:17 +0100turlando(~turlando@user/turlando)
2021-12-13 06:41:36 +0100 <xerox> int-e: today I have a chance
2021-12-13 06:46:05 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-13 06:46:05 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 06:51:03 +0100 <xerox> is there nothing like this for lists? file:///Users/user/.ghcup/ghc/9.3.20211020/share/doc/ghc-9.3.20211020/html/libraries/containers/Data-Set.html#v:splitMember
2021-12-13 06:52:40 +0100 <int-e> xerox: that link is surprisingly useless ;-)
2021-12-13 06:53:03 +0100 <xerox> hahaha
2021-12-13 06:53:10 +0100 <int-e> libraries/containers/Data-Set.html#v:splitMember
2021-12-13 06:53:11 +0100 <xerox> I made a point of having it locally but now... I see
2021-12-13 06:53:14 +0100 <int-e> ...
2021-12-13 06:53:21 +0100 <int-e> https://hackage.haskell.org/package/containers-0.6.5.1/docs/Data-Set.html#v:splitMember
2021-12-13 06:53:22 +0100 <xerox> yeah you can figure it out
2021-12-13 06:53:52 +0100 <int-e> This was Firefox screwing with me... I did select the link in the url bar and it still pasted a different selection.
2021-12-13 06:54:15 +0100 <EvanR> Data.Set (and Data.Map) are so cool
2021-12-13 06:55:06 +0100 <int-e> xerox: | (xs, _:ys) <- span (/= '|') "abc|def" -- works as a guard
2021-12-13 06:55:24 +0100 <xerox> > Data.Set.splitMember [] (Data.Set.fromList [["3","4"],["6","8"],[],["fold","along","y","5"]])
2021-12-13 06:55:25 +0100 <lambdabot> (fromList [],True,fromList [["3","4"],["6","8"],["fold","along","y","5"]])
2021-12-13 06:55:38 +0100 <xerox> with lists it'd be... *chef kiss*
2021-12-13 06:55:46 +0100 <int-e> huh
2021-12-13 06:56:09 +0100 <int-e> I wouldn't want to rely on "fold" > "9"
2021-12-13 06:56:30 +0100 <xerox> no of course, in the case of lists the ordering would be of the elements of the list, not that :D
2021-12-13 06:57:09 +0100 <EvanR> your set is contaminated
2021-12-13 06:57:23 +0100 <EvanR> with the stringly typed
2021-12-13 06:58:27 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2021-12-13 07:00:55 +0100 <EvanR> haskell has advantage on tonights puzzle because it's good at folds
2021-12-13 07:01:01 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 07:01:10 +0100deadmarshal(~deadmarsh@95.38.117.193) (Ping timeout: 260 seconds)
2021-12-13 07:02:17 +0100 <int-e> EvanR: that's a good pun, I approve
2021-12-13 07:02:42 +0100alx741(~alx741@181.199.42.79)
2021-12-13 07:05:50 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 260 seconds)
2021-12-13 07:09:15 +0100perro(~perro@072-191-245-069.res.spectrum.com) (Ping timeout: 252 seconds)
2021-12-13 07:10:11 +0100pfurla(~pfurla@2804:18:5820:1d6d:95e6:204:998d:de68) (Quit: gone to sleep. ZZZzzz…)
2021-12-13 07:16:19 +0100emf(~emf@cpe-174-109-36-85.nc.res.rr.com)
2021-12-13 07:21:23 +0100emf(~emf@cpe-174-109-36-85.nc.res.rr.com) (Ping timeout: 268 seconds)
2021-12-13 07:30:28 +0100chomwitt(~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374)
2021-12-13 07:30:50 +0100Akiva(~Akiva@user/Akiva)
2021-12-13 07:32:19 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-12-13 07:32:52 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 07:36:32 +0100Guest71(~Guest71@167.179.75.123)
2021-12-13 07:38:02 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 256 seconds)
2021-12-13 07:40:30 +0100alx741(~alx741@181.199.42.79) (Read error: Connection reset by peer)
2021-12-13 07:41:11 +0100alx741(~alx741@157.100.93.160)
2021-12-13 07:45:13 +0100Guest71(~Guest71@167.179.75.123) (Quit: Client closed)
2021-12-13 07:48:27 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 07:49:24 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 07:53:54 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-13 08:02:41 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 08:03:47 +0100michalz(~michalz@185.246.204.122)
2021-12-13 08:04:34 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca)
2021-12-13 08:05:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 08:06:39 +0100alx741(~alx741@181.199.42.79)
2021-12-13 08:07:02 +0100chele(~chele@user/chele)
2021-12-13 08:09:30 +0100mimmy(~mimmy@bras-base-toroon63x9w-grc-22-174-88-20-30.dsl.bell.ca) (Ping timeout: 268 seconds)
2021-12-13 08:14:36 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 08:18:51 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 250 seconds)
2021-12-13 08:20:32 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 256 seconds)
2021-12-13 08:21:01 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
2021-12-13 08:27:14 +0100 <dmj`> > (join bimap) (+1) (1,1)
2021-12-13 08:27:16 +0100 <lambdabot> (2,2)
2021-12-13 08:30:37 +0100 <hololeap> :t join bimap
2021-12-13 08:30:38 +0100 <lambdabot> Bifunctor p => (c -> d) -> p c c -> p d d
2021-12-13 08:32:12 +0100alx741(~alx741@181.199.42.79) (Read error: Connection reset by peer)
2021-12-13 08:38:05 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 08:40:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-12-13 08:45:04 +0100cfricke(~cfricke@user/cfricke)
2021-12-13 08:48:58 +0100alx741(~alx741@157.100.93.160)
2021-12-13 08:49:11 +0100maplike(~maplike@31.209.100.216)
2021-12-13 08:58:45 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:1f7:bbc2:bf58:b649)
2021-12-13 09:00:12 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-12-13 09:00:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 09:00:51 +0100trcc(~trcc@eduroam09.au.dk)
2021-12-13 09:02:48 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 09:07:04 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 09:16:02 +0100nabaiste^(~nabaiste@wsip-98-188-240-142.mc.at.cox.net)
2021-12-13 09:18:00 +0100mncheck(~mncheck@193.224.205.254)
2021-12-13 09:19:27 +0100 <maplike> https://stackoverflow.com/a/69651010 - works, so it's likely I am misinterpreting the idea
2021-12-13 09:19:44 +0100 <maplike> since this is about _counting_ combinations, why Solved Cent and not Solved Int?
2021-12-13 09:20:36 +0100alx741(~alx741@157.100.93.160)
2021-12-13 09:23:16 +0100 <maplike> in divide, Solved 0/1 presumably signify failure/success?
2021-12-13 09:23:49 +0100 <maplike> in conquer, what does it mean to add the 2 params, a and b, of Pending? What do those 2 values (as Cents) signify?
2021-12-13 09:24:10 +0100 <maplike> in conquer, I would have expected we just need to sum the Solveds.
2021-12-13 09:24:12 +0100earendel(uid498179@user/earendel) (Quit: Connection closed for inactivity)
2021-12-13 09:24:31 +0100 <maplike> in conquer, a and b are Cents, whereas in divide they were ([Cent], Cent) (aka ChangePuzzleArgs) - I can't see how that transformation happens.
2021-12-13 09:24:55 +0100 <maplike> more questions than lines of code!
2021-12-13 09:25:22 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-12-13 09:26:12 +0100Jing_(~hedgehog@2604:a840:3::10c8) (Remote host closed the connection)
2021-12-13 09:26:14 +0100kuribas(~user@ptr-25vy0i9k5aujcskch0c.18120a2.ip6.access.telenet.be)
2021-12-13 09:27:01 +0100Jing(~hedgehog@125.106.89.200)
2021-12-13 09:32:47 +0100phma_(phma@2001:5b0:211c:2a58:d0c:f178:6e2:131e)
2021-12-13 09:33:41 +0100phma(phma@2001:5b0:212a:ba68:a7e4:c90f:fe43:cf4b) (Read error: Connection reset by peer)
2021-12-13 09:39:39 +0100acidjnk(~acidjnk@p200300d0c7271e62e04d49a98672dc3b.dip0.t-ipconnect.de)
2021-12-13 09:42:40 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-12-13 09:48:22 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 09:48:22 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 09:50:37 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 09:52:41 +0100 <EvanR> nice post
2021-12-13 09:54:30 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2021-12-13 09:55:41 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-12-13 09:56:47 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi)
2021-12-13 09:57:05 +0100machinedgod(~machinedg@24.105.81.50)
2021-12-13 09:57:25 +0100 <maplike> EvanR - the hylo one?
2021-12-13 10:04:45 +0100alx741(~alx741@157.100.93.160)
2021-12-13 10:05:18 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-13 10:06:04 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-13 10:10:38 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 10:11:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-13 10:12:40 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com)
2021-12-13 10:12:47 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-80cc-6b44-5328-2ea1.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 10:14:16 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com)
2021-12-13 10:17:39 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 10:18:53 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 10:19:10 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com)
2021-12-13 10:20:35 +0100arjun(~arjun@user/arjun)
2021-12-13 10:22:22 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com) ()
2021-12-13 10:22:33 +0100psygate(~psygate@user/psygate)
2021-12-13 10:22:40 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 10:22:49 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com)
2021-12-13 10:22:52 +0100ubert(~Thunderbi@2a02:8109:9880:303c:a6e9:4af8:654:3268)
2021-12-13 10:23:29 +0100 <psygate> Given that I have a type 'data State a = Minimum a | Maximum a | Unclassified a', can I unpack a without knowing the specific constructor used?
2021-12-13 10:24:21 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 10:24:59 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com)
2021-12-13 10:25:03 +0100xkuru(~xkuru@user/xkuru)
2021-12-13 10:25:29 +0100slice(~slice@user/slice) (Quit: zzz)
2021-12-13 10:26:41 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 10:28:10 +0100trcc(~trcc@eduroam09.au.dk) (Remote host closed the connection)
2021-12-13 10:31:33 +0100 <kuribas> psygate: getValue :: State a -> a; getValue (Minimum x) = x; getValue ...
2021-12-13 10:32:13 +0100phma_phma
2021-12-13 10:33:30 +0100 <kuribas> alternatively: data StateDescr = Minimum | Maximum | Unclassified; data State a = State a StateDescr.
2021-12-13 10:33:45 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com)
2021-12-13 10:35:40 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-13 10:35:41 +0100alx741(~alx741@157.100.93.160)
2021-12-13 10:40:27 +0100Jing(~hedgehog@125.106.89.200) (Read error: Connection reset by peer)
2021-12-13 10:42:53 +0100trcc(~trcc@users-5343.st.net.au.dk)
2021-12-13 10:46:47 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-12-13 10:46:59 +0100Jing(~hedgehog@2604:a840:3::10c8)
2021-12-13 10:50:17 +0100 <psygate> kuribas, i like the second one, thank you
2021-12-13 10:51:54 +0100josemotanet(~jose@2001:8a0:ee85:a00:d4ef:b473:6a8a:ba2e)
2021-12-13 10:52:24 +0100 <psygate> Ah, and is there a good way to implement Ord based on ''data State a = Minimum a | Maximum a | Unclassified a' ? I dont want to define compare x y for every constructor
2021-12-13 10:53:00 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-12-13 10:53:24 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-13 10:53:28 +0100 <hololeap> it depends on what behavior you're looking for
2021-12-13 10:54:05 +0100 <hololeap> do you want Maximum a > Minimum a > Unclassified a ?
2021-12-13 10:54:53 +0100 <psygate> No, I'd like to compare the contained values.
2021-12-13 10:54:59 +0100 <kuribas> only?
2021-12-13 10:55:10 +0100 <psygate> The outer type is just meant as a local wrapper, that ads a tag but shouldn't influence "how" it works
2021-12-13 10:55:46 +0100 <kuribas> instance Ord (State a) where compare (State x _) (State y _) = compare x y
2021-12-13 10:59:25 +0100 <hololeap> if you use the original data structure as opposed to kuribas' alternative, then you would have to a) enumerate all combinations of constructors b) write a function that can extract `a' from any of your constructors and compare on that directly
2021-12-13 10:59:29 +0100 <psygate> That doesn't work. I've got it defined as a "wrapper" so to say
2021-12-13 10:59:36 +0100 <psygate> Do I have to restructure the type to make it work like that?
2021-12-13 10:59:51 +0100 <psygate> Oh okay, well that answers it, thanks hololeap
2021-12-13 11:02:12 +0100teo(~teo@user/teo)
2021-12-13 11:02:20 +0100 <kuribas> yeah "compare = compare `on` getValue" for the first.
2021-12-13 11:02:50 +0100 <hololeap> by defining an Ord instance for (State a), you're kind of implying that (compare (Minimum 5) (Maximum 5)) is discrete from (compare 5 5). if you really _mean_ that you want to compare the inner values, then write it as such, IMO
2021-12-13 11:03:07 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 11:04:50 +0100 <psygate> I'll use kuribas suggestion for the type, it looks like a much cleaner solution
2021-12-13 11:05:37 +0100 <hololeap> yeah it's like rewriting (a + a + a) as (a * 3)
2021-12-13 11:06:19 +0100 <hololeap> you can do that kind of simple algebra on types, hence the name algebraic data types
2021-12-13 11:07:32 +0100 <psygate> Is there a solution for getter / setter now? I've seen there are record types
2021-12-13 11:09:28 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2021-12-13 11:09:30 +0100 <hololeap> you could use record syntax pretty painlessly here. data State a = State { stateVal :: a, stateDescr :: StateDescr }
2021-12-13 11:09:34 +0100 <kuribas> getter/setter = lens
2021-12-13 11:09:54 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-13 11:10:23 +0100 <hololeap> that would give you two functions that act as your getters: stateVal :: State a -> a ; stateDescr :: State a -> StateDescr
2021-12-13 11:10:23 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-12-13 11:11:20 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-13 11:11:24 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-12-13 11:11:29 +0100 <hololeap> and you can use record syntax as a setter as well: State 4 Minimum { stateVal = 10 } -- this yields (State 10 Minimum)
2021-12-13 11:11:58 +0100kmein_(~weechat@user/kmein)
2021-12-13 11:12:22 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 11:12:24 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-13 11:13:00 +0100 <hololeap> that little example would actually have to be written as: (State 4 Minimum) { stateVal = 10 }
2021-12-13 11:13:49 +0100kmein(~weechat@user/kmein) (Ping timeout: 240 seconds)
2021-12-13 11:13:55 +0100mvk(~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 250 seconds)
2021-12-13 11:14:30 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2021-12-13 11:15:37 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-12-13 11:16:01 +0100 <hololeap> otherwise the record update would apply to Minimum (an error) as opposed to applying to the State that I'm constructing there
2021-12-13 11:17:48 +0100zaquest(~notzaques@5.130.79.72)
2021-12-13 11:19:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 11:20:27 +0100 <psygate> Ahhh, and is there a way to constraint the State type to only orderable types?
2021-12-13 11:20:43 +0100 <psygate> Something like 'Ord a => data State a StateDesc' ?
2021-12-13 11:21:12 +0100alx741(~alx741@157.100.93.160)
2021-12-13 11:21:17 +0100 <hololeap> you'll want to put `Ord a => ...` on whatever functions actually need it
2021-12-13 11:21:27 +0100 <merijn> psygate: You can't really constraint types
2021-12-13 11:23:23 +0100 <psygate> makes sense, thanks. its been a while that ive used haskell. you may be able to tell.
2021-12-13 11:23:35 +0100 <dminuoso> psygate: We used to be able to do this, but it occured this was mostly pointless.
2021-12-13 11:23:51 +0100 <dminuoso> This does not have any meaningful gains and just artificially limits your code
2021-12-13 11:25:12 +0100vpan(~0@212.117.1.172)
2021-12-13 11:25:42 +0100 <dminuoso> Instead we place constraints on function definition sites instead, like `f :: Ord a => State a StateDesc`, this has the cute benefit of allowing the creation of State for non-Ord choices of `a` in code regions that does not need `f`
2021-12-13 11:25:50 +0100 <dminuoso> So we get the freedom to write more code
2021-12-13 11:26:11 +0100 <dminuoso> Uh, the above was meant to read `f :: Ord a => State a StateDesc -> T`
2021-12-13 11:28:12 +0100arjun(~arjun@user/arjun) (Remote host closed the connection)
2021-12-13 11:28:36 +0100arjun(~arjun@103.57.87.133)
2021-12-13 11:30:26 +0100 <hololeap> if you had an Ord constraint on the whole type, then you wouldn't be able to make a Functor instance for State, for instance, because Functor requires that there are no constraints on `a'. it has to work with any function (a -> b) for _any_ `a' and `b'
2021-12-13 11:31:45 +0100 <kuribas> hololeap: perhaps you could with a GADT?
2021-12-13 11:32:58 +0100 <hololeap> I don't think so. you would run into the same problem that we have with Set no matter how you approach it
2021-12-13 11:33:25 +0100 <kuribas> But that's because Set doesn't have an Ord in the type.
2021-12-13 11:34:05 +0100pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2021-12-13 11:36:04 +0100 <hololeap> it might as well. it requires Ord for anything that would involve modifying the data
2021-12-13 11:36:45 +0100DNH(~DNH@2a02:8108:1100:16d8:41d5:8d83:8f3c:c995)
2021-12-13 11:37:44 +0100 <sprout> can I post my egel solution for day 13, task 2?
2021-12-13 11:40:13 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2021-12-13 11:40:59 +0100 <hololeap> only if it's egel
2021-12-13 11:41:02 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2021-12-13 11:41:43 +0100pavonia(~user@user/siracusa)
2021-12-13 11:42:25 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 11:42:30 +0100 <sprout> yay!
2021-12-13 11:42:34 +0100 <sprout> https://github.com/egel-lang/aoc-2021/blob/main/day13/task2.eg <- day 13, task2, egel solution. just waste cycles on it
2021-12-13 11:42:37 +0100 <sprout> https://pasteboard.co/WUoK7G5rKdWk.png <- with colors!
2021-12-13 11:43:17 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 11:43:42 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 11:44:19 +0100 <sprout> for haskellers. egel is roughly untyped impure lambda calculus + constants. so shouldn't be hard to read
2021-12-13 11:44:32 +0100dyeplexer(~dyeplexer@user/dyeplexer)
2021-12-13 11:44:35 +0100 <sprout> (+eager)
2021-12-13 11:45:57 +0100chomwitt(~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
2021-12-13 11:46:21 +0100earendel(uid498179@user/earendel)
2021-12-13 11:47:19 +0100deadmarshal(~deadmarsh@95.38.114.19)
2021-12-13 11:51:07 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 11:55:01 +0100 <hololeap> looks interesting
2021-12-13 11:55:37 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-13 11:57:06 +0100 <kuribas> egel = e(a)g(er) (hask)el(l)?
2021-12-13 11:57:49 +0100 <merijn> Clearly sprout just likes hedgehogs :p
2021-12-13 11:58:30 +0100 <dminuoso> Eegel is german for Hihrudinea
2021-12-13 11:58:45 +0100 <dminuoso> I assume that is meant.
2021-12-13 11:58:48 +0100 <sprout> nah, it's Dutch for hedgehog. I sometimes have a hedgehog in my garden I try to take care of
2021-12-13 11:59:05 +0100 <merijn> hah!
2021-12-13 11:59:08 +0100 <merijn> I was right!
2021-12-13 11:59:26 +0100 <sprout> I's also a bit of a pun on Python. hedgehogs are somewhat venom resitant
2021-12-13 11:59:30 +0100 <sprout> *resistant
2021-12-13 11:59:45 +0100 <merijn> Shoulda gone for mongoose then :p
2021-12-13 12:00:02 +0100 <sprout> when I add types!
2021-12-13 12:00:21 +0100 <kuribas> sprout: so you wasted a chance for a clever acronym? :-P
2021-12-13 12:00:23 +0100 <sprout> (probably not going to happen)
2021-12-13 12:00:49 +0100alx741(~alx741@157.100.93.160)
2021-12-13 12:01:12 +0100 <dminuoso> sprout: What is eager rewriting exactly?
2021-12-13 12:01:29 +0100 <dminuoso> Is that just fancy for graph reduction?
2021-12-13 12:01:30 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-13 12:02:00 +0100 <sprout> opposite of lazy. I forgot, it's right-to-left bottom up reduction?
2021-12-13 12:02:11 +0100 <dminuoso> right-to-left?
2021-12-13 12:02:24 +0100 <sprout> lazy is top-to-bottom left-to-right, I think. sorry forgot
2021-12-13 12:02:38 +0100dminuosodoes not know what left or right means
2021-12-13 12:02:43 +0100 <merijn> kuribas: As long as you have a theme :p
2021-12-13 12:02:49 +0100 <sprout> yah, when you look at a term graph there are a number of rewrite strategies
2021-12-13 12:03:03 +0100 <merijn> The CS group at my university had a running theme of naming all projects after black and white animals
2021-12-13 12:03:37 +0100 <kuribas> zebra?
2021-12-13 12:03:51 +0100 <kuribas> How many animals are white and black?
2021-12-13 12:03:57 +0100 <sprout> and some of them can fall in a taxonomy of 'what term do I rewrite'
2021-12-13 12:04:19 +0100 <merijn> DAS (badger), Ibis and a bunch of others, I'd have to look up the list
2021-12-13 12:04:27 +0100 <sprout> I think laziness corresponds to always rewriting the top term of the graph, but forgot
2021-12-13 12:07:57 +0100DNH(~DNH@2a02:8108:1100:16d8:41d5:8d83:8f3c:c995) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-13 12:11:34 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-13 12:12:46 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 12:13:50 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 12:15:45 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 12:17:23 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Ping timeout: 268 seconds)
2021-12-13 12:17:35 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-13 12:20:35 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-12-13 12:31:04 +0100alx741(~alx741@157.100.93.160)
2021-12-13 12:31:44 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-13 12:34:48 +0100DNH(~DNH@2a02:8108:1100:16d8:41d5:8d83:8f3c:c995)
2021-12-13 12:36:42 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
2021-12-13 12:39:33 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-13 12:48:26 +0100altern(~Sergii@altern.corbina.com.ua)
2021-12-13 12:49:40 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-13 12:53:00 +0100boris_(~chatzilla@149.62.206.183)
2021-12-13 12:55:11 +0100boris_(~chatzilla@149.62.206.183) (Client Quit)
2021-12-13 12:56:25 +0100boris_(~chatzilla@149.62.206.183)
2021-12-13 12:57:58 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-12-13 12:58:33 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2021-12-13 13:00:20 +0100nunggu(~q@gateway/tor-sasl/nunggu)
2021-12-13 13:01:41 +0100DNH(~DNH@2a02:8108:1100:16d8:41d5:8d83:8f3c:c995) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-13 13:03:19 +0100DNH(~DNH@2a02:8108:1100:16d8:41d5:8d83:8f3c:c995)
2021-12-13 13:07:01 +0100trcc_(~trcc@eduroam09.au.dk)
2021-12-13 13:07:49 +0100shailangsa(~shailangs@host86-186-127-128.range86-186.btcentralplus.com) ()
2021-12-13 13:07:58 +0100DNH(~DNH@2a02:8108:1100:16d8:41d5:8d83:8f3c:c995) (Ping timeout: 268 seconds)
2021-12-13 13:08:35 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-12-13 13:08:43 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-12-13 13:09:23 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee) (Ping timeout: 250 seconds)
2021-12-13 13:10:29 +0100trcc(~trcc@users-5343.st.net.au.dk) (Ping timeout: 250 seconds)
2021-12-13 13:10:39 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection)
2021-12-13 13:11:21 +0100trcc_(~trcc@eduroam09.au.dk) (Ping timeout: 250 seconds)
2021-12-13 13:12:34 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 13:13:15 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-13 13:14:49 +0100boris_(~chatzilla@149.62.206.183) (Ping timeout: 252 seconds)
2021-12-13 13:15:46 +0100boris_(~chatzilla@149.62.206.183)
2021-12-13 13:16:28 +0100SummerSonw(~The_viole@203.77.49.232)
2021-12-13 13:19:21 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds)
2021-12-13 13:24:08 +0100cfricke(~cfricke@user/cfricke)
2021-12-13 13:25:13 +0100SummerSonw(~The_viole@203.77.49.232) (Ping timeout: 268 seconds)
2021-12-13 13:26:25 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee)
2021-12-13 13:27:01 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-12-13 13:27:09 +0100jippiedoe(~david@2a02-a44c-e14e-1-d348-9a8a-50cc-26de.fixed6.kpn.net)
2021-12-13 13:29:05 +0100alx741(~alx741@157.100.93.160)
2021-12-13 13:32:28 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-13 13:35:58 +0100jespada(~jespada@87.74.33.157) (Ping timeout: 260 seconds)
2021-12-13 13:37:55 +0100jespada(~jespada@87.74.33.157)
2021-12-13 13:40:01 +0100boris_(~chatzilla@149.62.206.183) (Ping timeout: 268 seconds)
2021-12-13 13:40:47 +0100boris_(~chatzilla@149.62.206.183)
2021-12-13 13:42:29 +0100Guest4833(~Guest48@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 13:43:32 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 13:43:37 +0100neverfindme(~hayden@158.123.160.43)
2021-12-13 13:44:22 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 13:45:28 +0100son0p(~ff@2800:484:1d81:b700::4)
2021-12-13 13:45:59 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 252 seconds)
2021-12-13 13:45:59 +0100Guest4833(~Guest48@wireless-student-pt3-240-232.lut.ac.uk) (Client Quit)
2021-12-13 13:46:09 +0100Guest4866(~Guest48@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 13:46:12 +0100__monty__(~toonn@user/toonn)
2021-12-13 13:46:32 +0100Guest4866(~Guest48@wireless-student-pt3-240-232.lut.ac.uk) (Client Quit)
2021-12-13 13:46:41 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 13:47:31 +0100neverfindme(~hayden@158.123.160.43) (Remote host closed the connection)
2021-12-13 13:47:54 +0100neverfindme(~hayden@158.123.160.43)
2021-12-13 13:51:08 +0100notzmv(~zmv@user/notzmv)
2021-12-13 13:51:23 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-12-13 13:53:51 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Remote host closed the connection)
2021-12-13 13:54:05 +0100cosimone`(~user@93-47-228-207.ip115.fastwebnet.it)
2021-12-13 13:54:58 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-13 13:55:55 +0100perro(~perro@072-191-245-069.res.spectrum.com)
2021-12-13 13:56:02 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Ping timeout: 260 seconds)
2021-12-13 13:56:31 +0100gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2021-12-13 14:00:02 +0100alx741(~alx741@157.100.93.160)
2021-12-13 14:00:48 +0100dyeplexer(~dyeplexer@user/dyeplexer) (Read error: Connection timed out)
2021-12-13 14:01:23 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 252 seconds)
2021-12-13 14:01:30 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-12-13 14:09:17 +0100afotgkmnzj7asv3r(~afotgkmnz@2001:470:69fc:105::c24b)
2021-12-13 14:12:23 +0100altern(~Sergii@altern.corbina.com.ua) (Ping timeout: 252 seconds)
2021-12-13 14:12:41 +0100boris_(~chatzilla@149.62.206.183) (Quit: ChatZilla 0.10 [SeaMonkey 2.53.10/20211111233623])
2021-12-13 14:13:46 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 14:16:03 +0100arjun(~arjun@103.57.87.133) (Ping timeout: 252 seconds)
2021-12-13 14:19:05 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk) (Quit: Client closed)
2021-12-13 14:24:23 +0100pfurla(~pfurla@177.25.184.160)
2021-12-13 14:25:51 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-13 14:26:52 +0100arjun(~arjun@103.57.87.133)
2021-12-13 14:28:38 +0100chomwitt(~chomwitt@ppp-94-67-201-96.home.otenet.gr)
2021-12-13 14:29:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-13 14:30:04 +0100alx741(~alx741@157.100.93.160)
2021-12-13 14:33:40 +0100chomwitt(~chomwitt@ppp-94-67-201-96.home.otenet.gr) (Ping timeout: 268 seconds)
2021-12-13 14:48:30 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2021-12-13 14:49:10 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 14:50:54 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-12-13 14:53:21 +0100mimmy(~mimmy@72.142.88.18)
2021-12-13 14:58:23 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2021-12-13 14:58:48 +0100SummerSonw(~The_viole@203.77.49.232)
2021-12-13 15:01:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 15:03:27 +0100hololeap(~hololeap@user/hololeap) (Excess Flood)
2021-12-13 15:03:52 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2021-12-13 15:04:48 +0100hololeap(~hololeap@user/hololeap)
2021-12-13 15:05:43 +0100neverfindme(~hayden@158.123.160.43) (Remote host closed the connection)
2021-12-13 15:06:06 +0100neverfindme(~hayden@158.123.160.43)
2021-12-13 15:06:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-13 15:07:38 +0100alx741(~alx741@157.100.93.160)
2021-12-13 15:13:11 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-12-13 15:13:23 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 15:13:49 +0100neverfindme(~hayden@158.123.160.43) (Ping timeout: 240 seconds)
2021-12-13 15:14:07 +0100alx741(~alx741@157.100.93.160)
2021-12-13 15:15:16 +0100Guest19(~Guest19@n110-33-34-202.hum1.act.optusnet.com.au)
2021-12-13 15:16:47 +0100josemotanet(~jose@2001:8a0:ee85:a00:d4ef:b473:6a8a:ba2e) (Quit: WeeChat 3.3)
2021-12-13 15:17:22 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 15:17:27 +0100shailangsa(~shailangs@host86-186-127-128.range86-186.btcentralplus.com)
2021-12-13 15:19:25 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-13 15:20:52 +0100dyeplexer(~dyeplexer@user/dyeplexer)
2021-12-13 15:21:09 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk)
2021-12-13 15:24:28 +0100Guest19jz99
2021-12-13 15:26:39 +0100singpolyma(8a1e37e5a6@tilde.team/user/singpolyma)
2021-12-13 15:27:24 +0100neverfindme(~hayden@158.123.160.43)
2021-12-13 15:27:25 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 15:27:25 +0100 <singpolyma> 👋️ I have an error in production: `CallStack (from HasCallStack):\n error, called at DB.hs:116:16 in main:DB` is there a way these days to get that call stack to be deeper than one level?
2021-12-13 15:29:00 +0100kmein_kmein
2021-12-13 15:29:53 +0100fr33domlover(~fr33@2.55.169.194)
2021-12-13 15:31:15 +0100timCF(~timCF@m91-129-100-224.cust.tele2.ee) (Quit: leaving)
2021-12-13 15:33:20 +0100 <dminuoso> Does POSIX have a mechanism to determine whether a given file is a symlink or a socket?
2021-12-13 15:33:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 15:33:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 15:33:49 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 15:36:18 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk) (Quit: Client closed)
2021-12-13 15:38:25 +0100Sgeo(~Sgeo@user/sgeo)
2021-12-13 15:38:37 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 240 seconds)
2021-12-13 15:39:07 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-13 15:39:58 +0100mimmy(~mimmy@72.142.88.18)
2021-12-13 15:40:09 +0100jkaye(~jkaye@2601:281:8300:7530:8f84:8d09:7b68:c6ce)
2021-12-13 15:43:03 +0100 <[exa]> dminuoso: lstat?
2021-12-13 15:43:23 +0100 <geekosaur> lstat() aka https://downloads.haskell.org/ghc/latest/docs/html/libraries/unix-2.7.2.2/System-Posix-Files.html#…
2021-12-13 15:43:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 15:44:16 +0100alx741(~alx741@157.100.93.160)
2021-12-13 15:45:04 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 15:45:25 +0100nabaiste^(~nabaiste@wsip-98-188-240-142.mc.at.cox.net) (Remote host closed the connection)
2021-12-13 15:46:13 +0100deadmarshal(~deadmarsh@95.38.114.19) (Ping timeout: 240 seconds)
2021-12-13 15:47:36 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk) (Client Quit)
2021-12-13 15:47:59 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-12-13 15:49:10 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 15:49:46 +0100alx741(~alx741@157.100.93.160)
2021-12-13 15:51:15 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 250 seconds)
2021-12-13 15:52:05 +0100maplike(~maplike@31.209.100.216) (Ping timeout: 256 seconds)
2021-12-13 15:56:47 +0100paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-12-13 15:58:59 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 15:59:42 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2021-12-13 15:59:51 +0100mimmy_(~mimmy@37.19.212.189)
2021-12-13 16:02:05 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 250 seconds)
2021-12-13 16:02:07 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Quit: Reconnecting)
2021-12-13 16:02:19 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2021-12-13 16:05:44 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-12-13 16:06:17 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 16:08:41 +0100neverfindme(~hayden@158.123.160.43) (Quit: Leaving)
2021-12-13 16:08:41 +0100Jing(~hedgehog@2604:a840:3::10c8) (Remote host closed the connection)
2021-12-13 16:09:48 +0100pfurla_(~pfurla@177.79.117.40)
2021-12-13 16:11:07 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 268 seconds)
2021-12-13 16:12:25 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-12-13 16:12:29 +0100Jing(~hedgehog@2604:a840:3::10c8)
2021-12-13 16:12:34 +0100pfurla(~pfurla@177.25.184.160) (Ping timeout: 256 seconds)
2021-12-13 16:13:21 +0100emf(~emf@cpe-174-109-36-85.nc.res.rr.com)
2021-12-13 16:16:09 +0100alx741(~alx741@157.100.93.160)
2021-12-13 16:16:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-12-13 16:16:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 16:16:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 16:16:54 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 16:17:36 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 16:18:35 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-13 16:18:54 +0100 <oats> anyone using emacs and lsp-haskell know how to disable these import suggestions? https://paste.xinu.at/JpHdi/
2021-12-13 16:19:58 +0100 <oats> I thought it might be `lsp-haskell-refineimports-on' set to nil, but that didn't do it
2021-12-13 16:19:59 +0100emf(~emf@cpe-174-109-36-85.nc.res.rr.com) (Quit: emf)
2021-12-13 16:20:51 +0100emf(~emf@cpe-174-109-36-85.nc.res.rr.com)
2021-12-13 16:21:35 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2021-12-13 16:22:04 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Ping timeout: 265 seconds)
2021-12-13 16:23:00 +0100 <oats> oh nvm, I think `lsp-haskell-importlens-on' was it
2021-12-13 16:26:33 +0100slowtyper(~slowtyper@user/slowtyper) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-13 16:26:49 +0100slowtyper(~slowtyper@user/slowtyper)
2021-12-13 16:27:49 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 16:28:59 +0100emf_(~emf@2620:10d:c091:480::1:cbc8)
2021-12-13 16:29:09 +0100emf(~emf@cpe-174-109-36-85.nc.res.rr.com) (Ping timeout: 252 seconds)
2021-12-13 16:34:35 +0100deadmarshal(~deadmarsh@95.38.114.19)
2021-12-13 16:35:01 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 16:35:08 +0100SummerSonw(~The_viole@203.77.49.232) (Remote host closed the connection)
2021-12-13 16:35:32 +0100SummerSonw(~The_viole@203.77.49.232)
2021-12-13 16:37:35 +0100 <dminuoso> [exa], geekosaur: Thanks!
2021-12-13 16:37:55 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-12-13 16:37:57 +0100 <dminuoso> Unrelatedly, does conduit have some efficient way to find a substring in a bytestring conduit?
2021-12-13 16:38:18 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 16:38:27 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 16:38:58 +0100 <dminuoso> Or do I have to roll my own KMP ontop of it?
2021-12-13 16:39:22 +0100deadmarshal(~deadmarsh@95.38.114.19) (Ping timeout: 260 seconds)
2021-12-13 16:43:06 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Ping timeout: 260 seconds)
2021-12-13 16:43:27 +0100arjun(~arjun@103.57.87.133) (Ping timeout: 252 seconds)
2021-12-13 16:44:21 +0100alx741(~alx741@157.100.93.160)
2021-12-13 16:44:30 +0100mimmy_(~mimmy@37.19.212.189) (Ping timeout: 260 seconds)
2021-12-13 16:44:46 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-12-13 16:46:50 +0100acidjnk(~acidjnk@p200300d0c7271e62e04d49a98672dc3b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-13 16:46:56 +0100mimmy_(~mimmy@37.19.212.190)
2021-12-13 16:51:03 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
2021-12-13 16:52:26 +0100johnjay(~pi@154.6.152.74) (Ping timeout: 268 seconds)
2021-12-13 16:53:59 +0100johnjay(~pi@154.6.152.74)
2021-12-13 16:54:27 +0100emf_(~emf@2620:10d:c091:480::1:cbc8) (Ping timeout: 252 seconds)
2021-12-13 16:55:26 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 16:55:45 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 16:55:50 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 16:58:11 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 16:58:55 +0100emf(~emf@2620:10d:c091:480::1:cbc8)
2021-12-13 17:00:06 +0100acco[m](~accotedom@2001:470:69fc:105::1:3236) (Quit: You have been kicked for being idle)
2021-12-13 17:02:30 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-13 17:03:27 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-12-13 17:03:32 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-13 17:03:43 +0100cfricke(~cfricke@user/cfricke)
2021-12-13 17:04:46 +0100SummerSonw(~The_viole@203.77.49.232) (Ping timeout: 268 seconds)
2021-12-13 17:05:12 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-12-13 17:06:32 +0100meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 17:06:34 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
2021-12-13 17:07:56 +0100Jing(~hedgehog@2604:a840:3::10c8) (Remote host closed the connection)
2021-12-13 17:09:08 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-13 17:09:12 +0100jippiedoe(~david@2a02-a44c-e14e-1-d348-9a8a-50cc-26de.fixed6.kpn.net) (Quit: Leaving)
2021-12-13 17:11:35 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 17:11:39 +0100samlamamma(~user@79.138.136.192.mobile.tre.se)
2021-12-13 17:12:00 +0100Jing(~hedgehog@2604:a840:3::10c8)
2021-12-13 17:12:43 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-13 17:12:58 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-13 17:13:04 +0100 <samlamamma> Is finding morphisms between ADT:s easy? F.ex. "Find isomorphism for inductively defined A and inductively defined B"
2021-12-13 17:14:06 +0100zebrag(~chris@user/zebrag)
2021-12-13 17:14:08 +0100 <samlamamma> It sounds like an interesting and useful problem to me, but maybe I'm too out of the loop to know that this is simple :). I'm thinking it's easy!
2021-12-13 17:15:45 +0100alx741(~alx741@157.100.93.160)
2021-12-13 17:21:06 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 17:23:58 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Remote host closed the connection)
2021-12-13 17:25:02 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 17:25:15 +0100mimmy_(~mimmy@37.19.212.190) (Ping timeout: 252 seconds)
2021-12-13 17:26:14 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds)
2021-12-13 17:26:33 +0100ephemient(uid407513@id-407513.lymington.irccloud.com)
2021-12-13 17:27:30 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Read error: Connection reset by peer)
2021-12-13 17:27:49 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 17:28:53 +0100APic(~apic@apic.name) (Quit: [TLS] Client upgrade)
2021-12-13 17:29:03 +0100APic(apic@apic.name)
2021-12-13 17:29:38 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 256 seconds)
2021-12-13 17:30:26 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-13 17:32:21 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 17:35:11 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-13 17:39:36 +0100mimmy_(~mimmy@37.19.212.189)
2021-12-13 17:40:14 +0100mimmy_(~mimmy@37.19.212.189) (Client Quit)
2021-12-13 17:40:27 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-12-13 17:43:43 +0100 <raehik> Just to confirm, I can't do "mixed" record syntax, right? Like "data A a = A a { a2 :: a } a"
2021-12-13 17:43:49 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 17:44:02 +0100 <raehik> I should just write my own function for it
2021-12-13 17:45:05 +0100alx741(~alx741@157.100.93.160)
2021-12-13 17:48:26 +0100 <xerox> what you you want that to do?
2021-12-13 17:49:27 +0100johnjay(~pi@154.6.152.74) (Ping timeout: 252 seconds)
2021-12-13 17:49:58 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:1f7:bbc2:bf58:b649) (Quit: WeeChat 2.8)
2021-12-13 17:50:06 +0100 <geekosaur> projection function for just one field, presumably
2021-12-13 17:50:23 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk)
2021-12-13 17:51:13 +0100johnjay(~pi@154.6.152.74)
2021-12-13 17:53:02 +0100Jing(~hedgehog@2604:a840:3::10c8) (Remote host closed the connection)
2021-12-13 17:53:06 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 17:54:07 +0100 <c_wraith> Funny, pattern-matching and construction syntax would both work fine* with that. *though obviously you couldn't match the unnamed field by name
2021-12-13 17:55:08 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-13 17:55:55 +0100 <raehik> c_wraith: what would that look like? I wasn't able to make an "unnamed" field
2021-12-13 17:56:02 +0100 <c_wraith> But it would require a pretty significant change to template haskell code that works with data types, and probably generics too
2021-12-13 17:56:23 +0100 <raehik> Ah I see, there's nothing in the language restricting it
2021-12-13 17:56:25 +0100 <c_wraith> raehik: oh, it's not possible. I was pondering how much would change if it was
2021-12-13 17:56:34 +0100Jing(~hedgehog@2604:a840:3::10c8)
2021-12-13 17:57:33 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-12-13 17:57:47 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 17:58:21 +0100pfurla_(~pfurla@177.79.117.40) (Read error: Connection reset by peer)
2021-12-13 17:58:25 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 17:58:29 +0100pfurla(~pfurla@2804:18:585d:1964:1855:cca0:7d18:69de)
2021-12-13 17:59:08 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 17:59:50 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 18:00:20 +0100 <[exa]> samlamamma: depends on what you want from the morphism. Technically `Integer` is isomorphic to anything. :]
2021-12-13 18:00:41 +0100 <c_wraith> Usually that sort of thing means structural isomorphism
2021-12-13 18:00:56 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2021-12-13 18:01:14 +0100 <geekosaur> for that matter so is Int#, since that's how computers work with anything that isn't an Int#
2021-12-13 18:01:14 +0100 <kuribas> [exa]: not to Int?
2021-12-13 18:01:25 +0100 <[exa]> ok (*hides a little statue of godel*)
2021-12-13 18:01:32 +0100 <[exa]> kuribas: Int too small :'(
2021-12-13 18:01:54 +0100 <kuribas> anything countable infinite, right?
2021-12-13 18:02:05 +0100 <[exa]> well you can encode the generating function
2021-12-13 18:02:08 +0100 <c_wraith> So like... Fix Maybe is structurally isomorphic to inductive Nat
2021-12-13 18:02:58 +0100 <kritzefitz> kuribas: I don't think computers can work directly with anything uncountably infinite.
2021-12-13 18:03:27 +0100 <kuribas> kritzefitz: maybe symbolically?
2021-12-13 18:03:58 +0100 <[exa]> hm, how complex it is to find a structural morphism? (ie isn't it undecidable if you encode something really ugly like PKP to your types?)
2021-12-13 18:04:14 +0100 <c_wraith> Korrespondence?
2021-12-13 18:04:28 +0100 <kritzefitz> kuribas: Maybe, but wouldn't the symbols be countable and thus be isomorphic to Integer again?
2021-12-13 18:04:38 +0100 <[exa]> c_wraith: I'm from the korresponding part of the word, yeah :D
2021-12-13 18:04:38 +0100 <monochrom> Symbolically, you can only have countably many symbols.
2021-12-13 18:04:45 +0100 <[exa]> correspondence for sure. :D
2021-12-13 18:05:10 +0100 <monochrom> For example, Mathematica can still only represent countably many real numbers, not all real numbers.
2021-12-13 18:05:40 +0100 <c_wraith> [exa]: but yeah, when you start using data types with extra restrictions on them (GADTs), you can make structural properties arbitrarily complex
2021-12-13 18:05:42 +0100 <monochrom> Unless you go constructivism and declare "all real numbers" = "all constructible real numbers".
2021-12-13 18:06:59 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-12-13 18:07:03 +0100 <[exa]> actually (I hit this a while ago and kinda forgot to solve for myself) -- there's only countably infinite of constructible real numbers right? (because of the number of programs to construct them)
2021-12-13 18:07:12 +0100 <c_wraith> yes
2021-12-13 18:07:25 +0100 <monochrom> or number of strings you can write down
2021-12-13 18:07:25 +0100 <c_wraith> there are only countably infinite possible programs
2021-12-13 18:07:41 +0100 <[exa]> hmm
2021-12-13 18:07:50 +0100 <[exa]> any example of inconstructible one?
2021-12-13 18:07:55 +0100 <kuribas> kritzefitz: actually, computers cannot deal with anything infinite
2021-12-13 18:07:56 +0100 <[exa]> (not asking anyone to construct it)
2021-12-13 18:07:56 +0100 <c_wraith> I'm sure you can create a programming language such that possible programs = strings :)
2021-12-13 18:08:06 +0100 <c_wraith> [exa]: Chitin's Omega
2021-12-13 18:08:21 +0100 <c_wraith> err. Chaitin
2021-12-13 18:08:30 +0100 <[exa]> uuuuuuh gooood, I didn't know this
2021-12-13 18:08:32 +0100 <[exa]> thanks
2021-12-13 18:08:48 +0100 <c_wraith> he is not a waxy exoskeleton
2021-12-13 18:08:51 +0100 <c_wraith> even if that'd be cool
2021-12-13 18:09:05 +0100 <monochrom> So even if you are classical and accept "I don't have to write how to produce, I just have to write a predicate for what to satisfy", which still is a string, as long as you are formal, you can only specify countably many real numbers.
2021-12-13 18:09:15 +0100 <samlamamma> Yup, interest really comes from me wasting time writing functions going from different serialization formats
2021-12-13 18:09:42 +0100 <monochrom> Which brings us to: There are countable models of set theory.
2021-12-13 18:10:15 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 18:10:50 +0100 <[exa]> yap I recall some of that, but I completely missed this halting probability
2021-12-13 18:12:49 +0100 <samlamamma> At work I write C/C++ in a meager environment. This means that I have to write a lot of boring code. So of course I'm interested in program
2021-12-13 18:12:49 +0100 <samlamamma> synthesis to help me out
2021-12-13 18:12:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 18:13:32 +0100 <monochrom> Now that the OP is here, my turn to talk about that. Generally, "isomorphism" is ambiguous in the Haskell community. Try it: Define "isomorphism".
2021-12-13 18:14:14 +0100alx741(~alx741@157.100.93.160)
2021-12-13 18:14:18 +0100 <monochrom> I may even be able to claim s/ambiguous/a buzzword/, i.e., you don't even know of one definition, lack alone multiple definitions.
2021-12-13 18:14:42 +0100 <[exa]> samlamamma: the conversion problem is hard. There are lenses to avoid conversion completely (allow you to work kinda the same way with many structures) and in Hs it's pretty easy to make a relatively universal ADT for all possibilities (which is roughly how pandoc went around that)
2021-12-13 18:14:57 +0100 <samlamamma> Probably f: A -> B, g: B -> A s.t. f(g(b)) == id(b) ^ g(f(a)) == id(a) for all a, b
2021-12-13 18:15:34 +0100 <[exa]> samlamamma: not sure if any of that applies to C++ though, probably depends on what data you represent
2021-12-13 18:15:35 +0100 <samlamamma> Proof of isomorphism is given by finding g and f
2021-12-13 18:15:49 +0100 <monochrom> That's just bijection. But sure. Now see [exa]'s Integer answer.
2021-12-13 18:16:20 +0100 <monochrom> Does that help with understanding the correspondence between serialization formats?
2021-12-13 18:16:21 +0100[exa]hides the godel statue deeper in the bag
2021-12-13 18:16:22 +0100 <samlamamma> monochrom: But it's a lossless bijection, so what am I missing? (reading int ans now)
2021-12-13 18:16:23 +0100 <monochrom> I bet no.
2021-12-13 18:17:04 +0100pfurla_(~pfurla@2804:18:5002:3d2c:db:f3d4:1503:ae07)
2021-12-13 18:17:49 +0100 <[exa]> samlamamma: isomorphism differs from bijection in the assurance that it preserves some predefined structure. Actually the Integer answer is quite borderline on that
2021-12-13 18:18:04 +0100 <[exa]> predefined/assumed/required
2021-12-13 18:18:28 +0100 <monochrom> For example, both XML and Markdown are in bijection with Integer.
2021-12-13 18:18:32 +0100chele(~chele@user/chele) (Remote host closed the connection)
2021-12-13 18:18:32 +0100 <[exa]> samlamamma: what data types you have there? (just curious)
2021-12-13 18:18:35 +0100 <samlamamma> Right, but this "preserves [...]" would have to be encoded in some logical predicate
2021-12-13 18:18:50 +0100 <[exa]> samlamamma: yes, usually you have "relations to keep working"
2021-12-13 18:18:54 +0100 <samlamamma> [exa]: Oh, just D-Bus messages and JSON.
2021-12-13 18:19:00 +0100 <monochrom> That still doesn't help you with conversion, or alternatively to argue that there can't be a conversion.
2021-12-13 18:19:21 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-13 18:19:25 +0100pfurla(~pfurla@2804:18:585d:1964:1855:cca0:7d18:69de) (Ping timeout: 240 seconds)
2021-12-13 18:20:22 +0100 <samlamamma> monochrom: I imagine that in most "reasonable" cases finding a conversion (let's not be classical) might be easy. After all, programmers can do it easily
2021-12-13 18:20:45 +0100 <monochrom> Yeah, about that.
2021-12-13 18:20:53 +0100 <monochrom> Programmers make bugs just as easily.
2021-12-13 18:21:03 +0100 <samlamamma> Haha :-)
2021-12-13 18:21:43 +0100 <[exa]> samlamamma: anyway, in this case in Hs you'd probabl just parse/format the dbus format to/from Aeson and let the rest generate jsons and yamls for you :]
2021-12-13 18:21:51 +0100 <monochrom> I don't accept "programmers can do it easily". I only accept "programmers can do it with bugs easily".
2021-12-13 18:22:53 +0100 <samlamamma> monochrom: That's fair enough!
2021-12-13 18:22:56 +0100 <samlamamma> [exa]: Yeah, "someone else having done the work" is the real answer here, but not as interesting!
2021-12-13 18:24:03 +0100 <[exa]> let's go to the morphisms then, what are the operations you're doing on the stuff?
2021-12-13 18:24:14 +0100ubert(~Thunderbi@2a02:8109:9880:303c:a6e9:4af8:654:3268) (Remote host closed the connection)
2021-12-13 18:24:33 +0100 <[exa]> if it's just conversion, the "common middle format" is usually the way, preferably with a good ADT
2021-12-13 18:24:42 +0100pfurla(~pfurla@177.79.126.164)
2021-12-13 18:24:43 +0100 <samlamamma> I'd just like to give input/output examples and have my computer throw programs at me in <100ms and having me refine its responses with more
2021-12-13 18:24:44 +0100 <samlamamma> examples and logic! What's so hard about that??? /sarcasm
2021-12-13 18:25:21 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk)
2021-12-13 18:25:32 +0100 <samlamamma> [exa]: That's the boring part, we're not doing anything with the data. We're just shuffling it around.
2021-12-13 18:25:37 +0100kuribas(~user@ptr-25vy0i9k5aujcskch0c.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-12-13 18:26:13 +0100 <samlamamma> But now I think we're getting into org issues with my work re why no one has put in the effort for a common library to do this
2021-12-13 18:26:13 +0100 <samlamamma> stuff for us :-)
2021-12-13 18:26:18 +0100 <[exa]> good, just implement instance FromJson Dbus, instance ToJson Dbus, then convert=id
2021-12-13 18:26:45 +0100 <EvanR> isn't bijection literally shuffling things around
2021-12-13 18:26:50 +0100 <EvanR> in some sense
2021-12-13 18:26:53 +0100 <[exa]> yap
2021-12-13 18:27:22 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 18:27:23 +0100pfurla_(~pfurla@2804:18:5002:3d2c:db:f3d4:1503:ae07) (Ping timeout: 268 seconds)
2021-12-13 18:29:03 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk)
2021-12-13 18:29:05 +0100ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2021-12-13 18:30:37 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-12-13 18:32:43 +0100thevishy(~Nishant@2405:201:f005:c007:81f3:ee3c:76f0:8869) (Ping timeout: 252 seconds)
2021-12-13 18:32:43 +0100yhsiveht(~Nishant@2405:201:f005:c007:d93e:9746:14f0:2f69)
2021-12-13 18:34:05 +0100yhsiveht(~Nishant@2405:201:f005:c007:d93e:9746:14f0:2f69) (Client Quit)
2021-12-13 18:37:33 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 18:37:53 +0100yuyua32(~yuyua32@wireless-student-pt3-240-232.lut.ac.uk) (Quit: Client closed)
2021-12-13 18:37:54 +0100deadmarshal(~deadmarsh@95.38.114.19)
2021-12-13 18:37:56 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 18:39:13 +0100pfurla_(~pfurla@177.79.116.198)
2021-12-13 18:40:51 +0100pfurla(~pfurla@177.79.126.164) (Read error: Connection reset by peer)
2021-12-13 18:41:51 +0100notzmv(~zmv@user/notzmv) (Remote host closed the connection)
2021-12-13 18:42:54 +0100notzmv(~zmv@user/notzmv)
2021-12-13 18:43:51 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-13 18:43:51 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-13 18:43:54 +0100allbery_bgeekosaur
2021-12-13 18:45:52 +0100alx741(~alx741@157.100.93.160)
2021-12-13 18:47:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-12-13 18:49:06 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-13 18:50:06 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 18:50:06 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 18:50:06 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 18:50:46 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 18:53:10 +0100pfurla_(~pfurla@177.79.116.198) (Read error: Connection reset by peer)
2021-12-13 18:54:16 +0100samlamam`(~user@2a02:aa1:1608:7ad3:e9b0:545c:1f5b:b2ec)
2021-12-13 18:56:34 +0100samlamamma(~user@79.138.136.192.mobile.tre.se) (Ping timeout: 260 seconds)
2021-12-13 18:56:47 +0100pfurla(~pfurla@2804:18:5804:7c6e:974:c347:e60e:e6)
2021-12-13 18:57:29 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 18:57:45 +0100samlamam`(~user@2a02:aa1:1608:7ad3:e9b0:545c:1f5b:b2ec) (Remote host closed the connection)
2021-12-13 18:58:54 +0100fr33domlover(~fr33@2.55.169.194) (Ping timeout: 260 seconds)
2021-12-13 18:59:27 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 19:00:54 +0100mbuf(~Shakthi@122.174.40.28) (Quit: Leaving)
2021-12-13 19:01:58 +0100xff0x(~xff0x@port-92-195-24-10.dynamic.as20676.net) (Quit: xff0x)
2021-12-13 19:03:32 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
2021-12-13 19:03:59 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-13 19:05:21 +0100lechner(~lechner@debian/lechner) (Ping timeout: 252 seconds)
2021-12-13 19:05:45 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 19:08:25 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-12-13 19:11:23 +0100xff0x(~xff0x@2001:1a81:5245:500:35c3:4c34:eb85:8494)
2021-12-13 19:11:58 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2021-12-13 19:12:12 +0100arjun(~arjun@103.57.87.133)
2021-12-13 19:13:04 +0100 <dminuoso> Lazy IO strikes again.
2021-12-13 19:13:40 +0100arjun(~arjun@103.57.87.133) (Remote host closed the connection)
2021-12-13 19:13:51 +0100alx741(~alx741@157.100.93.160)
2021-12-13 19:13:58 +0100arjun(~arjun@103.57.87.133)
2021-12-13 19:14:23 +0100 <dminuoso> I think?
2021-12-13 19:14:24 +0100 <dminuoso> openBinaryFile: resource busy (file is locked)
2021-12-13 19:15:29 +0100 <dminuoso> This is so annoying, cant even figure out why :(
2021-12-13 19:16:08 +0100 <EvanR> windows?
2021-12-13 19:16:17 +0100 <dminuoso> Linux
2021-12-13 19:16:27 +0100jz99(~Guest19@n110-33-34-202.hum1.act.optusnet.com.au) (Quit: Client closed)
2021-12-13 19:16:53 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 19:17:07 +0100Guest19(~Guest19@n110-33-34-202.hum1.act.optusnet.com.au)
2021-12-13 19:17:08 +0100 <dminuoso> Im recursing nested zip files using `zip`, and for each entry I use withSystemTempFile, I write it to the provided handle, and then use `zip` to open the provided path
2021-12-13 19:17:22 +0100 <dminuoso> And in that recursive zip I get that error
2021-12-13 19:17:30 +0100nvmd(~nvmd@user/nvmd)
2021-12-13 19:17:44 +0100 <dminuoso> The writing happens using Data.ByteString.hPut
2021-12-13 19:18:08 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com)
2021-12-13 19:18:13 +0100sander(~sander@user/sander) (Ping timeout: 240 seconds)
2021-12-13 19:18:34 +0100sander(~sander@user/sander)
2021-12-13 19:18:40 +0100 <dminuoso> I wonder, does the GHC RTS employ some kind of internal locking when opening files?
2021-12-13 19:18:45 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2021-12-13 19:19:11 +0100 <EvanR> so opening a file for reading that is already open for writing and in the middle of things. But I thought writing wasn't lazy at all
2021-12-13 19:20:21 +0100 <dminuoso> I was suspecting lazy IO anyhow
2021-12-13 19:20:25 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 19:21:11 +0100 <dminuoso> I naively expected to simply get two separate file descriptors under the hood
2021-12-13 19:21:16 +0100 <EvanR> are you closing the file before opening it
2021-12-13 19:22:31 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 19:22:36 +0100 <dminuoso> Nope
2021-12-13 19:22:57 +0100 <dminuoso> https://hackage.haskell.org/package/base-4.16.0.0/docs/System-IO.html#g:8 suggests this would be fine
2021-12-13 19:23:09 +0100 <dminuoso> oh, but maybe I didnt read the warning right
2021-12-13 19:23:40 +0100 <dminuoso> I first start with a write handler via withSystemTempFile, and then (hopefully) a read only handle using zip
2021-12-13 19:24:07 +0100 <dminuoso> https://hackage.haskell.org/package/zip-1.7.2/docs/src/Codec.Archive.Zip.Internal.html#scanArchive
2021-12-13 19:24:07 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 19:24:12 +0100xkuru(~xkuru@user/xkuru)
2021-12-13 19:24:21 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 19:24:28 +0100 <EvanR> if openBinaryFile error is about the large zip file you're reading, makes sense
2021-12-13 19:24:39 +0100 <EvanR> if it's about the temp file, not sure
2021-12-13 19:24:54 +0100 <EvanR> oh, are you trying to lazy I/O open the temp file...
2021-12-13 19:25:33 +0100 <dminuoso> Seems that way
2021-12-13 19:26:31 +0100 <EvanR> what if you strict open the temp file xD
2021-12-13 19:26:49 +0100 <dminuoso> Well I guess I can simply close the file and manage it with bracket myself
2021-12-13 19:26:52 +0100 <dolio> What is "strict open"?
2021-12-13 19:27:44 +0100x88x88x(~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
2021-12-13 19:28:21 +0100 <dminuoso> Anyway, the RTS has some kind of lockFile that mkFD uses
2021-12-13 19:28:27 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 268 seconds)
2021-12-13 19:28:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-13 19:28:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-13 19:28:33 +0100wroathe(~wroathe@user/wroathe)
2021-12-13 19:28:39 +0100 <dminuoso> Sadly without any comments or documentation. :(
2021-12-13 19:28:39 +0100 <EvanR> Data.ByteString.getContents
2021-12-13 19:29:06 +0100 <EvanR> er
2021-12-13 19:29:08 +0100 <EvanR> hGetContents
2021-12-13 19:29:29 +0100 <dolio> Okay, so nothing to do with opening a file.
2021-12-13 19:30:02 +0100 <EvanR> yeah
2021-12-13 19:30:17 +0100 <dminuoso> But judging from a skim, it seems that the RTS does not allow having two simultaneous non-ReadMode handles to the same file
2021-12-13 19:32:13 +0100 <EvanR> that's a concrete that to be tested
2021-12-13 19:32:19 +0100mc47(~mc47@xmonad/TheMC47)
2021-12-13 19:32:21 +0100 <EvanR> to see if it's false at least
2021-12-13 19:32:33 +0100 <EvanR> concrete thing*
2021-12-13 19:32:45 +0100 <dminuoso> Well the code in mkFD is quite clear
2021-12-13 19:32:54 +0100 <dminuoso> It's just surprising because zip actually opens in ReadMode
2021-12-13 19:33:07 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-12-13 19:34:11 +0100 <EvanR> the docs for lazy bytestring suggests there's a lock on something that's being lazy I/O read
2021-12-13 19:34:15 +0100mmhat(~mmh@55d455f3.access.ecotel.net)
2021-12-13 19:35:22 +0100 <dminuoso> Im not using lazy bytestrings though
2021-12-13 19:36:08 +0100 <EvanR> oh
2021-12-13 19:36:38 +0100dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-12-13 19:37:34 +0100ystael(~ystael@user/ystael)
2021-12-13 19:37:55 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-13 19:39:01 +0100arjun(~arjun@103.57.87.133) (Quit: Leaving)
2021-12-13 19:40:48 +0100edrx(~Eduardo@2804:18:581c:883f:998:719e:3903:d0a1)
2021-12-13 19:41:32 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
2021-12-13 19:42:05 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-13 19:42:26 +0100alx741(~alx741@157.100.93.160)
2021-12-13 19:43:33 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-13 19:44:21 +0100 <edrx> hi! I am learning Agda using Wadler's PLFA and Peter Selinger's lectures. Both Wadler and Selinger _define_ the logical connectives in their tutorials, but I can't find references to where these definitions are in Agda's stdlib... is there a module of Agda that I can import and that defines _∧_, _∨_, _↔_, etc, for truth-values?
2021-12-13 19:47:04 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 19:47:10 +0100 <earendel> kritzefitz: hm. calculus can deal with infinitely small margins. lim->0 ..
2021-12-13 19:47:41 +0100Guest19(~Guest19@n110-33-34-202.hum1.act.optusnet.com.au) (Quit: Client closed)
2021-12-13 19:49:00 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-12-13 19:49:24 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 268 seconds)
2021-12-13 19:49:56 +0100kayvank(~user@52-119-115-185.PUBLIC.monkeybrains.net)
2021-12-13 19:51:19 +0100 <earendel> however the coastline of england is infinitely long. the more precise you measure, the longer it gets. :)
2021-12-13 19:51:24 +0100pfurla(~pfurla@2804:18:5804:7c6e:974:c347:e60e:e6) (Quit: gone to sleep. ZZZzzz…)
2021-12-13 19:51:28 +0100 <earendel> rough huh?
2021-12-13 19:51:56 +0100 <dolio> It probably isn't.
2021-12-13 19:51:56 +0100 <EvanR> even though there possible haskell programs is countable, you can't create a list of all Stream Bool (that could be generated by haskell)
2021-12-13 19:52:19 +0100 <earendel> dolio: it is.
2021-12-13 19:52:20 +0100 <EvanR> in haskell
2021-12-13 19:52:25 +0100 <geekosaur> isn't that just another form of zeno's paradox?
2021-12-13 19:52:49 +0100 <dolio> earendel: No, that's some idealized nonsense people say when talking about fractals.
2021-12-13 19:53:07 +0100 <dolio> The coastline of England isn't an actual mathematical fractal.
2021-12-13 19:53:40 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-12-13 19:53:57 +0100 <EvanR> yeah if you walk around it you get somewhere
2021-12-13 19:53:57 +0100trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Client Quit)
2021-12-13 19:53:58 +0100 <earendel> its not idealised. it says the more precise you measure the longer it gets.
2021-12-13 19:54:07 +0100 <monochrom> I like an idealized England. :)
2021-12-13 19:54:54 +0100 <dolio> Okay, prove that it will always get longer the more precisely you measure.
2021-12-13 19:55:27 +0100 <geekosaur> it's idealised if only because there are limits both to precision and to fractal expansion in the real world as opposed to the mathematical one
2021-12-13 19:55:38 +0100 <dolio> Right.
2021-12-13 19:56:15 +0100 <earendel> which is a fact. it also elegenantly points at limitations as of primary: limits of the machines we use to compute. and time memory it would take too. for infinity it would be a lot. especially at its ends.
2021-12-13 19:56:31 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk)
2021-12-13 19:58:54 +0100econo(uid147250@user/econo)
2021-12-13 19:58:56 +0100 <monochrom> "The closer you look, the less you see."
2021-12-13 20:00:31 +0100 <earendel> dolio: ok. imagine you put a grid over england. of some arbitrary resolution. now you can draw the coast of england using nodes at the grid-snaps. now: the higer the resolution gets, the more precise you can map the coast on it right? so far so good. now consider this. the shortest distance between two points/nodes is .. a line! now if you add more nodes (higher resolution) the distance between the points can only get longer or stay equally long
2021-12-13 20:00:31 +0100 <earendel> (with the additional node being exactly on that line)
2021-12-13 20:01:08 +0100lechner(~lechner@debian/lechner)
2021-12-13 20:01:15 +0100 <geekosaur> so have you heard of zeno's paradox?
2021-12-13 20:01:18 +0100 <monochrom> You do not want your precision to exceed the atomic level (say). Because at that point the whole notion of "coast line" dissolves.
2021-12-13 20:01:35 +0100 <dsal> That describes how I understand things.
2021-12-13 20:01:54 +0100 <monochrom> But then once you bound your precision, you stop at a finite answer.
2021-12-13 20:02:10 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-12-13 20:02:12 +0100 <monochrom> Also technically you no longer have a fractal.
2021-12-13 20:02:25 +0100 <dsal> My gap of understanding has infinite precision.
2021-12-13 20:02:26 +0100 <dolio> Eventually they stay equally long, because the real coastline of England isn't actually a fractal.
2021-12-13 20:02:31 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-12-13 20:02:43 +0100 <monochrom> But I'm OK with an idealized English notion. We have idealized circles too.
2021-12-13 20:03:24 +0100 <geekosaur> for that matter, have you heard of banach-tarski?
2021-12-13 20:03:24 +0100 <earendel> one more on infinity; if the universe is infinite (and so far we can look now it seems to be perfectly flat .. ergo infinite) it was infinite even as the observable universe was the size close to smallest (at big bang)
2021-12-13 20:03:53 +0100 <dolio> I see no reason to assume the universe is infinite, either.
2021-12-13 20:04:12 +0100edrx(~Eduardo@2804:18:581c:883f:998:719e:3903:d0a1) (Ping timeout: 268 seconds)
2021-12-13 20:05:00 +0100 <earendel> one more. during the inflation. the universe expanded in a very short time by the same factor it has expanded it expanded since then till today. and! by that time it was the size of an orange.
2021-12-13 20:05:03 +0100alx741(~alx741@157.100.93.160)
2021-12-13 20:05:12 +0100earendeldrops the mike
2021-12-13 20:05:13 +0100 <monochrom> The Banach-Tarski paradox says that England can exit Europe twice in a row. (1st was Brexit, 2nd was losing the Euro Cup.) >:)
2021-12-13 20:05:22 +0100 <EvanR> lol
2021-12-13 20:06:59 +0100 <EvanR> anyway, countable uncountable is another one of those things that gets fantastic descriptions because it rarely has any practical relevance
2021-12-13 20:07:13 +0100 <EvanR> so no one gets the opportunity to call bullshit
2021-12-13 20:08:28 +0100 <dolio> Countability is much more interesting constructively.
2021-12-13 20:09:11 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-d088-4906-a1eb-3fe7.res6.spectrum.com) (Remote host closed the connection)
2021-12-13 20:09:26 +0100 <dolio> Like, you can't show that the extended naturals are countable, so the continuum hyptothesis is obviously false. :þ
2021-12-13 20:09:34 +0100 <earendel> im no good in maths, but from what i get informatics don't deal with limitations of hardware like egineers do. if something halts, it wouldn't matter if the universe still would exist at that time. it will halt.
2021-12-13 20:09:36 +0100 <earendel> lol
2021-12-13 20:10:04 +0100 <earendel> not that engineering has no merits!
2021-12-13 20:10:41 +0100 <earendel> and from what i get this is where you were pointing at. fuck circles. all is a polygon. xd the holy n-eck
2021-12-13 20:10:49 +0100jkaye(~jkaye@2601:281:8300:7530:8f84:8d09:7b68:c6ce) (Ping timeout: 250 seconds)
2021-12-13 20:10:49 +0100 <dolio> There are probably constructively acceptable axioms that make it uncountable (like 'not countable'), even.
2021-12-13 20:11:38 +0100 <EvanR> in my mind there is a positive notion of uncountable somehow
2021-12-13 20:11:42 +0100 <dolio> Some continuity principle.
2021-12-13 20:11:48 +0100 <boxscape> ski: I think you had some notation in mind for the existential version (if that makes sense) of => at some point? I don't remember what it was, but just wanted to note, there's some discussion about what it should be in https://github.com/ghc-proposals/ghc-proposals/pull/473 - at least I think it's the same idea
2021-12-13 20:11:59 +0100 <monochrom> *>
2021-12-13 20:12:00 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 20:12:08 +0100 <boxscape> ah, right
2021-12-13 20:12:09 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 20:12:13 +0100 <dolio> Oh yeah. Uncountable is actually stronger. Like, for any enumeration, you can produce a value not in the enumeration.
2021-12-13 20:12:56 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
2021-12-13 20:13:01 +0100jkaye(~jkaye@2601:281:8300:7530:770c:7340:e88b:8722)
2021-12-13 20:13:12 +0100 <boxscape> wait, ski isn't even online. Why is matrix telling me otherwise >:(
2021-12-13 20:13:20 +0100 <dolio> But, the extended naturals are just not provably countable if you don't add principles, because in classical mathematics they are countable.
2021-12-13 20:13:25 +0100deadmarshal(~deadmarsh@95.38.114.19) (Ping timeout: 250 seconds)
2021-12-13 20:14:31 +0100 <EvanR> principles are cool
2021-12-13 20:14:42 +0100pgib(~textual@173.38.117.69)
2021-12-13 20:14:44 +0100 <EvanR> principals, usually not
2021-12-13 20:15:20 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 20:15:44 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 20:16:48 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-43bd-64a7-1221-490e.res6.spectrum.com)
2021-12-13 20:19:03 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-13 20:22:00 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 20:23:27 +0100dsrt^(~dsrt@wsip-98-188-240-142.mc.at.cox.net)
2021-12-13 20:24:53 +0100 <earendel> princesses are best <3
2021-12-13 20:25:11 +0100 <earendel> printhesses
2021-12-13 20:27:01 +0100Jing(~hedgehog@2604:a840:3::10c8) (Remote host closed the connection)
2021-12-13 20:29:22 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 20:30:46 +0100alx741(~alx741@157.100.93.160)
2021-12-13 20:30:53 +0100Akiva(~Akiva@user/Akiva)
2021-12-13 20:31:25 +0100Jing(~hedgehog@2604:a840:3::10c8)
2021-12-13 20:31:32 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 20:31:42 +0100ubert(~Thunderbi@p200300ecdf1abbd3ca03b07f10ffc657.dip0.t-ipconnect.de)
2021-12-13 20:32:40 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 20:36:27 +0100raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-13 20:36:38 +0100fr33domlover(~fr33@2.55.171.43)
2021-12-13 20:40:02 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-12-13 20:40:56 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 20:43:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 20:45:01 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 20:48:19 +0100 <sm> why does cabal fail on m1 mac with "unrecognized instruction mnemonic" / "you need clang" errors here: https://bpa.st/FJ2Q ?
2021-12-13 20:48:39 +0100 <sm> `cabal` is an x86 binary
2021-12-13 20:49:57 +0100 <sclv> i think its a ghc issue where its only able to compile for m1 via llvm?
2021-12-13 20:51:22 +0100 <sm> thanks, I'll ask them
2021-12-13 20:52:42 +0100 <geekosaur> if cabal is an x86 binary then it should be trying to build for x86, but the followup error suggests it's trying to build natively
2021-12-13 20:53:04 +0100 <geekosaur> "you need clang" is one of ghc's typically oh-so-helpful suggestions :)
2021-12-13 20:54:09 +0100 <geekosaur> I guess this in part because the assembly shown pretty clearly expects ; to be a comment character, which iirc it is on x86
2021-12-13 20:57:33 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 252 seconds)
2021-12-13 20:57:51 +0100alx741(~alx741@157.100.93.160)
2021-12-13 21:00:38 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-12-13 21:00:47 +0100 <sm> indeed.. I believe homebrew's haskell binaries switched to arm binaries semi recently. `brew install cabal-install` got me an arm cabal binary, which fixed it
2021-12-13 21:05:16 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 268 seconds)
2021-12-13 21:10:21 +0100juhp(~juhp@128.106.188.82)
2021-12-13 21:10:48 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263)
2021-12-13 21:12:00 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 21:15:59 +0100mcglk(~mcglk@131.191.49.120) (Read error: Connection reset by peer)
2021-12-13 21:18:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-13 21:19:07 +0100mcglk(~mcglk@131.191.49.120)
2021-12-13 21:20:16 +0100coot(~coot@2a02:a310:e03f:8500:933a:39ca:ef4e:37cb)
2021-12-13 21:26:52 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-13 21:27:41 +0100deadmarshal(~deadmarsh@95.38.114.19)
2021-12-13 21:29:01 +0100alx741(~alx741@181.199.42.79)
2021-12-13 21:31:36 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection)
2021-12-13 21:32:10 +0100deadmarshal(~deadmarsh@95.38.114.19) (Ping timeout: 256 seconds)
2021-12-13 21:36:29 +0100briandaed(~root@185.234.208.208.r.toneticgroup.pl)
2021-12-13 21:38:51 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 21:39:49 +0100Akiva(~Akiva@user/Akiva)
2021-12-13 21:39:50 +0100alx741(~alx741@181.199.42.79) (Read error: Connection reset by peer)
2021-12-13 21:40:30 +0100alx741(~alx741@157.100.93.160)
2021-12-13 21:42:19 +0100 <dminuoso> EvanR: By the way, I ended up just closing the file before zip opened it.
2021-12-13 21:42:29 +0100 <dminuoso> Cant for my life figure out why GHC gives me these file is locked errors here.
2021-12-13 21:43:19 +0100 <monochrom> Is this on Windows?
2021-12-13 21:43:36 +0100 <dminuoso> No, this is on Linux
2021-12-13 21:43:41 +0100 <monochrom> Ah yikes.
2021-12-13 21:44:24 +0100briandaed(~root@185.234.208.208.r.toneticgroup.pl) (Quit: Lost terminal)
2021-12-13 21:44:52 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 21:49:03 +0100 <johnw> anyone else noticed that foldl' f z xs is morally equivalent to execState (mapM_ f xs) z, where f :: a -> State b ()?
2021-12-13 21:49:15 +0100 <dminuoso> openTempFile "/tmp" "foo.ext" >>= \(path, handle) -> openFile path ReadMode
2021-12-13 21:49:20 +0100 <dminuoso> This is a quick reproducer
2021-12-13 21:49:41 +0100 <dminuoso> I suspect there's some strange interaction between the way openTempFile obtains a file handle and the RTS locking code on `openFile`
2021-12-13 21:49:49 +0100 <johnw> (though I may need a strictified version of State for that to be true)
2021-12-13 21:49:55 +0100 <dminuoso> It's definitely a bug, just not sure whether its a documentation bug or a behavioral bug
2021-12-13 21:51:11 +0100 <dolio> That's essentially the same observation as mapAccumL/R being mapM.
2021-12-13 21:52:08 +0100fr33domlover(~fr33@2.55.171.43) (Ping timeout: 268 seconds)
2021-12-13 21:52:39 +0100 <dolio> Just where the output isn't interesting.
2021-12-13 21:53:05 +0100 <monochrom> johnw: Yes, it is also how Jeremy Gibbons generalizes APL to all of (Traversable t, Representable t).
2021-12-13 21:53:47 +0100 <monochrom> https://link.springer.com/chapter/10.1007/978-3-662-54434-1_21
2021-12-13 21:56:14 +0100 <dminuoso> let path = "./openfile.bug" in do { openFile path ReadWriteMode; openFile path ReadMode }
2021-12-13 21:56:14 +0100Jing(~hedgehog@2604:a840:3::10c8) (Remote host closed the connection)
2021-12-13 21:56:18 +0100 <dminuoso> An even simpler reproducer
2021-12-13 21:56:19 +0100lavaman(~lavaman@98.38.249.169)
2021-12-13 21:56:27 +0100 <monochrom> Err, (Applicative t, Traversable t, Representable t)
2021-12-13 21:57:22 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-12-13 21:57:23 +0100 <dminuoso> The way I read 41.3.4 File locking, this should be permisseable
2021-12-13 21:58:24 +0100 <dminuoso> Am I misreading the report?
2021-12-13 21:59:39 +0100 <dolio> "there may either be many handles on the same file which manage input, or just one handle on the file which manages output"
2021-12-13 21:59:51 +0100 <dminuoso> That or is meant exclusively, I presume?
2021-12-13 21:59:51 +0100 <dolio> It sounds like one writer locks the file.
2021-12-13 22:00:18 +0100Jing(~hedgehog@2604:a840:3::10c8)
2021-12-13 22:00:19 +0100 <dolio> I guess.
2021-12-13 22:00:25 +0100 <geekosaur> yes
2021-12-13 22:00:37 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-13 22:00:38 +0100 <geekosaur> I read it the same way dolio does: the or is exclusive
2021-12-13 22:00:56 +0100 <dolio> I mean, I might not read it that way, but that's clearly what GHC is doing.
2021-12-13 22:01:15 +0100 <dolio> So, considering the actual behavior, that or is exclusive.
2021-12-13 22:01:16 +0100 <dminuoso> "If any open or semi-closed handle is managing a file for output, no new handle can be allocated for that file"
2021-12-13 22:01:23 +0100 <geekosaur> either … or is generally exclusive to me
2021-12-13 22:01:34 +0100alx741(~alx741@157.100.93.160)
2021-12-13 22:01:54 +0100 <dminuoso> Okay, I think I kept reading it with the expectation to allow simultaneous multiple reader and one writer handle..
2021-12-13 22:02:21 +0100smartin(~Thunderbi@88.135.18.171) (Remote host closed the connection)
2021-12-13 22:02:40 +0100smartin(~Thunderbi@88.135.18.171)
2021-12-13 22:02:45 +0100cosimone`(~user@93-47-228-207.ip115.fastwebnet.it) (Remote host closed the connection)
2021-12-13 22:02:58 +0100acidjnk(~acidjnk@p200300d0c7271e77ede7a7f9d267d612.dip0.t-ipconnect.de)
2021-12-13 22:04:50 +0100cosimone(~user@93-47-228-207.ip115.fastwebnet.it)
2021-12-13 22:04:55 +0100 <dolio> That's also kind of a common concurrency pattern. Multiple readers at a time. Single writer at a time, and readers and writers block one another.
2021-12-13 22:06:35 +0100coot(~coot@2a02:a310:e03f:8500:933a:39ca:ef4e:37cb) (Quit: coot)
2021-12-13 22:06:40 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-12-13 22:07:12 +0100 <geekosaur> problem is that behaves oddly with disk files as the writer may change what you just read or even delete it (see ftruncate)
2021-12-13 22:07:34 +0100 <geekosaur> sockets and pipes are another story
2021-12-13 22:08:47 +0100 <geekosaur> a reader may even have buffered data that no longer exists
2021-12-13 22:08:47 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 22:10:07 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-12-13 22:10:18 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 22:10:56 +0100AkechiShiro(~licht@2a01:e0a:5f9:9681:1473:3dff:fe42:56a9) (Changing host)
2021-12-13 22:10:56 +0100AkechiShiro(~licht@user/akechishiro)
2021-12-13 22:11:33 +0100 <dolio> Oh yeah, I guess with "either" in there I'd most likely read it as exclusive anyway.
2021-12-13 22:15:48 +0100slice(~slice@user/slice)
2021-12-13 22:17:53 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 22:21:14 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net)
2021-12-13 22:21:31 +0100nosewings(~ngpc@2603-8081-3e05-e2d0-43bd-64a7-1221-490e.res6.spectrum.com) (Ping timeout: 252 seconds)
2021-12-13 22:25:41 +0100alx741(~alx741@157.100.93.160)
2021-12-13 22:26:36 +0100Neuromancer(~Neuromanc@user/neuromancer) (Remote host closed the connection)
2021-12-13 22:26:37 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 22:28:58 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection)
2021-12-13 22:30:00 +0100Morrow(~quassel@bzq-110-168-31-106.red.bezeqint.net)
2021-12-13 22:30:48 +0100nattiestnate(~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3)
2021-12-13 22:37:20 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 256 seconds)
2021-12-13 22:39:28 +0100Akiva(~Akiva@user/Akiva)
2021-12-13 22:40:34 +0100cjb(~cjb@user/cjb)
2021-12-13 22:41:02 +0100CiaoSen(~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-12-13 22:41:53 +0100 <dmj`> encodeStrict in aeson wouldn't be a bad idea
2021-12-13 22:42:34 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 22:44:45 +0100dmenz(~dmenz@2804:14d:5cd4:5e94::1)
2021-12-13 22:47:36 +0100pfurla(~pfurla@177.25.178.222)
2021-12-13 22:48:25 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-13 22:48:45 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-13 22:51:55 +0100Kauto(~Kauto@wireless-student-pt10-182-232.lut.ac.uk)
2021-12-13 22:52:09 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection)
2021-12-13 22:53:38 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2021-12-13 22:59:46 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436)
2021-12-13 23:00:16 +0100alx741(~alx741@181.199.42.79)
2021-12-13 23:01:19 +0100vicfred(~vicfred@user/vicfred)
2021-12-13 23:02:54 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 23:03:28 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-12-13 23:05:12 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net) (Remote host closed the connection)
2021-12-13 23:05:24 +0100jgeerds(~jgeerds@55d4ac73.access.ecotel.net)
2021-12-13 23:10:09 +0100alx741(~alx741@181.199.42.79) (Read error: Connection reset by peer)
2021-12-13 23:10:45 +0100alx741(~alx741@157.100.93.160)
2021-12-13 23:11:44 +0100pavonia(~user@user/siracusa)
2021-12-13 23:11:58 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2021-12-13 23:12:11 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2021-12-13 23:13:19 +0100BrokenClutch(~pioneer@2804:d41:c2b2:be00:da32:623d:efa3:7121)
2021-12-13 23:13:21 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-12-13 23:13:57 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net)
2021-12-13 23:14:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-13 23:15:14 +0100InternetCitizen(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-12-13 23:16:09 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-12-13 23:16:10 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com)
2021-12-13 23:16:25 +0100 <BrokenClutch> I know that this will sound dumb, but I developed a strong opinion about most haskell books (that I've read at least).
2021-12-13 23:16:25 +0100 <BrokenClutch> They are holding hands too much, like "let's make a software together xoxo" (which is fine), I miss a little of cppreference on haskell, like:
2021-12-13 23:16:25 +0100 <BrokenClutch> 1) Give definition of thing; 2) Give 4 to 6 examples in order from very simple/abstract things to very pratical and complex ones.
2021-12-13 23:16:25 +0100 <BrokenClutch> Correct me if I'm wrong
2021-12-13 23:16:53 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-12-13 23:18:47 +0100 <jackdk> BrokenClutch: I see what you're saying but I found when I was learning that the definitions are often just outside people's zones of proximal development. Also you can sometimes find that sort of stuff in haddocks rather than books.
2021-12-13 23:19:12 +0100 <dmj`> BrokenClutch: hmm, which books are you referring to? I didn't see any xoxo in LYAH, but I might have overlooked that section ... I'd always go to the typeclassopedia instead of other books, unless its on RTS stuff
2021-12-13 23:19:53 +0100 <jackdk> I think "xoxo" is referring to things like cute pictures (LYAH), goat jokes (HPFFP), etc.
2021-12-13 23:20:35 +0100 <jackdk> For typeclasses in particular, I've had the most success with "here is a repeated pattern. here is a typeclass that captures the pattern. here are some operations you can write using only the typeclass. here is how those operations behave for each instance"
2021-12-13 23:21:31 +0100 <BrokenClutch> jackdk: Me too
2021-12-13 23:21:58 +0100 <jackdk> just pointing out that it's a an additional step before the cppreference-style stuff you were talking about
2021-12-13 23:22:02 +0100 <dsal> BrokenClutch: haddock has all the definitions. It's pretty much all I use anymore.
2021-12-13 23:22:19 +0100 <Rembane> Hoogle is the best.
2021-12-13 23:22:42 +0100 <BrokenClutch> dmj: The best one was haskell in depth, it have those flaws that I've said but they've written good things about development
2021-12-13 23:22:57 +0100 <dsal> Yeah, hoogle is great when you know what something looks like but don't know what it's called.
2021-12-13 23:23:06 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2021-12-13 23:23:09 +0100 <BrokenClutch> dsal: Too little information, I'm not saying that's bad. I'm just missing cppreference.
2021-12-13 23:23:45 +0100 <BrokenClutch> I'm doing a combo of GHCI + hoogle + lambdabot + haskell report
2021-12-13 23:24:00 +0100 <dsal> @hoogle a -> Maybe b -> Either a b
2021-12-13 23:24:01 +0100 <lambdabot> Data.Either.Combinators maybeToRight :: b -> Maybe a -> Either b a
2021-12-13 23:24:01 +0100 <lambdabot> Rebase.Prelude maybeToRight :: () => b -> Maybe a -> Either b a
2021-12-13 23:24:01 +0100 <lambdabot> Network.Haskoin.Util maybeToEither :: b -> Maybe a -> Either b a
2021-12-13 23:25:05 +0100 <dsal> I don't miss cppreference. There's a part of learning anything new that is disorienting.
2021-12-13 23:25:06 +0100 <dmj`> BrokenClutch: Interesting, yea hackage might be best, or just .... raw source, that is probably the best tbh... back in my day we didn't have "books", we had broken haskell wiki links, darcs checkouts, cabal sandbox tarballs, and blue / white hackage pages w/ no source hyperlinks.
2021-12-13 23:25:06 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-12-13 23:26:30 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-12-13 23:26:58 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-12-13 23:28:05 +0100ees(~user@pool-108-18-30-46.washdc.fios.verizon.net) (Remote host closed the connection)
2021-12-13 23:28:26 +0100 <monochrom> The Haskell 2010 Report has all the definitions, but no examples.
2021-12-13 23:28:34 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-12-13 23:28:47 +0100 <monochrom> The blogosphere tutorials have all the examples, but no definition.
2021-12-13 23:28:53 +0100 <monochrom> Ah, what if you read both.
2021-12-13 23:30:12 +0100 <BrokenClutch> monochrom: I forgot to say what I'm doing to solve that! I've downloaded a lot of source codes, git-annex source is helping me a lot
2021-12-13 23:30:15 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-12-13 23:30:56 +0100 <BrokenClutch> and when the people who write the definition write the examples too, everything becomes better connected
2021-12-13 23:31:09 +0100 <BrokenClutch> bad comma, sorry
2021-12-13 23:36:30 +0100michalz(~michalz@185.246.204.122) (Remote host closed the connection)
2021-12-13 23:36:31 +0100burnsidesLlama(~burnsides@dhcp168-021.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-13 23:40:17 +0100smartin(~Thunderbi@88.135.18.171) (Quit: smartin)
2021-12-13 23:43:47 +0100Akiva(~Akiva@user/Akiva) (Ping timeout: 250 seconds)
2021-12-13 23:45:07 +0100jkaye(~jkaye@2601:281:8300:7530:770c:7340:e88b:8722) (Ping timeout: 252 seconds)
2021-12-13 23:45:31 +0100alx741(~alx741@157.100.93.160) (Read error: Connection reset by peer)
2021-12-13 23:48:07 +0100pfurla[m](uid345156@id-345156.tinside.irccloud.com)
2021-12-13 23:48:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-13 23:53:09 +0100BrokenClutch(~pioneer@2804:d41:c2b2:be00:da32:623d:efa3:7121) ()
2021-12-13 23:55:37 +0100kranius_(~kranius@222.186.245.213.rev.sfr.net)
2021-12-13 23:57:57 +0100emf(~emf@2620:10d:c091:480::1:cbc8) (Ping timeout: 252 seconds)