2024/03/05

2024-03-05 00:00:44 +0100prolic(~prolic@181.122.138.24) (Client Quit)
2024-03-05 00:00:55 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-05 00:00:59 +0100prolic_(~prolic_@181.122.138.24)
2024-03-05 00:19:47 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-05 00:19:49 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-03-05 00:21:37 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-03-05 00:24:31 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-03-05 00:38:00 +0100tri(~tri@172.59.9.202)
2024-03-05 00:39:25 +0100Square2(~Square4@user/square)
2024-03-05 00:42:28 +0100Square(~Square@user/square) (Ping timeout: 255 seconds)
2024-03-05 00:50:28 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 260 seconds)
2024-03-05 00:52:20 +0100Sgeo(~Sgeo@user/sgeo)
2024-03-05 00:52:54 +0100 <haskellbridge> <s​m> I have never paid attention to stack.yaml.lock and never regretted not committing it
2024-03-05 00:53:50 +0100 <geekosaur> I would hope it is recreated at need, or the name is horrid…
2024-03-05 00:54:16 +0100 <haskellbridge> <s​m> it is
2024-03-05 00:54:48 +0100 <haskellbridge> <s​m> I am deleting them all the time because they offend me when looking for files in a directory listing :)
2024-03-05 00:56:00 +0100 <geekosaur> the description earlier made it sound more like `cabal.freeze` than a lock file, tbh
2024-03-05 00:56:48 +0100 <haskellbridge> <s​m> AFAICT it's more documentation of the build plan used than anything else, I'm not sure it has much effect
2024-03-05 00:57:40 +0100 <geekosaur> okay, that makes more sense. I'd never check in `cabal.plan` either
2024-03-05 00:57:50 +0100 <haskellbridge> <s​m> you made me curious. https://docs.haskellstack.org/en/stable/lock_files/
2024-03-05 00:58:36 +0100 <geekosaur> blame glguy 🙂 [04 22:09:09] <glguy> lock files give other developers information about which versions of things actually work when they try to build it themselves
2024-03-05 00:59:32 +0100 <jackdk> I tend to check in cabal.project.freeze for the same reason as I'd check in flake.lock - as you say, it means you know exactly what versions of things you last built with
2024-03-05 00:59:43 +0100prolic_(~prolic_@181.122.138.24) (Ping timeout: 250 seconds)
2024-03-05 01:00:36 +0100 <geekosaur> yeh, freeze files are a reasonable thing to check in, build plans not so much
2024-03-05 01:01:01 +0100tri(~tri@172.59.9.202) (Remote host closed the connection)
2024-03-05 01:03:04 +0100 <glguy> Why blame me?
2024-03-05 01:03:47 +0100 <haskellbridge> <s​m> A bit more than build plan documentation then, it is also a cache to save reparsing yaml files and looking up package versions in snapshots. But that's not usually noticeable.
2024-03-05 01:04:10 +0100 <glguy> The documentation said that they made them so that you could commit them in source control and enable users on other machines to get the same build
2024-03-05 01:04:30 +0100 <glguy> with the advantage that you don't have to write them yourself
2024-03-05 01:05:22 +0100 <geekosaur> still sounds more like a freeze file than a lock file
2024-03-05 01:06:39 +0100 <glguy> I think the choice of the word "freeze" or "lock" just varies by the particular build too rather than having semantic importance
2024-03-05 01:07:09 +0100 <glguy> They're never like a cvs lock directory
2024-03-05 01:07:28 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-03-05 01:07:30 +0100 <haskellbridge> <s​m> in common practice just a stack.yaml and your package.yaml or .cabal file gives the same reproducibility, but the .lock file covers some evil corner cases that could bite you (rarely)
2024-03-05 01:08:09 +0100 <haskellbridge> <s​m> yes, freezing in place / locking in place sounds similar to me
2024-03-05 01:08:30 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-05 01:09:10 +0100 <geekosaur> not to me, I kinda expect a lock file to do something like preventing multiple programs from accessing the same resource
2024-03-05 01:09:34 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 246 seconds)
2024-03-05 01:09:49 +0100 <glguy> well a lot of build tools have coopted the term, so you'll have to adapt :(
2024-03-05 01:09:53 +0100 <haskellbridge> <s​m> sure, that's another more common usage
2024-03-05 01:10:41 +0100 <glguy> but I know what you mean
2024-03-05 01:11:06 +0100 <hololeap> why doesn't the tfdeps function here trigger a non-exhaustive pattern warning? https://0x0.st/H7SF.txt
2024-03-05 01:11:36 +0100 <geekosaur> because `~` is irrefutable?
2024-03-05 01:12:41 +0100 <glguy> hololeap: on recent GHC -Wall includes -Wincomplete-uni-patterns, which covers that
2024-03-05 01:12:45 +0100 <geekosaur> specifically, it makes the pattern always match and only throw later
2024-03-05 01:12:59 +0100 <haskellbridge> <s​m> ph88: I'd say if you're NASA, yes check it in, otherwise no real need, and any reduction in dirty files churn when you're trying to do other git stuff is valuable
2024-03-05 01:13:32 +0100 <hololeap> % foo ~(Just x) = x
2024-03-05 01:13:33 +0100 <yahb2> <no output>
2024-03-05 01:13:42 +0100 <hololeap> % map foo [Just 3, Nothing]
2024-03-05 01:13:42 +0100 <yahb2> *** Exception: <interactive>:277:1-17: Non-exhaustive patterns in Just x
2024-03-05 01:15:10 +0100 <hololeap> so it has the same problems, but handles the error lazily? or is this a valid design pattern somehow?
2024-03-05 01:15:18 +0100 <glguy> > let foo ~(Just x) = ('a', x) in fst (foo Nothing)
2024-03-05 01:15:19 +0100 <lambdabot> 'a'
2024-03-05 01:15:45 +0100gawen(~gawen@user/gawen) (Quit: cya)
2024-03-05 01:15:49 +0100 <glguy> You only write ~ patterns when you *know* you aren't going to use the things bound by the pattern when it wouldn't have matched
2024-03-05 01:15:51 +0100 <geekosaur> it's useful when the pattern might not actually be forced, or to break strict evaluation loops
2024-03-05 01:16:13 +0100notzmv(~daniel@user/notzmv) (Ping timeout: 255 seconds)
2024-03-05 01:16:42 +0100 <glguy> and you can't write a ~ pattern with multiple cases, so if you're writing one you're saying you know when that constructor is going to match out of band
2024-03-05 01:17:08 +0100gawen(~gawen@user/gawen)
2024-03-05 01:17:39 +0100rvalue(~rvalue@user/rvalue)
2024-03-05 01:17:54 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
2024-03-05 01:18:05 +0100srz(~srz@181.228.49.93) (Ping timeout: 240 seconds)
2024-03-05 01:18:22 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-03-05 01:18:41 +0100notzmv(~daniel@user/notzmv)
2024-03-05 01:18:53 +0100poscat(~poscat@user/poscat) (Quit: Bye)
2024-03-05 01:20:09 +0100redmp(~redmp@lib-02-subnet-194.rdns.cenic.net)
2024-03-05 01:20:13 +0100 <geekosaur> @src unzip
2024-03-05 01:20:13 +0100 <lambdabot> unzip = foldr (\(a,b) ~(as,bs) -> (a:as,b:bs)) ([],[])
2024-03-05 01:21:23 +0100 <redmp> Hi, I'm attempting to use CApiFFI by calling ghc at the command line, but I'm finding that on the first call to ghc I get a boatload of "implicit declaration" errors but I don't get them on subsequent calls. I think this is because something isn't being copied to the tmpdir wher the capi file is being generated on the first call.
2024-03-05 01:21:24 +0100poscat(~poscat@user/poscat)
2024-03-05 01:22:10 +0100 <redmp> What is the correct sequence of ghc or gcc commands to compile an .hs using CApiFFI and their corresponding .c files?
2024-03-05 01:22:40 +0100 <redmp> Thanks in advance...
2024-03-05 01:23:07 +0100bontaq(~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-03-05 01:23:08 +0100Inst(~Inst@120.244.192.75) (Ping timeout: 260 seconds)
2024-03-05 01:25:55 +0100 <mauke> I don't think there is such a thing as a corresponding .c file
2024-03-05 01:26:26 +0100 <mauke> redmp: what's your foreign import and what is the error message?
2024-03-05 01:28:31 +0100 <jackdk> mauke: https://www.haskell.org/ghc/blog/20210709-capi-usage.html GHC compiles `CApiFFI` imports by constructing a C file containing a stub, and compiling that. This lets it `foreign import` things with awkward calling conventions or macros. I've never used it so I don't think I can actually help here, though.
2024-03-05 01:28:35 +0100 <geekosaur> with CApiFFI? there is, because it has to go through the C compiler to support e.g. CPP
2024-03-05 01:28:52 +0100 <geekosaur> but the file shouldn't vbe retained between runs
2024-03-05 01:29:20 +0100 <glguy> redmp: Please construct an example file and failing command and put that on a pastebin so we can see what you mean
2024-03-05 01:29:29 +0100 <redmp> mauke: I'm referring to a project directory containing, e.g. a foo.hs and foo.c; I could also put a foo.h in there if it's necessary.
2024-03-05 01:29:35 +0100 <redmp> glguy: ok, I'll make a repro. Sorry.
2024-03-05 01:31:24 +0100 <mauke> by "corresponding .c file" I meant the implementation of the C function
2024-03-05 01:31:35 +0100 <mauke> not the intermediate code generated by ghc
2024-03-05 01:32:36 +0100 <mauke> but the implementation doesn't have to be in C and is irrelevant to "implicit declaration" warnings/errors, because those come from the compiler and missing symbols would show up in the linking phase
2024-03-05 01:34:20 +0100 <redmp> https://termbin.com/gmex
2024-03-05 01:35:08 +0100 <mauke> yeah, your functions have no declarations anywhere
2024-03-05 01:35:34 +0100 <glguy> redmp: when you're using the CApiFFI you need to tell GHC which header the function you're calling is in. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/ffi.html#the-capi-calling-convention
2024-03-05 01:35:39 +0100 <mauke> which is not an issue with the usual FFI, but with the CAPI stuff ghc generates and compiles a little piece of C code
2024-03-05 01:35:49 +0100 <mauke> so you do need a valid declaration in scope
2024-03-05 01:35:50 +0100 <glguy> That's the header.h part of foreign import capi "header.h f" f :: CInt -> IO CInt
2024-03-05 01:36:13 +0100 <redmp> ah, ok, i thought adding the header in there was optional.. i have different problems when i add the header in there, but let me try it and see
2024-03-05 01:36:29 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds)
2024-03-05 01:37:08 +0100 <mauke> the header is syntactically optional in foreign imports, but omitting it makes no sense with capi
2024-03-05 01:37:10 +0100 <geekosaur> one thing which I'm not sure if it will cause problems or not here, but if you are using `int` in C then you should use `CInt` in Haskell
2024-03-05 01:38:21 +0100 <mauke> (I would have to check the report on whether Int in foreign C declarations automatically maps to CInt with conversions)
2024-03-05 01:38:45 +0100 <glguy> redmp: Also, don't name the files foo.c and foo.hs, make sure the foo is different between those
2024-03-05 01:38:53 +0100 <redmp> geekosaur: Yes, I'm using Foreign.C.Types in my real code. :)
2024-03-05 01:39:14 +0100 <redmp> Ah, ok, I'll make sure the names are distinct too.
2024-03-05 01:40:25 +0100 <glguy> redmp: https://termbin.com/6b23
2024-03-05 01:41:26 +0100 <glguy> Haskell Int maps to HsInt and will be 32-bit or 64-bit depending on the platform
2024-03-05 01:41:36 +0100 <glguy> CInt will map to whatever int is in C, which is probably 32-bit
2024-03-05 01:53:17 +0100 <redmp> hmm, so, i'm having trouble replicating the thing in my project in the repro, so that's going to take a bit longer
2024-03-05 01:53:44 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-03-05 01:53:51 +0100 <redmp> but i tried what's in your paste, glguy and when i do `ghc Foo.hs impl.c` ghc only builds the o/hi files, no the executable
2024-03-05 01:58:17 +0100 <redmp> here's a paste: https://termbin.com/73o2
2024-03-05 01:58:39 +0100 <redmp> i changed my files to match glguy's and performed the same command, but only got o/hi files.. after adding `-main-is` everything worked
2024-03-05 01:59:17 +0100 <geekosaur> you called it `Module Foo`
2024-03-05 01:59:41 +0100 <geekosaur> it needs to be `Module Main` for Haskell to treat it as an executable, or use `-main-is`
2024-03-05 02:00:07 +0100 <mauke> well, glguy did
2024-03-05 02:00:41 +0100 <redmp> ah, my mistake
2024-03-05 02:00:46 +0100 <geekosaur> are we looking at the same paste? 6b23 uses `module Main`
2024-03-05 02:00:50 +0100 <mauke> oh, no
2024-03-05 02:01:01 +0100 <mauke> sorry, I got confused
2024-03-05 02:01:35 +0100srz(~srz@181.228.49.93)
2024-03-05 02:02:29 +0100 <geekosaur> (also I incorrectly capitalized `module` twice, oops)
2024-03-05 02:08:24 +0100 <redmp> clearly this is confusing; thank you both for your help
2024-03-05 02:08:51 +0100 <redmp> the problem about duplicate definitions seems to have been because i was incorrectly including structs in my header; it's been awhile since i've used c, i guess
2024-03-05 02:09:15 +0100 <redmp> s/both/three/g
2024-03-05 02:11:10 +0100srz(~srz@181.228.49.93) (Quit: Leaving)
2024-03-05 02:11:10 +0100 <mauke> struct definitions themselves are fine
2024-03-05 02:11:14 +0100 <mauke> global variables aren't
2024-03-05 02:14:41 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 02:19:36 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-03-05 02:22:10 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-03-05 02:22:44 +0100ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2024-03-05 02:24:16 +0100xff0x(~xff0x@2405:6580:b080:900:44af:d746:5b50:d1a) (Ping timeout: 260 seconds)
2024-03-05 02:27:05 +0100ec(~ec@gateway/tor-sasl/ec)
2024-03-05 02:28:29 +0100megaTherion(~therion@unix.io)
2024-03-05 02:33:17 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-05 02:35:30 +0100 <redmp> mauke: thanks
2024-03-05 02:36:03 +0100 <redmp> here's the repro for that behavior (two pastes; i recommend diffing them): `curl -s https://termbin.com/uxbt > before; curl -s https://termbin.com/wrw7 > after; vimdiff before after`
2024-03-05 02:37:01 +0100 <geekosaur> yeh, you had the struct definition in the .c file instead of the h file
2024-03-05 02:37:25 +0100 <geekosaur> so the .h file couldn't refer to it and the .c file found the implicit definition created from the dangling ref in the .h file
2024-03-05 02:39:03 +0100 <redmp> ahh.. ok.. for some reason i thought structs belonged in the c file; i forgot all my c i guess... sorry for asking what ended up being c questions in #haskell!
2024-03-05 02:39:03 +0100jargon(~jargon@154.sub-174-205-226.myvzw.com) (Read error: Connection reset by peer)
2024-03-05 02:39:47 +0100 <geekosaur> struct *variables* go in the c file, definitions should usually be in the header
2024-03-05 02:41:36 +0100jargon(~jargon@154.sub-174-205-226.myvzw.com)
2024-03-05 02:45:28 +0100megaTherion(~therion@unix.io) (Ping timeout: 246 seconds)
2024-03-05 02:46:01 +0100redmp(~redmp@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 264 seconds)
2024-03-05 02:46:25 +0100jargon(~jargon@154.sub-174-205-226.myvzw.com) (Read error: Connection reset by peer)
2024-03-05 02:46:38 +0100bilegeek(~bilegeek@2600:1008:b05e:f8ee:8cc2:4fc:3c7e:f54a)
2024-03-05 02:48:53 +0100zenstoic(uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-03-05 02:52:37 +0100ystael(~ystael@user/ystael) (Ping timeout: 264 seconds)
2024-03-05 02:55:42 +0100megaTherion(~therion@unix.io)
2024-03-05 02:59:13 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2024-03-05 03:00:45 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-03-05 03:02:15 +0100shapr`(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-03-05 03:03:55 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
2024-03-05 03:04:10 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2024-03-05 03:04:17 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 252 seconds)
2024-03-05 03:05:13 +0100otto_s(~user@p4ff27284.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-03-05 03:06:54 +0100otto_s(~user@p4ff27284.dip0.t-ipconnect.de)
2024-03-05 03:12:14 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-03-05 03:12:28 +0100rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-05 03:13:14 +0100rembo10(~rembo10@main.remulis.com)
2024-03-05 03:14:09 +0100flounders(~flounders@24.246.176.178)
2024-03-05 03:28:47 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-03-05 03:46:04 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-03-05 03:49:37 +0100otto_s(~user@p4ff27284.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-03-05 03:58:56 +0100otto_s(~user@p5de2fd4c.dip0.t-ipconnect.de)
2024-03-05 04:06:45 +0100td_(~td@i53870912.versanet.de) (Ping timeout: 255 seconds)
2024-03-05 04:08:24 +0100td_(~td@i5387092D.versanet.de)
2024-03-05 04:13:26 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-03-05 04:15:03 +0100shapr`shapr
2024-03-05 04:17:12 +0100travgm(~travgm@2600:100e:a121:944a:1dab:9849:35ba:9926)
2024-03-05 04:17:18 +0100travgm(~travgm@2600:100e:a121:944a:1dab:9849:35ba:9926) (Changing host)
2024-03-05 04:17:18 +0100travgm(~travgm@fsf/member/travgm)
2024-03-05 04:26:47 +0100mulk(~mulk@p5b2dc813.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-03-05 04:27:58 +0100mulk(~mulk@pd9514963.dip0.t-ipconnect.de)
2024-03-05 04:31:11 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Quit: sleep)
2024-03-05 04:35:52 +0100rosco(~rosco@175.136.155.53)
2024-03-05 04:37:39 +0100jargon(~jargon@154.sub-174-205-226.myvzw.com)
2024-03-05 04:47:22 +0100otto_s(~user@p5de2fd4c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-03-05 04:47:32 +0100otto_s(~user@p5de2fd4c.dip0.t-ipconnect.de)
2024-03-05 04:47:58 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 264 seconds)
2024-03-05 04:49:17 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2024-03-05 05:01:24 +0100thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-03-05 05:05:35 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-03-05 05:06:25 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-03-05 05:08:58 +0100MironZ(~MironZ@nat-infra.ehlab.uk) (Quit: Ping timeout (120 seconds))
2024-03-05 05:09:18 +0100MironZ(~MironZ@nat-infra.ehlab.uk)
2024-03-05 05:10:04 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-05 05:14:50 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 05:21:54 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-03-05 05:22:21 +0100euleritian(~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de)
2024-03-05 05:29:00 +0100aforemny_(~aforemny@i59F516FE.versanet.de)
2024-03-05 05:29:05 +0100aforemny(~aforemny@2001:9e8:6cce:2800:bc66:ad8e:ad93:7074) (Ping timeout: 268 seconds)
2024-03-05 05:34:01 +0100mulk(~mulk@pd9514963.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-03-05 05:36:21 +0100mulk(~mulk@pd9514963.dip0.t-ipconnect.de)
2024-03-05 05:39:50 +0100benkard(~mulk@pd9514963.dip0.t-ipconnect.de)
2024-03-05 05:41:23 +0100mulk(~mulk@pd9514963.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-03-05 05:41:23 +0100benkardmulk
2024-03-05 05:41:53 +0100tri_(~tri@2607:fb90:b193:c180:52f:34db:e1d:860f)
2024-03-05 05:43:35 +0100travgm(~travgm@fsf/member/travgm) (Ping timeout: 268 seconds)
2024-03-05 05:45:12 +0100motherfsck(~motherfsc@user/motherfsck)
2024-03-05 05:45:17 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-03-05 05:45:53 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-03-05 05:56:59 +0100RedNifre(~RedNifre@dslb-092-074-165-102.092.074.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2024-03-05 06:02:08 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-03-05 06:04:51 +0100euleritian(~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-03-05 06:05:04 +0100igemnace(~ian@user/igemnace)
2024-03-05 06:05:10 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 06:09:43 +0100RedNifre(~RedNifre@dslb-088-072-205-004.088.072.pools.vodafone-ip.de)
2024-03-05 06:20:33 +0100michalz(~michalz@185.246.207.221)
2024-03-05 06:22:43 +0100michalz(~michalz@185.246.207.221) (Client Quit)
2024-03-05 06:25:22 +0100michalz(~michalz@185.246.207.193)
2024-03-05 06:27:52 +0100krei-se(~krei-se@p57af21c9.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-03-05 06:29:38 +0100bilegeek(~bilegeek@2600:1008:b05e:f8ee:8cc2:4fc:3c7e:f54a) (Quit: Leaving)
2024-03-05 06:43:42 +0100krei-se(~krei-se@p57af28c6.dip0.t-ipconnect.de)
2024-03-05 06:48:20 +0100tri_(~tri@2607:fb90:b193:c180:52f:34db:e1d:860f) (Remote host closed the connection)
2024-03-05 06:51:27 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-03-05 06:51:45 +0100redmp(~redmp@mobile-166-171-251-254.mycingular.net)
2024-03-05 06:52:42 +0100euleritian(~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de)
2024-03-05 06:57:52 +0100euleritian(~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-03-05 06:58:25 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 06:59:22 +0100justache(~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-05 07:00:16 +0100rosco(~rosco@175.136.155.53) (Quit: Lost terminal)
2024-03-05 07:04:02 +0100justache(~justache@user/justache)
2024-03-05 07:04:11 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-03-05 07:04:34 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-03-05 07:10:49 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-03-05 07:12:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 07:12:54 +0100euleritian(~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de)
2024-03-05 07:15:55 +0100justache(~justache@user/justache) (Remote host closed the connection)
2024-03-05 07:16:16 +0100justache(~justache@user/justache)
2024-03-05 07:20:47 +0100oneeyedalien(~oneeyedal@user/oneeyedalien)
2024-03-05 07:22:06 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-03-05 07:23:03 +0100oneeyedalien(~oneeyedal@user/oneeyedalien) (Client Quit)
2024-03-05 07:33:32 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 07:37:27 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-03-05 07:43:50 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds)
2024-03-05 07:49:44 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 07:55:53 +0100travgm(~travgm@2600:100e:a121:ea44:71d:e84c:de8a:1a30)
2024-03-05 07:58:27 +0100acidjnk_new3(~acidjnk@p200300d6e737e73474a39a603313c7aa.dip0.t-ipconnect.de)
2024-03-05 08:01:28 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-03-05 08:03:27 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
2024-03-05 08:09:02 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2024-03-05 08:14:40 +0100Square2(~Square4@user/square) (Ping timeout: 268 seconds)
2024-03-05 08:16:04 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 08:19:52 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-03-05 08:29:18 +0100titibandit(~titibandi@user/titibandit) (Quit: leaving)
2024-03-05 08:30:42 +0100titibandit(~titibandi@user/titibandit)
2024-03-05 08:34:20 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-03-05 08:47:05 +0100notzmv(~daniel@user/notzmv) (Ping timeout: 272 seconds)
2024-03-05 08:47:28 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-03-05 08:52:54 +0100notzmv-(~daniel@user/notzmv)
2024-03-05 08:53:30 +0100notzmv-notzmv
2024-03-05 08:54:49 +0100euleritian(~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-03-05 08:55:06 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 09:02:14 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-03-05 09:02:23 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 09:03:49 +0100Silver_X(~Silver_X@182.178.208.55)
2024-03-05 09:07:18 +0100danza(~francesco@151.43.175.12)
2024-03-05 09:07:29 +0100dshk(~dshk@77.50.49.68)
2024-03-05 09:10:49 +0100redmp(~redmp@mobile-166-171-251-254.mycingular.net) (Ping timeout: 246 seconds)
2024-03-05 09:19:25 +0100CiaoSen(~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03)
2024-03-05 09:24:15 +0100misterfish(~misterfis@84.53.85.146)
2024-03-05 09:32:38 +0100thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-03-05 09:33:24 +0100travgm_(~travgm@2600:100e:a121:ebe6:ed23:e82:949:259f)
2024-03-05 09:36:29 +0100travgm(~travgm@2600:100e:a121:ea44:71d:e84c:de8a:1a30) (Ping timeout: 272 seconds)
2024-03-05 09:36:38 +0100gmg(~user@user/gehmehgeh)
2024-03-05 09:43:27 +0100drdo5(~drdo@bl5-29-74.dsl.telepac.pt)
2024-03-05 09:44:07 +0100drdo(~drdo@bl5-29-74.dsl.telepac.pt) (Ping timeout: 260 seconds)
2024-03-05 09:44:07 +0100drdo5drdo
2024-03-05 09:46:17 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-03-05 09:48:15 +0100ph88(~ph88@2a02:8109:9e26:c800:4df3:360d:e959:c357)
2024-03-05 09:48:39 +0100 <ph88> How can i get ApplicativeDo to work correctly with optparse-applicative? https://bpa.st/GVBA
2024-03-05 09:50:30 +0100 <tomsmeding> ph88: that function is inherently monadic because whether you execute the 'option auto $ long "to"' action depends on the _result_ of an ealier action ('option str $ long "to"')
2024-03-05 09:50:37 +0100 <tomsmeding> *earlier
2024-03-05 09:51:30 +0100 <ph88> i don't want to parse it twice actually, let me try something else then
2024-03-05 09:51:50 +0100 <tomsmeding> for a computation to be Applicative, the tree of all "monadic" actions must be known statically
2024-03-05 09:52:03 +0100 <tomsmeding> because you only have (<*>) :: f (a -> b) -> f a -> f b
2024-03-05 09:52:21 +0100 <tomsmeding> which actions to take cannot depend on values computed inside the "monad"
2024-03-05 09:52:21 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-05 09:52:40 +0100 <tomsmeding> (ApplicativeDo is a little more stringent about how you format your code as well, but this is the fundamental requirement)
2024-03-05 09:54:04 +0100 <ph88> how can i fail the applicative when i use do notation ?
2024-03-05 09:54:13 +0100 <tomsmeding> :t empty
2024-03-05 09:54:14 +0100 <lambdabot> Alternative f => f a
2024-03-05 09:54:24 +0100danza_(~francesco@151.57.193.118)
2024-03-05 09:56:00 +0100 <ph88> which actions to take cannot depend on values computed inside the "monad" o_O
2024-03-05 09:56:59 +0100danza(~francesco@151.43.175.12) (Ping timeout: 264 seconds)
2024-03-05 09:57:05 +0100 <tomsmeding> I cannot describe it better :')
2024-03-05 09:57:09 +0100 <ncf> it's probably a good thing that it's optparse-applicative and not optparse-monadic. you usually want to know statically all the available flags; interactions between them are processed later
2024-03-05 09:58:05 +0100 <ph88> tomsmeding, the description was good, i'm just flabbergasted as to what the implications of that are
2024-03-05 09:58:15 +0100 <tomsmeding> that's Applicative for you :p
2024-03-05 09:58:28 +0100 <tomsmeding> good exercise may be to try breaking that rule using (<*>) (you can't)
2024-03-05 09:59:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 09:59:50 +0100 <ph88> I'm confused https://bpa.st/XYPQ
2024-03-05 09:59:51 +0100 <ncf> closest you'll get is a parser of parsers, and then guess what class you need to turn that into a parser
2024-03-05 10:00:04 +0100 <tomsmeding> lol
2024-03-05 10:00:37 +0100 <tomsmeding> ph88: do you want to restrict the argument that you can pass to an option?
2024-03-05 10:00:53 +0100 <ph88> yes either the word "current" or a integer-like string
2024-03-05 10:01:00 +0100 <ph88> otherwise fail
2024-03-05 10:03:37 +0100 <tomsmeding> ph88: the first argument of 'option' is a ReadM, which is a monad
2024-03-05 10:03:57 +0100 <tomsmeding> perhaps `maybeReader _ <$> str`
2024-03-05 10:04:04 +0100 <tomsmeding> or eitherReader
2024-03-05 10:04:33 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de) (Quit: leaving)
2024-03-05 10:05:30 +0100chele(~chele@user/chele)
2024-03-05 10:07:55 +0100 <ph88> tomsmeding, like this should be ok no? https://bpa.st/DHRQ
2024-03-05 10:08:30 +0100 <tomsmeding> I guess, does it work? :p
2024-03-05 10:08:34 +0100arahael(~arahael@119-18-0-146.771200.syd.nbn.aussiebb.net)
2024-03-05 10:10:58 +0100 <tomsmeding> "for an applicative parser that looks suspiciously monadic"
2024-03-05 10:15:42 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-03-05 10:18:55 +0100ph88(~ph88@2a02:8109:9e26:c800:4df3:360d:e959:c357) (Ping timeout: 255 seconds)
2024-03-05 10:22:13 +0100ph88(~ph88@2a02:8109:9e26:c800:8195:4ef:5c19:e61)
2024-03-05 10:26:14 +0100chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
2024-03-05 10:27:04 +0100chiselfuse(~chiselfus@user/chiselfuse)
2024-03-05 10:27:17 +0100danza_(~francesco@151.57.193.118) (Ping timeout: 240 seconds)
2024-03-05 10:29:19 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-03-05 10:31:25 +0100 <ph88> haha yes that's right :D
2024-03-05 10:36:40 +0100jinsun_(~jinsun@user/jinsun)
2024-03-05 10:36:40 +0100jinsunGuest6034
2024-03-05 10:36:40 +0100jinsun_jinsun
2024-03-05 10:37:04 +0100Guest6034(~jinsun@user/jinsun) (Ping timeout: 260 seconds)
2024-03-05 10:46:25 +0100Aazam(~Aazam@2409:40c0:220:65e9:9ab7:a24f:ee60:d820)
2024-03-05 10:48:56 +0100 <Aazam> Hello, I came across haskell through gsoc and am interested in it. Is it possible to get started with it as a beginner in haskell?
2024-03-05 10:49:39 +0100danse-nr3(~danse@151.57.193.118)
2024-03-05 10:49:50 +0100Guest11(~Guest11@2001:fb1:10a:22db:a0e6:903a:b3c0:c5ee)
2024-03-05 10:50:34 +0100Guest11(~Guest11@2001:fb1:10a:22db:a0e6:903a:b3c0:c5ee) (Client Quit)
2024-03-05 10:51:50 +0100 <probie> Get started with GSOC, or get started with Haskell?
2024-03-05 10:52:28 +0100 <Aazam> With GSOC specifically
2024-03-05 10:53:56 +0100 <Aazam> The Continuous Integration Log Explorer idea seems to be the most beginner friendly
2024-03-05 10:55:11 +0100danse-nr3(~danse@151.57.193.118) (Ping timeout: 264 seconds)
2024-03-05 10:56:57 +0100ski(~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 256 seconds)
2024-03-05 10:57:04 +0100danse-nr3(~danse@151.57.193.118)
2024-03-05 10:57:19 +0100danse-nr3(~danse@151.57.193.118) (Remote host closed the connection)
2024-03-05 10:57:43 +0100danse-nr3(~danse@151.57.193.118)
2024-03-05 11:00:46 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-03-05 11:01:36 +0100gmg(~user@user/gehmehgeh)
2024-03-05 11:03:30 +0100ski(~ski@ext-1-033.eduroam.chalmers.se)
2024-03-05 11:05:03 +0100ph88^(~ph88@2a02:8109:9e26:c800:4cc1:1b38:872e:9a01)
2024-03-05 11:08:20 +0100ph88(~ph88@2a02:8109:9e26:c800:8195:4ef:5c19:e61) (Ping timeout: 256 seconds)
2024-03-05 11:14:01 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
2024-03-05 11:14:54 +0100travgm__(~travgm@2600:100e:a121:ec65:d102:4dd6:658b:db04)
2024-03-05 11:17:24 +0100travgm_(~travgm@2600:100e:a121:ebe6:ed23:e82:949:259f) (Ping timeout: 256 seconds)
2024-03-05 11:20:48 +0100tnks(sid412124@id-412124.helmsley.irccloud.com) (Ping timeout: 256 seconds)
2024-03-05 11:21:39 +0100Aazam(~Aazam@2409:40c0:220:65e9:9ab7:a24f:ee60:d820) (Quit: Client closed)
2024-03-05 11:21:54 +0100tnks(sid412124@id-412124.helmsley.irccloud.com)
2024-03-05 11:27:30 +0100jinsun_(~jinsun@user/jinsun)
2024-03-05 11:27:30 +0100jinsunGuest1732
2024-03-05 11:27:30 +0100Guest1732(~jinsun@user/jinsun) (Killed (platinum.libera.chat (Nickname regained by services)))
2024-03-05 11:27:30 +0100jinsun_jinsun
2024-03-05 11:29:01 +0100cfricke(~cfricke@user/cfricke)
2024-03-05 11:29:17 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 240 seconds)
2024-03-05 11:39:54 +0100Aazam(~Aazam@152.58.3.71)
2024-03-05 11:42:18 +0100__monty__(~toonn@user/toonn)
2024-03-05 11:45:25 +0100Aazam(~Aazam@152.58.3.71) (Quit: Client closed)
2024-03-05 11:51:36 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-05 11:54:24 +0100img(~img@user/img)
2024-03-05 11:55:53 +0100img(~img@user/img) (Client Quit)
2024-03-05 11:56:52 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-03-05 11:58:20 +0100img(~img@user/img)
2024-03-05 12:04:43 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-03-05 12:07:04 +0100xff0x(~xff0x@2405:6580:b080:900:c534:620a:b520:a93b)
2024-03-05 12:09:36 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-03-05 12:18:10 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds)
2024-03-05 12:23:54 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.174)
2024-03-05 12:24:17 +0100Silver_X(~Silver_X@182.178.208.55) (Quit: Leaving)
2024-03-05 12:25:17 +0100bontaq(~user@ool-45779c03.dyn.optonline.net)
2024-03-05 12:27:23 +0100xiliuya(~xiliuya@user/xiliuya)
2024-03-05 12:27:23 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-03-05 12:28:34 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 12:38:43 +0100CiaoSen(~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03) (Ping timeout: 246 seconds)
2024-03-05 12:51:33 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-03-05 12:51:48 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 12:54:07 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds)
2024-03-05 12:56:22 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 12:57:15 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-03-05 12:58:21 +0100Inst(~Inst@120.244.192.75)
2024-03-05 13:00:00 +0100TheCoffeMaker_(~TheCoffeM@200.114.213.75)
2024-03-05 13:00:32 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
2024-03-05 13:04:50 +0100akegalj(~akegalj@141-136-172-38.dsl.iskon.hr)
2024-03-05 13:06:08 +0100akegalj(~akegalj@141-136-172-38.dsl.iskon.hr) (Client Quit)
2024-03-05 13:11:34 +0100phma(phma@2001:5b0:215d:ea48:1b4d:6bdb:657b:30e6) (Read error: Connection reset by peer)
2024-03-05 13:12:26 +0100phma(phma@2001:5b0:211b:d448:4014:b5f0:331f:c237)
2024-03-05 13:13:57 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
2024-03-05 13:17:40 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2024-03-05 13:24:16 +0100xiliuya(~xiliuya@user/xiliuya) (Quit: bye~)
2024-03-05 13:26:59 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-03-05 13:27:55 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 13:33:29 +0100danse-nr3(~danse@151.57.193.118) (Ping timeout: 268 seconds)
2024-03-05 13:37:07 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-03-05 13:40:37 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.8.2+deb4+b2 - https://znc.in)
2024-03-05 13:45:23 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 272 seconds)
2024-03-05 13:50:05 +0100__monty_1(~toonn@user/toonn)
2024-03-05 13:51:43 +0100__monty__(~toonn@user/toonn) (Ping timeout: 272 seconds)
2024-03-05 13:53:05 +0100[[PSYCHIATRIST(~PSYCHIAT@46.197.13.174) (Quit: Connection closed)
2024-03-05 14:07:43 +0100danse-nr3(~danse@151.57.207.152)
2024-03-05 14:10:47 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-03-05 14:15:10 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-03-05 14:18:21 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-03-05 14:36:33 +0100ph88^(~ph88@2a02:8109:9e26:c800:4cc1:1b38:872e:9a01) (Remote host closed the connection)
2024-03-05 14:36:57 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:f00e:a21c:b8c6:8c07)
2024-03-05 14:40:23 +0100CiaoSen(~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03)
2024-03-05 14:42:50 +0100srz(~srz@181.228.49.93)
2024-03-05 14:49:19 +0100ph88(~ph88@2a02:8109:9e26:c800:9462:9eb1:5c9f:778b)
2024-03-05 14:49:42 +0100 <ph88> Anyone an idea how can i model the relations between two data types. Sometimes they are isomorphic and can be converted from/to. Other times it's a one way operation and some data will be lost. (context is database migrations between two versions of a model)
2024-03-05 14:52:06 +0100 <Hecate> ph88: https://hackage.haskell.org/package/DataVersion-0.1.0.1/docs/Data-Migration.html
2024-03-05 14:52:43 +0100 <Hecate> and there's also https://hackage.haskell.org/package/versioning-0.3.2.0/docs/Versioning-Base.html
2024-03-05 14:55:20 +0100 <ph88> Hecate, Data.Migration looks nice but i don't see anything there to indicate it can be a one-way operation. And Versioning i don't like because it puts extra stuff in my actual types
2024-03-05 15:00:50 +0100 <ph88> Would like to do something like this https://bpa.st/DPPQ
2024-03-05 15:01:06 +0100 <ph88> like path files -> like patch files
2024-03-05 15:02:31 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-03-05 15:05:05 +0100thegeekinside(~thegeekin@189.217.83.221) (Read error: Connection reset by peer)
2024-03-05 15:05:28 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 15:25:57 +0100ystael(~ystael@user/ystael)
2024-03-05 15:26:30 +0100 <Hecate> ph88: I see
2024-03-05 15:26:48 +0100 <Hecate> I think simple stuff like a datatype and functions might just be the correct way to go
2024-03-05 15:27:07 +0100 <ph88> alright i will start with some simple functions
2024-03-05 15:27:19 +0100thegeekinside(~thegeekin@189.217.83.221)
2024-03-05 15:32:17 +0100misterfish(~misterfis@84.53.85.146)
2024-03-05 15:34:47 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 15:36:35 +0100srz(~srz@181.228.49.93) (Ping timeout: 264 seconds)
2024-03-05 15:37:49 +0100alexherbo2(~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net)
2024-03-05 15:52:12 +0100rscastilho2024(rscastilho@179.221.142.47)
2024-03-05 15:52:40 +0100rscastilho2024(rscastilho@179.221.142.47) (Remote host closed the connection)
2024-03-05 16:00:09 +0100dshk(~dshk@77.50.49.68) (Remote host closed the connection)
2024-03-05 16:03:25 +0100srz(~srz@181.228.49.93)
2024-03-05 16:03:33 +0100jargon(~jargon@154.sub-174-205-226.myvzw.com) (Read error: Connection reset by peer)
2024-03-05 16:08:31 +0100infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2024-03-05 16:09:00 +0100__monty_1__monty__
2024-03-05 16:12:36 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-03-05 16:14:32 +0100euleritian(~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de)
2024-03-05 16:20:32 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
2024-03-05 16:27:29 +0100zenstoic(uid461840@id-461840.hampstead.irccloud.com)
2024-03-05 16:37:34 +0100CiaoSen(~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds)
2024-03-05 16:43:19 +0100zetef(~quassel@95.77.17.251)
2024-03-05 16:45:46 +0100santiagopim(~user@90.167.66.131)
2024-03-05 16:52:53 +0100ephemient(uid407513@id-407513.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-03-05 16:53:18 +0100rosco(~rosco@175.136.155.53)
2024-03-05 17:05:12 +0100alexherbo2(~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net) (Remote host closed the connection)
2024-03-05 17:05:37 +0100alexherbo2(~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net)
2024-03-05 17:12:14 +0100euleritian(~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-03-05 17:12:28 +0100srz(~srz@181.228.49.93) (Ping timeout: 255 seconds)
2024-03-05 17:12:37 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 17:13:06 +0100natechan(~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Quit: WeeChat 2.9)
2024-03-05 17:13:17 +0100danse-nr3(~danse@151.57.207.152) (Ping timeout: 240 seconds)
2024-03-05 17:15:58 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-03-05 17:19:13 +0100infinity0(~infinity0@pwned.gg)
2024-03-05 17:20:25 +0100danse-nr3(~danse@151.57.207.152)
2024-03-05 17:41:48 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-03-05 17:42:56 +0100califax(~califax@user/califx)
2024-03-05 17:43:49 +0100oneeyedalien(~oneeyedal@user/oneeyedalien)
2024-03-05 17:50:08 +0100EvanR(~EvanR@user/evanr) (Ping timeout: 260 seconds)
2024-03-05 17:56:18 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-03-05 17:56:28 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 17:57:11 +0100rvalue(~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
2024-03-05 17:57:18 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 17:57:30 +0100rvalue(~rvalue@user/rvalue)
2024-03-05 17:58:39 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 18:02:25 +0100danse-nr3(~danse@151.57.207.152) (Ping timeout: 255 seconds)
2024-03-05 18:05:11 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-03-05 18:05:26 +0100notzmv(~daniel@user/notzmv) (Ping timeout: 268 seconds)
2024-03-05 18:05:43 +0100tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-03-05 18:05:51 +0100alexherbo2(~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net) (Remote host closed the connection)
2024-03-05 18:12:32 +0100zetef(~quassel@95.77.17.251) (Remote host closed the connection)
2024-03-05 18:12:52 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:f00e:a21c:b8c6:8c07) (Quit: ubert)
2024-03-05 18:14:05 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 240 seconds)
2024-03-05 18:17:19 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-03-05 18:20:47 +0100Nixkernal_(~Nixkernal@243.212.61.188.dynamic.wline.res.cust.swisscom.ch)
2024-03-05 18:21:38 +0100redmp(~redmp@mobile-166-171-251-145.mycingular.net)
2024-03-05 18:25:26 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-03-05 18:26:06 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 18:27:26 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 18:29:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-03-05 18:29:54 +0100danse-nr3(~danse@151.57.222.28)
2024-03-05 18:31:23 +0100danse-nr3(~danse@151.57.222.28) (Remote host closed the connection)
2024-03-05 18:31:47 +0100danse-nr3(~danse@151.57.222.28)
2024-03-05 18:33:05 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 18:34:20 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 252 seconds)
2024-03-05 18:35:03 +0100Buggys(Buggys@shelltalk.net) (Remote host closed the connection)
2024-03-05 18:36:05 +0100danse-nr3(~danse@151.57.222.28) (Ping timeout: 240 seconds)
2024-03-05 18:37:24 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-03-05 18:41:56 +0100rvalue(~rvalue@user/rvalue)
2024-03-05 18:43:14 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 18:45:38 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-03-05 18:46:37 +0100zenstoic(uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-03-05 18:47:00 +0100euphores(~SASL_euph@user/euphores)
2024-03-05 18:48:28 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-03-05 18:50:48 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-03-05 18:51:00 +0100euleritian(~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de)
2024-03-05 18:56:12 +0100srz(~srz@181.228.49.93)
2024-03-05 19:03:44 +0100travgm(~travgm@238.sub-97-138-17.myvzw.com)
2024-03-05 19:04:08 +0100Square(~Square@user/square)
2024-03-05 19:04:56 +0100travgm__(~travgm@2600:100e:a121:ec65:d102:4dd6:658b:db04) (Ping timeout: 268 seconds)
2024-03-05 19:07:53 +0100EvanR(~EvanR@user/evanr)
2024-03-05 19:09:51 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 19:11:19 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-05 19:12:31 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 19:16:47 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 19:16:58 +0100rosco(~rosco@175.136.155.53) (Quit: Lost terminal)
2024-03-05 19:16:59 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 19:17:27 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-03-05 19:18:21 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 19:18:26 +0100underlap(~underlap@213.31.186.28)
2024-03-05 19:18:32 +0100euleritian(~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-03-05 19:18:49 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-03-05 19:18:51 +0100underlap(~underlap@213.31.186.28) (Client Quit)
2024-03-05 19:19:59 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-03-05 19:22:22 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-03-05 19:23:15 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 19:32:23 +0100mei(~mei@user/mei) (Remote host closed the connection)
2024-03-05 19:33:59 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 19:34:04 +0100Vajb(~Vajb@n7kymlrhl8zspe1o45k-1.v6.elisa-mobile.fi)
2024-03-05 19:34:48 +0100mei(~mei@user/mei)
2024-03-05 19:39:30 +0100dshk(~dshk@77.50.49.68)
2024-03-05 19:40:41 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-03-05 19:44:23 +0100rainbyte(~rainbyte@186.22.19.215)
2024-03-05 19:46:17 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 19:47:18 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 19:57:58 +0100Buggys(Buggys@Buggy.shelltalk.net)
2024-03-05 19:58:12 +0100target_i(~target_i@user/target-i/x-6023099)
2024-03-05 20:00:33 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 20:01:54 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 20:10:27 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.1.2)
2024-03-05 20:12:15 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
2024-03-05 20:15:31 +0100 <zwro> can anyone point to a good resource for someone wanting to learn Functional Reactive Programming from first principles?
2024-03-05 20:15:47 +0100notzmv(~daniel@user/notzmv)
2024-03-05 20:18:56 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 20:23:12 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-03-05 20:23:14 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-03-05 20:23:46 +0100Guest73(~Guest34@2a09:bac1:3680:40::2e4:39)
2024-03-05 20:23:58 +0100Guest73(~Guest34@2a09:bac1:3680:40::2e4:39) (Client Quit)
2024-03-05 20:27:52 +0100califax(~califax@user/califx)
2024-03-05 20:28:22 +0100 <EvanR> first principles would arguably be conal's earlier papers on fran, and then conal's blog
2024-03-05 20:30:11 +0100 <EvanR> which would give you a good basis to consider the difficulties and also identify how modern FRP ignores all that
2024-03-05 20:30:35 +0100 <EvanR> and so diluted the brand a lot
2024-03-05 20:31:07 +0100 <EvanR> arrowized FRP got a lot of the theory straightened out, but there aren't many implementations
2024-03-05 20:37:42 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 20:38:17 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 20:39:00 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 20:39:35 +0100TheCoffeMaker_(~TheCoffeM@200.114.213.75) (Ping timeout: 272 seconds)
2024-03-05 20:39:36 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 20:40:38 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Excess Flood)
2024-03-05 20:41:00 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 20:42:31 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 20:42:52 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 20:43:04 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 20:43:44 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Excess Flood)
2024-03-05 20:44:22 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 20:45:37 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 20:46:55 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 20:51:07 +0100mei(~mei@user/mei) (Remote host closed the connection)
2024-03-05 20:52:36 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-03-05 20:52:50 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 20:53:29 +0100f-a(ff2a@joined.irc.for-some.fun)
2024-03-05 20:53:33 +0100mei(~mei@user/mei)
2024-03-05 20:53:55 +0100 <f-a> Is there a sensible way of converting from Word32 to [Word8] (or a tuple of four Word8)?
2024-03-05 20:56:35 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-03-05 20:57:37 +0100 <mauke> oh, several
2024-03-05 20:58:50 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 21:00:14 +0100 <probie> > let x = 0x12345678 :: Word32 in [fromIntegral (x `shiftR` (8 * n)) .&. 0xff | n <- [0..3]]
2024-03-05 21:00:15 +0100 <lambdabot> [120,86,52,18]
2024-03-05 21:00:45 +0100average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-03-05 21:02:00 +0100 <mauke> conv n | n < 10 = "afew" | n < 100 = "some" | n < 1000 = "many" | otherwise = "alot"
2024-03-05 21:03:10 +0100 <f-a> makes sense probie
2024-03-05 21:03:33 +0100 <ncf> https://hackage.haskell.org/package/network-3.1.4.0/docs/Network-Socket.html#v:hostAddressToTuple
2024-03-05 21:03:39 +0100son0p(~ff@186.121.56.175) (Ping timeout: 268 seconds)
2024-03-05 21:04:19 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 21:05:57 +0100 <probie> ncf: You've got to be careful with that, because it changes result depending on the endianness of your system
2024-03-05 21:06:10 +0100 <EvanR> divMod or a combination of right shifts and AND by 255 is like popping from a byte stack
2024-03-05 21:06:45 +0100 <EvanR> so a sensible way to express it is (,,,) <$> pop <*> pop <*> pop <*> pop xD
2024-03-05 21:06:59 +0100 <EvanR> where the Word is the state
2024-03-05 21:07:19 +0100 <mauke> https://hackage.haskell.org/package/data-serializer-0.3.5/docs/Data-Serializer.html#v:toBytes I guess?
2024-03-05 21:07:46 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net) (Quit: brb)
2024-03-05 21:09:00 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
2024-03-05 21:09:20 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 21:10:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 21:10:36 +0100xnuk(~Xnuk@112.72.131.90)
2024-03-05 21:10:38 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 21:10:55 +0100xnuk(~Xnuk@112.72.131.90) (Client Quit)
2024-03-05 21:11:28 +0100xnuk(~Xnuk@112.72.131.90)
2024-03-05 21:12:14 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish)
2024-03-05 21:14:55 +0100WonDerDan(~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi)
2024-03-05 21:15:44 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 21:17:03 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 21:21:57 +0100dshk(~dshk@77.50.49.68) (Remote host closed the connection)
2024-03-05 21:22:30 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-03-05 21:23:59 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 21:25:54 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 21:26:50 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 21:27:19 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 21:29:21 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds)
2024-03-05 21:30:31 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 21:33:58 +0100xnuk(~Xnuk@112.72.131.90) (Quit: WeeChat 4.2.1)
2024-03-05 21:36:21 +0100ft(~ft@p508db2e6.dip0.t-ipconnect.de)
2024-03-05 21:36:44 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 21:38:05 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-03-05 21:42:18 +0100tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-03-05 21:47:33 +0100WonDerDan(~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi) (Quit: Client closed)
2024-03-05 21:48:58 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 21:51:43 +0100srz(~srz@181.228.49.93) (Ping timeout: 246 seconds)
2024-03-05 22:00:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 22:01:55 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-03-05 22:07:15 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-03-05 22:08:00 +0100zetef(~quassel@95.77.17.251)
2024-03-05 22:08:29 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-03-05 22:10:48 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 22:10:59 +0100WonDerDann56(~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi)
2024-03-05 22:11:17 +0100WonDerDann56WonDerDan
2024-03-05 22:15:31 +0100zetef(~quassel@95.77.17.251) (Ping timeout: 246 seconds)
2024-03-05 22:15:33 +0100zetef_(~quassel@5.2.182.98)
2024-03-05 22:20:30 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 22:27:32 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
2024-03-05 22:32:39 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 22:35:17 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Excess Flood)
2024-03-05 22:35:39 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2024-03-05 22:35:59 +0100WonDerDan(~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi) (Quit: Client closed)
2024-03-05 22:36:01 +0100dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2024-03-05 22:36:45 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 22:40:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 22:49:46 +0100pavonia(~user@user/siracusa)
2024-03-05 22:51:18 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2024-03-05 22:51:51 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-03-05 22:52:07 +0100todi(~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-03-05 22:54:24 +0100mulk(~mulk@pd9514963.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-03-05 22:58:31 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-03-05 23:01:31 +0100mulk(~mulk@pd9514963.dip0.t-ipconnect.de)
2024-03-05 23:04:39 +0100d34df00d(~d34df00d@2600:1702:4f1b:7c10::43)
2024-03-05 23:04:45 +0100 <d34df00d> Hi!
2024-03-05 23:05:11 +0100 <d34df00d> Is there any easy lens spell with the type `Lens' a b1 -> Lens' a b2 -> Lens' a (b1, b2)`?
2024-03-05 23:07:11 +0100 <dibblego> no, since it is not a valid lens as the result, but there is alongside
2024-03-05 23:07:29 +0100 <d34df00d> dibblego: hmm, why isn't it valid?
2024-03-05 23:07:40 +0100 <dibblego> it violates the lens laws
2024-03-05 23:08:24 +0100michalz(~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in)
2024-03-05 23:08:43 +0100 <d34df00d> If you mean the ones here https://hackage.haskell.org/package/lens-5.2.3/docs/Control-Lens-Lens.html#t:Lens then I'm not sure I can build an example of such a violation.
2024-03-05 23:10:58 +0100 <ncf> d34df00d: see https://hackage.haskell.org/package/lens-5.2.2/docs/Control-Lens-Unsound.html#v:lensProduct
2024-03-05 23:11:26 +0100 <dibblego> I once wrote the code that demonstrates the law breaking, but it was so long ago, and I cannot find it
2024-03-05 23:11:39 +0100 <ncf> the type system can't enforce that your two lenses aren't overlapping
2024-03-05 23:11:48 +0100 <ncf> if they are, you don't get a valid lens
2024-03-05 23:12:27 +0100son0p(~ff@186.121.59.199)
2024-03-05 23:14:30 +0100hueso(~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
2024-03-05 23:14:41 +0100hueso(~root@user/hueso)
2024-03-05 23:15:09 +0100 <d34df00d> ncf: ah, interesting! I was too focused on my use case where they are indeed disjoint so I didn't think about this.
2024-03-05 23:15:17 +0100 <d34df00d> Thanks for the example!
2024-03-05 23:18:35 +0100zetef_(~quassel@5.2.182.98) (Read error: Connection reset by peer)
2024-03-05 23:20:55 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 23:22:47 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-03-05 23:28:05 +0100tan00kee(~paul@pauloliver.dev)
2024-03-05 23:28:35 +0100tan00kee(~paul@pauloliver.dev) (Client Quit)
2024-03-05 23:31:46 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-03-05 23:32:14 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-03-05 23:39:51 +0100shapr(~user@c-24-218-186-89.hsd1.ma.comcast.net)
2024-03-05 23:40:43 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-03-05 23:42:42 +0100ph88(~ph88@2a02:8109:9e26:c800:9462:9eb1:5c9f:778b) (Remote host closed the connection)
2024-03-05 23:56:04 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-03-05 23:57:36 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-03-05 23:59:43 +0100oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 272 seconds)