Home liberachat/#haskell: Logs Calendar

Logs on 2024-03-05 (liberachat/#haskell)

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

All times are in UTC on 2024-03-05.