2021/07/08

2021-07-08 00:01:50 +0200zebrag(~chris@user/zebrag)
2021-07-08 00:02:32 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 00:02:34 +0200 <maerwald> Rembane: huh? weeder uses .hie files afaik
2021-07-08 00:02:58 +0200 <maerwald> https://github.com/ocharles/weeder#cabal
2021-07-08 00:03:44 +0200fengctor(~fengctor@2605:b100:312:5480:61be:31c7:ea04:6c10)
2021-07-08 00:03:54 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-07-08 00:04:03 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-07-08 00:04:35 +0200 <jle`> i kind of like stackage
2021-07-08 00:04:58 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-08 00:05:00 +0200 <jle`> but not necessarily stack
2021-07-08 00:05:24 +0200 <jle`> er, not that i don't like it, just that i'm not too sold on the value prop over cabal. but the idea of a consistent package set is nice to me
2021-07-08 00:05:27 +0200fengctor(~fengctor@2605:b100:312:5480:61be:31c7:ea04:6c10) (Read error: Connection reset by peer)
2021-07-08 00:05:45 +0200 <maerwald> stackage breaks down if you manage to pull in two versions of one package, no?
2021-07-08 00:06:05 +0200 <Rembane> maerwald: That's good. Then I'm misinformed. Remove that plus from stack. :)
2021-07-08 00:06:07 +0200 <jle`> i think it's supposed to guard against that sort of thing?
2021-07-08 00:06:10 +0200cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2021-07-08 00:06:20 +0200 <maerwald> I think they just disable all sorts of tests to avoid it?
2021-07-08 00:06:47 +0200cheater(~Username@user/cheater)
2021-07-08 00:06:57 +0200 <geekosaur> I thought that described nix, not stack
2021-07-08 00:07:23 +0200 <jle`> yeah, stack+stackage etc. resolves all the deps before any building
2021-07-08 00:07:24 +0200 <maerwald> I'm not sure if a static package set is the answer... what about stable hackage vs unstable hackage? It's doable
2021-07-08 00:08:03 +0200 <jle`> is that the idea of stackage LTS?
2021-07-08 00:08:04 +0200 <AWizzArd> Single Sign-On: what Haskell Lib would you use to do this? Did you implement it in your web app?
2021-07-08 00:08:05 +0200 <monochrom> hackage is really too large.
2021-07-08 00:08:36 +0200 <maerwald> jle`: no, it's basically how gentoo manages arch vs ~arch since 2 decades
2021-07-08 00:08:38 +0200 <jle`> in any case i stopped putting my packages onto stackage a while ago so maybe i can't really vouch for it anymore anyway
2021-07-08 00:08:58 +0200 <maerwald> gentoo is larger than hackage :p
2021-07-08 00:09:33 +0200 <AWizzArd> Aren’t people complaining all the time that Haskell has too few libs, i.e. implicitly that Hackage is too small?
2021-07-08 00:09:51 +0200 <maerwald> I don't think it's an engineering problem. It's a social and a manpower one
2021-07-08 00:09:58 +0200 <maerwald> workflow as well
2021-07-08 00:09:59 +0200 <geekosaur> that's really saying "it doesn't have this one lib I think I want"
2021-07-08 00:10:10 +0200 <monochrom> Aren't people complaining about everything.
2021-07-08 00:10:22 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-08 00:10:23 +0200 <AWizzArd> monochrom: are you complaining about this? ;)
2021-07-08 00:10:31 +0200 <monochrom> Yes!
2021-07-08 00:10:44 +0200 <maerwald> AWizzArd: are you complaining about monochrom complaining?
2021-07-08 00:10:48 +0200 <monochrom> And also programmer hypocricy, yes.
2021-07-08 00:11:03 +0200 <jle`> imagine being so self-aware
2021-07-08 00:11:10 +0200 <jle`> couldnt be me
2021-07-08 00:11:16 +0200 <AWizzArd> maerwald: what question is this... do I smell a complaint here?
2021-07-08 00:11:31 +0200 <maerwald> just hard facts!
2021-07-08 00:11:46 +0200 <AWizzArd> maerwald: have you done SSO yet?
2021-07-08 00:12:00 +0200 <maerwald> wut?
2021-07-08 00:12:04 +0200 <monochrom> For example Haskell devs on Windows complaining "GHC WIndows version not ready for prime time, this is why low real-world adoption" yada yada
2021-07-08 00:12:05 +0200 <AWizzArd> Single Sign-On.
2021-07-08 00:12:47 +0200 <monochrom> That's a disguised way of saying "you should work for free so that I can use your GHC for profit"
2021-07-08 00:13:03 +0200 <maerwald> AWizzArd: no. That sounds complicated. I usually avoid those things.
2021-07-08 00:14:56 +0200 <maerwald> monochrom: I've experienced windows users as very helpful. At least in #powershell
2021-07-08 00:15:12 +0200 <monochrom> I don't know of single-sign-on either. Can't help you there.
2021-07-08 00:15:18 +0200 <AWizzArd> k
2021-07-08 00:15:44 +0200 <maerwald> They are also less cocky than linux users :>
2021-07-08 00:15:51 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-07-08 00:16:16 +0200 <lechner> or maybe just older?
2021-07-08 00:16:26 +0200 <maerwald> But I have no idea how any of that relates to "real-world adoption"
2021-07-08 00:17:00 +0200 <monochrom> "real-world adoption" is just a facade for "I can make money", as explained.
2021-07-08 00:17:23 +0200 <monochrom> likewise "too few libraries" just mean "doesn't have the one I want".
2021-07-08 00:17:28 +0200stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-07-08 00:17:48 +0200 <monochrom> People ought to hide their hidden agendas, right? Must talk big and grand and selfless.
2021-07-08 00:17:59 +0200 <maerwald> haskell is used either by ppl who have very strong opinions, or by people who have so much money that they don't care what their engineering team does... so yeah
2021-07-08 00:21:56 +0200stefan-_(~cri@42dots.de)
2021-07-08 00:22:01 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar)
2021-07-08 00:22:52 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 00:23:10 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-08 00:23:46 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-08 00:24:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-08 00:24:54 +0200forell(~forell@user/forell) (Ping timeout: 272 seconds)
2021-07-08 00:24:55 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar) (Client Quit)
2021-07-08 00:26:22 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-07-08 00:27:24 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 00:28:34 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 246 seconds)
2021-07-08 00:29:24 +0200forell(~forell@user/forell)
2021-07-08 00:29:56 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-08 00:30:16 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 00:30:21 +0200Guest65(~Guest65@50.47.115.102)
2021-07-08 00:31:18 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 00:31:28 +0200 <Guest65> What's the most readable way to format if-then-else blocks?
2021-07-08 00:31:47 +0200 <Guest65> e.g.
2021-07-08 00:31:59 +0200 <Guest65> "if c
2021-07-08 00:32:08 +0200 <Guest65> then 1
2021-07-08 00:32:08 +0200 <monochrom> Very often guards are much more formattable than if-then-else.
2021-07-08 00:32:41 +0200 <Rembane> Each of the keywords on a line each, with "then" and "else" indented some spaces.
2021-07-08 00:32:54 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
2021-07-08 00:32:58 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 00:33:03 +0200 <dibblego> bool f t p
2021-07-08 00:33:49 +0200acidjnk_new(~acidjnk@p200300d0c72b9526e1b6d7c282fb2b66.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-07-08 00:33:54 +0200 <Guest65> if cond
2021-07-08 00:33:55 +0200 <Guest65> then foo
2021-07-08 00:33:55 +0200 <Guest65> else bar
2021-07-08 00:33:57 +0200 <Guest65> like this?
2021-07-08 00:33:57 +0200 <monochrom> In simple cases if-then-else is still pretty formattable. In that case, really anything that both looks nice to you and accepted by the parser is good. You don't need perfection, so don't ask.
2021-07-08 00:34:09 +0200 <Rembane> Guest65: yup or what monochrom said
2021-07-08 00:34:21 +0200 <Rembane> Guest65: I usually use a code formatter and don't think more about it
2021-07-08 00:34:39 +0200Guest65(~Guest65@50.47.115.102) (Client Quit)
2021-07-08 00:34:51 +0200 <monochrom> And even for perfectionists there are much more pressing concerns than mere syntax.
2021-07-08 00:34:52 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-07-08 00:35:00 +0200Guest65(~Guest65@50.47.115.102)
2021-07-08 00:35:17 +0200 <Guest65> ok
2021-07-08 00:35:29 +0200Guest65(~Guest65@50.47.115.102) (Client Quit)
2021-07-08 00:35:33 +0200motte_(~weechat@82.131.107.112.cable.starman.ee) (Quit: WeeChat 1.9.1)
2021-07-08 00:37:18 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 00:39:58 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net)
2021-07-08 00:42:05 +0200y04nn(~y04nn@91.193.4.106) (Ping timeout: 258 seconds)
2021-07-08 00:43:42 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2021-07-08 00:45:39 +0200y04nn(~y04nn@91.193.4.106)
2021-07-08 00:45:51 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-07-08 00:46:29 +0200nighmi(~felix@port-92-196-116-190.dynamic.as20676.net)
2021-07-08 00:51:07 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 00:52:58 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 00:53:02 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 00:53:21 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 00:53:23 +0200turlando(~turlando@user/turlando) (Remote host closed the connection)
2021-07-08 00:53:54 +0200Sgeo(~Sgeo@user/sgeo)
2021-07-08 00:53:58 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-08 00:54:16 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se) (Read error: Connection reset by peer)
2021-07-08 00:55:22 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 240 seconds)
2021-07-08 00:56:21 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 01:00:34 +0200hewxle(~hewxle@user/hewxle) (Read error: Connection reset by peer)
2021-07-08 01:00:56 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-07-08 01:01:12 +0200 <maerwald> I recently started to use more let bindings in guards
2021-07-08 01:01:31 +0200y04nn(~y04nn@91.193.4.106) (Remote host closed the connection)
2021-07-08 01:02:55 +0200 <maerwald> xs | let h = head xs
2021-07-08 01:02:57 +0200 <maerwald> , (Just _) <- foo -> f h
2021-07-08 01:03:10 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-08 01:03:37 +0200sayola(~vekto@dslb-088-078-152-192.088.078.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2021-07-08 01:03:57 +0200 <maerwald> this scopes the `h` for both the pattern match and the result side
2021-07-08 01:03:58 +0200 <mniip> xs | h <- head xs, Just _ <- foo -> f h
2021-07-08 01:04:29 +0200 <maerwald> right, also can
2021-07-08 01:04:33 +0200sonat_suer(~manually_@24.133.69.243) (Quit: Client closed)
2021-07-08 01:05:10 +0200 <maerwald> let's bikeshed which one is more readable
2021-07-08 01:05:25 +0200 <mniip> flip f x (f -> g) | (g -> r) <- x = r
2021-07-08 01:05:30 +0200vish(~igloo@24.130.32.174)
2021-07-08 01:07:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 01:07:35 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-08 01:08:26 +0200vish(~igloo@24.130.32.174) (Remote host closed the connection)
2021-07-08 01:11:58 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 01:12:53 +0200Atum__(~IRC@user/atum/x-2392232)
2021-07-08 01:13:01 +0200Atum_(~IRC@user/atum/x-2392232) (Ping timeout: 246 seconds)
2021-07-08 01:16:54 +0200mud(~mud@user/kadoban) (Ping timeout: 252 seconds)
2021-07-08 01:19:41 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se) (Quit: Leaving)
2021-07-08 01:21:52 +0200nighmi(~felix@port-92-196-116-190.dynamic.as20676.net) (Quit: WeeChat 3.0.1)
2021-07-08 01:23:41 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 01:23:57 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2021-07-08 01:24:12 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2021-07-08 01:25:09 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-07-08 01:28:21 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-07-08 01:29:01 +0200sonat_suer(~sonat_sue@24.133.69.243)
2021-07-08 01:29:37 +0200sonat_suer(~sonat_sue@24.133.69.243) (Client Quit)
2021-07-08 01:29:59 +0200thelounge923068(~thelounge@69.234.40.90)
2021-07-08 01:31:09 +0200thelounge92306(~thelounge@cpe-75-85-161-60.san.res.rr.com) (Ping timeout: 258 seconds)
2021-07-08 01:31:52 +0200dajoer(~david@user/gvx)
2021-07-08 01:32:11 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 01:36:03 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 01:38:01 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 265 seconds)
2021-07-08 01:41:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-07-08 01:43:48 +0200mikail(~mikail@90.212.77.3) (Ping timeout: 258 seconds)
2021-07-08 01:43:51 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-07-08 01:44:37 +0200thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com)
2021-07-08 01:45:12 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-07-08 01:46:37 +0200thelounge923068(~thelounge@69.234.40.90) (Ping timeout: 246 seconds)
2021-07-08 01:47:53 +0200 <lechner> Hi, I am trying to follow "Structure of a simple project" here, and have 'cabal-install version 3.4.0.0', but i get 'cabal: unrecognised command: sandbox (try --help)'. Any pointers would be appreciated. Thanks! https://wiki.haskell.org/How_to_write_a_Haskell_program
2021-07-08 01:49:03 +0200 <geekosaur> sandboxes were removed in 3.4, they were a temporary workaround until cabal got proper project support. (evidently someone needs to update the wiki)
2021-07-08 01:49:12 +0200 <Axman6> I think the sandbox stuff is basically what the cabal new-* commands do be default
2021-07-08 01:49:18 +0200 <monochrom> sandbox is not a v2 thing. cabal-install 3.4 is a step towards removing v1 features, this is the first one to go.
2021-07-08 01:49:38 +0200 <lechner> bummer, i just upgraded from 3.0 because that did not have it either
2021-07-08 01:50:04 +0200 <monochrom> I am too disilluioned to help keep the haskell wiki up to date.
2021-07-08 01:50:31 +0200 <lechner> no need. i just need some quick help here please
2021-07-08 01:50:58 +0200 <monochrom> Just ignore sandboxing commands?
2021-07-08 01:51:54 +0200 <monochrom> To a large extent, you need know only two commands.
2021-07-08 01:52:18 +0200 <monochrom> For playing with a package in a REPL: cabal repl
2021-07-08 01:52:28 +0200 <monochrom> For installing an executable: cabal install
2021-07-08 01:52:46 +0200 <monochrom> "configure" and "build" are already implied.
2021-07-08 01:53:28 +0200 <lechner> why does Haq.hs from the wiki speficy base < 4.8 please
2021-07-08 01:53:36 +0200 <lechner> specify
2021-07-08 01:54:04 +0200 <monochrom> conservativeness and not knowing the future? (who does?)
2021-07-08 01:54:24 +0200 <monochrom> I mean since it is now very clear that the article is at least like 10 years old.
2021-07-08 01:55:00 +0200 <geekosaur> not going to be clear to a newcomer who has no idea what base versions map to what
2021-07-08 01:55:09 +0200 <geekosaur> or cabal's history
2021-07-08 01:55:42 +0200 <monochrom> But semantic versioning is widely known.
2021-07-08 01:56:54 +0200 <lechner> it works without
2021-07-08 02:08:45 +0200 <Axman6> Do we actually have a good resource for starting a new haskell project? I was asking the other day about something for scaffolding options, without particularly satisfying answers
2021-07-08 02:09:21 +0200vish(~igloo@24.130.32.174)
2021-07-08 02:09:24 +0200 <Axman6> stack new isn't terrible, but the docs say it's been labled as up for replacement for a long time, and I'm preferring cabal these days
2021-07-08 02:10:07 +0200 <monochrom> The cabal user guide may have a section on this. I haven't checked.
2021-07-08 02:10:31 +0200 <geekosaur> cabal init creates very barebones projects
2021-07-08 02:10:40 +0200 <monochrom> A lot of bloggers would have very opinionated ones. I avoid knowing them.
2021-07-08 02:10:54 +0200vish(~igloo@24.130.32.174) (Remote host closed the connection)
2021-07-08 02:12:36 +0200 <monochrom> Some haskell books have a short chapter for this too.
2021-07-08 02:14:41 +0200 <monochrom> Me, I learned by taking a look at the cabal user guide (and a much older, terser, more incomplete edition at that), and taking a look at some package sources.
2021-07-08 02:15:43 +0200 <monochrom> and playing a bit with cabal init (now cabal init -i and answering "I want to answer a lot of questions")
2021-07-08 02:15:53 +0200 <AWizzArd> Servant: type API = "foo" :> QueryParam "bar" String :> Get '[JSON] Baz
2021-07-08 02:16:03 +0200 <AWizzArd> How can I explain that "bar" is required?
2021-07-08 02:16:28 +0200 <AWizzArd> Can I do QueryParam' [Required] "bar" or something like that?
2021-07-08 02:16:41 +0200 <monochrom> BTW I am still baffled that after I have taken the trouble to say "-i" they feel like making me repeat myself.
2021-07-08 02:18:23 +0200 <monochrom> Every type parameter is required, at least as long as you want to end up with the desired kind. What is there to explain? The String there is also required. The Baz there is also required.
2021-07-08 02:18:32 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 02:19:29 +0200 <AWizzArd> monochrom: what I mean is: my handler would get a Maybe String but I want it without the Maybe.
2021-07-08 02:19:48 +0200 <AWizzArd> If the user does not supply the query parameter then my handler wouldn’t get called at all.
2021-07-08 02:20:33 +0200trufas(~trufas@177.240.218.218) (Ping timeout: 265 seconds)
2021-07-08 02:20:46 +0200trufas(~trufas@177.240.218.218)
2021-07-08 02:21:08 +0200 <AWizzArd> type QueryParam = QueryParam' '[Optional, Strict]
2021-07-08 02:21:24 +0200Atum__(~IRC@user/atum/x-2392232) (Quit: Atum__)
2021-07-08 02:22:47 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 02:24:34 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 02:26:12 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-07-08 02:28:11 +0200mud(~mud@user/kadoban)
2021-07-08 02:28:58 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-08 02:31:49 +0200andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com)
2021-07-08 02:31:53 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 02:33:14 +0200derelict(~derelict@user/derelict) (Ping timeout: 252 seconds)
2021-07-08 02:34:28 +0200 <Axman6> you can replace Optional with Required right?
2021-07-08 02:34:54 +0200zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-07-08 02:36:00 +0200spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b) (Ping timeout: 252 seconds)
2021-07-08 02:36:11 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-08 02:36:33 +0200spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b)
2021-07-08 02:38:40 +0200spruit11_(~quassel@86-82-44-193.fixed.kpn.net)
2021-07-08 02:39:47 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 02:41:03 +0200spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b) (Ping timeout: 252 seconds)
2021-07-08 02:41:42 +0200cjb(~cjb@user/cjb)
2021-07-08 02:44:58 +0200derelict(~derelict@user/derelict)
2021-07-08 02:45:48 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 02:48:39 +0200haykam1(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-07-08 02:48:42 +0200haykam2(~haykam@static.100.2.21.65.clients.your-server.de)
2021-07-08 02:54:35 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2021-07-08 02:58:18 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 03:04:42 +0200mud(~mud@user/kadoban) (Ping timeout: 252 seconds)
2021-07-08 03:06:37 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-07-08 03:07:49 +0200 <AWizzArd> Axman6: yeah
2021-07-08 03:08:07 +0200 <AWizzArd> Axman6: But do you know hat the difference between Strict and Required is?
2021-07-08 03:08:20 +0200 <AWizzArd> And how can a parameter be optional but strict at the same time?
2021-07-08 03:09:00 +0200 <AWizzArd> Axman6: we can do this for example: QueryParam' '[Required] "bar" Text
2021-07-08 03:10:18 +0200roboto_el_gato(~roboto_el@2600:1700:7df0:4f30:ec10:cbf7:f7cc:3882)
2021-07-08 03:12:22 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2021-07-08 03:15:03 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 03:16:57 +0200beka(~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 258 seconds)
2021-07-08 03:17:09 +0200 <qrpnxz> i saw a pretty cool talk about lifting types into kinds, is it possible to list, say, Int into a kind right now?
2021-07-08 03:17:59 +0200mud(~mud@user/kadoban)
2021-07-08 03:18:28 +0200 <geekosaur> DataKinds extension
2021-07-08 03:18:44 +0200 <geekosaur> Int might cause confusion with type-level naturals though
2021-07-08 03:19:30 +0200 <geekosaur> although I guess you could use a tick to distinguish '1 :: 'Int from 1 the typenat
2021-07-08 03:21:02 +0200 <qrpnxz> nice
2021-07-08 03:21:02 +0200 <qrpnxz> the talk was using like peano numbers which was cool but totally impractical. If you can just use real numbers that super nice
2021-07-08 03:21:58 +0200 <c_wraith> unfortunately, Nat is all there is for numbers at the type level now
2021-07-08 03:23:41 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Remote host closed the connection)
2021-07-08 03:26:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9)
2021-07-08 03:35:23 +0200xff0x(~xff0x@2001:1a81:539d:3600:dd23:6975:e62a:a95) (Ping timeout: 252 seconds)
2021-07-08 03:37:08 +0200xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060)
2021-07-08 03:37:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 03:41:08 +0200notzmv(~zmv@user/notzmv)
2021-07-08 03:43:42 +0200neurocyte404(~neurocyte@45.93.108.182)
2021-07-08 03:43:42 +0200neurocyte404(~neurocyte@45.93.108.182) (Changing host)
2021-07-08 03:43:42 +0200neurocyte404(~neurocyte@user/neurocyte)
2021-07-08 03:45:31 +0200tlaxkit(~hexchat@170.253.37.3)
2021-07-08 03:46:21 +0200 <Axman6> just implement Rational using Nat and then you've got pretty much everything you could need... >_>
2021-07-08 03:47:36 +0200neurocyte40(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-07-08 03:47:36 +0200neurocyte404neurocyte40
2021-07-08 03:48:09 +0200mud(~mud@user/kadoban) (Ping timeout: 252 seconds)
2021-07-08 03:48:44 +0200mud(~mud@user/kadoban)
2021-07-08 03:51:32 +0200tlaxkit(~hexchat@170.253.37.3) (Quit: Leaving)
2021-07-08 03:51:37 +0200 <Axman6> I wonder if you could implement fixed point type level numbers too
2021-07-08 03:54:36 +0200finsternis(~X@23.226.237.192)
2021-07-08 03:56:33 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 04:00:40 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 246 seconds)
2021-07-08 04:04:04 +0200alx741(~alx741@181.196.69.147) (Quit: alx741)
2021-07-08 04:07:19 +0200dextaa(~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 246 seconds)
2021-07-08 04:08:05 +0200dextaa(~DV@aftr-37-201-214-197.unity-media.net)
2021-07-08 04:08:52 +0200leah2(~leah@vuxu.org) (Read error: Connection reset by peer)
2021-07-08 04:11:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 04:12:11 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 04:12:13 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
2021-07-08 04:17:38 +0200zebrag(~chris@user/zebrag) (Remote host closed the connection)
2021-07-08 04:23:25 +0200td_(~td@94.134.91.101) (Ping timeout: 246 seconds)
2021-07-08 04:23:57 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-07-08 04:23:58 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (sodium.libera.chat (Nickname regained by services)))
2021-07-08 04:23:58 +0200finn_elijaFinnElija
2021-07-08 04:24:19 +0200 <lechner> Hi, i have ByteString confusion. Would somone please explain to me where the 'toStrict' has to go? Thanks! https://paste.debian.net/1203748/
2021-07-08 04:25:19 +0200td_(~td@94.134.91.165)
2021-07-08 04:29:05 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-08 04:29:44 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-08 04:34:34 +0200kadobanana(~mud@user/kadoban)
2021-07-08 04:34:34 +0200mud(~mud@user/kadoban) (Read error: Connection reset by peer)
2021-07-08 04:40:18 +0200 <oak-> <AWizzArd "Axman6: But do you know hat the "> Strict only means if the parsing fails, then the servant throws error. The other option is Lenient, then you get Either Text a, and if the parsing fails then you get the Left which contains the error text
2021-07-08 04:44:35 +0200eight(~eight@user/eight) (Ping timeout: 265 seconds)
2021-07-08 04:45:35 +0200wei2912(~wei2912@112.199.250.21)
2021-07-08 04:48:39 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 04:50:01 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection)
2021-07-08 04:50:25 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-07-08 04:50:28 +0200 <oak-> lechner: you have various choices here :) you could also use the unpack from ByteString.Lazy library, then you don't need to convert it to strict ByteString first, or use Data.ByteString.Lazy.Char8.putStrLn to print the lazy bytestring directly
2021-07-08 04:51:07 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2021-07-08 04:51:21 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2021-07-08 04:51:21 +0200 <oak-> but strict answer to your question :) GZip.decompress returns Lazy Bytestrings, so you would need to pass the output from GZip.decompress to toStrict function
2021-07-08 04:52:34 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-07-08 04:55:55 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-08 04:56:08 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 04:56:34 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-08 04:58:20 +0200Reyu[M](~reyureyuz@matrix.reyuzenfold.com) (Remote host closed the connection)
2021-07-08 04:58:53 +0200Reyu[M](~reyureyuz@matrix.reyuzenfold.com)
2021-07-08 04:58:53 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 05:02:59 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
2021-07-08 05:10:03 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 05:10:06 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-07-08 05:10:19 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:cdb:cabc:a7c7:75c9) (Ping timeout: 246 seconds)
2021-07-08 05:16:56 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 05:22:18 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 258 seconds)
2021-07-08 05:28:08 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-07-08 05:28:43 +0200cheater(~Username@user/cheater)
2021-07-08 05:30:30 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-07-08 05:32:00 +0200 <lechner> oak-: thanks!
2021-07-08 05:32:06 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca)
2021-07-08 05:37:03 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 252 seconds)
2021-07-08 05:43:07 +0200tubogram(~tubogram@user/tubogram)
2021-07-08 05:45:45 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 05:46:51 +0200 <janus> > maybe (pure Nothing) (pure . Just . (+ 1)) (Just 5)
2021-07-08 05:46:52 +0200 <lambdabot> error:
2021-07-08 05:46:52 +0200 <lambdabot> • Ambiguous type variable ‘f0’ arising from a use of ‘show_M809825357370...
2021-07-08 05:46:53 +0200 <lambdabot> prevents the constraint ‘(Show
2021-07-08 05:47:18 +0200 <janus> join <$> traverse (pure . Just . (+ 1)) (Just 5)
2021-07-08 05:47:25 +0200 <janus> wither (pure . Just . (+ 1)) (Just 5)
2021-07-08 05:48:08 +0200 <janus> which one is clearer? i want to like 'wither' but i feel like it is pretty unknown...
2021-07-08 05:48:53 +0200Izem(~Izem@bras-base-london1483w-grc-42-65-95-172-41.dsl.bell.ca) (Good Bye)
2021-07-08 05:50:26 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-08 05:55:36 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-07-08 05:57:42 +0200chase(~chase@89.45.224.218)
2021-07-08 05:58:04 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 05:58:54 +0200 <monochrom> fmap (+ 1)
2021-07-08 06:02:16 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-07-08 06:05:58 +0200 <janus> right, i was thinking i'd get that answer :P but the point is that the composed function can be effectful... in practise it will be doing network IO
2021-07-08 06:06:26 +0200dunkeln(~dunkeln@188.70.10.207)
2021-07-08 06:07:51 +0200 <janus> i guess i am really thinking in the abstraction level that 'wither' operates in, but when writing haskell it seems so difficult to decide whether the abstraction level you wanna work with, which is sometimes too powerful, is worth its weight...
2021-07-08 06:08:24 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 06:08:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 06:10:49 +0200 <janus> i just have to accept the fact that there is no one way to do it, and embrace politics :(
2021-07-08 06:12:07 +0200arjun(~Srain@user/arjun)
2021-07-08 06:16:33 +0200hexreel(~hr@69.233.98.238)
2021-07-08 06:19:16 +0200oxide(~lambda@user/oxide)
2021-07-08 06:36:02 +0200chase(~chase@89.45.224.218) (Ping timeout: 272 seconds)
2021-07-08 06:37:26 +0200 <lechner> Hi, how can I print the value in line 20 and also save it in a file, please? I'm stuck inside the monad. Thanks! https://paste.debian.net/1203754/
2021-07-08 06:42:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 06:45:13 +0200a6a45081-2b83(~aditya@106.214.66.197)
2021-07-08 06:46:26 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 06:50:46 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2021-07-08 06:51:30 +0200 <oxytocat> instead of using pointfree style, you can name the result and then use it more than once
2021-07-08 06:51:48 +0200 <lechner> with <- ?
2021-07-08 06:51:57 +0200 <oxytocat> yeah
2021-07-08 06:52:25 +0200 <oxytocat> instead of `receive responder >>=` you can do `msg <- receive responder`
2021-07-08 06:52:33 +0200 <lechner> i tried that
2021-07-08 06:52:45 +0200 <lechner> how do i use the result, please?
2021-07-08 06:53:44 +0200 <lechner> i tried to feed it in with >>= but that did not work
2021-07-08 06:53:44 +0200 <oxytocat> the line that starts with `liftIO` is a chain of function composition, `>>=` passes the result from `receive responder` to the other section
2021-07-08 06:54:19 +0200 <oxytocat> you can wrap the whole expression in parenthesis and pass `msg` to it, like this:
2021-07-08 06:54:30 +0200 <oxytocat> `(liftIO . printf "Received request: [%s]\n" . unpack . GZip.decompress . fromStrict) msg`
2021-07-08 06:54:38 +0200 <oxytocat> or alternatively:
2021-07-08 06:54:44 +0200 <oxytocat> `liftIO . printf "Received request: [%s]\n" . unpack . GZip.decompress . fromStrict $ msg`
2021-07-08 06:54:48 +0200 <oxytocat> or alternatively:
2021-07-08 06:55:11 +0200 <oxytocat> `liftIO (printf "Received request: [%s]\n" (unpack (GZip.decompress (fromStrict msg))))`
2021-07-08 06:55:52 +0200 <oxytocat> note that `liftIO ...` and `msg <- ...` need to have the same indentation width
2021-07-08 06:56:21 +0200 <lechner> thatks! i understand all of that, except perhaps the entire purpose of LiftIO
2021-07-08 06:56:42 +0200 <dsal> :t liftIO
2021-07-08 06:56:43 +0200 <lambdabot> MonadIO m => IO a -> m a
2021-07-08 06:57:09 +0200 <dsal> If you have an mtl stack with IO at the bottom and need to run something in IO, liftIO gets you there.
2021-07-08 06:57:55 +0200 <oxytocat> the runZMQ has some capabilities beyond IO so it has a different type
2021-07-08 06:57:56 +0200acidjnk_new(~acidjnk@p200300d0c72b9526e1b6d7c282fb2b66.dip0.t-ipconnect.de)
2021-07-08 06:58:05 +0200 <lechner> what is mtl please?
2021-07-08 06:59:18 +0200 <oxytocat> check out https://github.com/soupi/haskell-study-plan#monad-transformers
2021-07-08 06:59:20 +0200 <lechner> what does the LiftIO do in this line, please? liftIO (printf "Received request: [%s]\n" (unpack (GZip.decompress (fromStrict msg))))
2021-07-08 06:59:32 +0200 <dsal> :t liftIO -- it does that
2021-07-08 06:59:33 +0200 <lambdabot> MonadIO m => IO a -> m a
2021-07-08 06:59:50 +0200 <lechner> to me that is different from the other two
2021-07-08 06:59:56 +0200 <dsal> You're using runZMQ which is: runZMQ :: MonadIO m => (forall z. ZMQ z a) -> m a
2021-07-08 07:00:28 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 07:01:10 +0200 <oxytocat> the type for regular IO actions is `IO <something>` - this is a description (or recipe) for a computation that may run some IO actions and return a value of type <something>
2021-07-08 07:01:43 +0200 <lechner> yeah that part i understand
2021-07-08 07:02:03 +0200 <oxytocat> ZMQ has a different type than that, it wants to be able to describe actions that can do ZMQ stuff as well as regular IO actions
2021-07-08 07:02:32 +0200 <oxytocat> so it needs a different type than IO
2021-07-08 07:03:05 +0200 <dsal> Instead of directly specifying IO, it just specifies that it needs something monadic that knows how to get to IO.
2021-07-08 07:03:08 +0200 <lechner> so the LiftIO is specimic to System.ZMQ4.Monadic ?
2021-07-08 07:03:15 +0200 <lechner> specific
2021-07-08 07:03:30 +0200 <dsal> No, it's a method of MonadIO
2021-07-08 07:03:58 +0200 <oxytocat> liftIO is a function that many other types like ZMQ implement, so that users can run arbitrary IO actions while working in ZMQ type
2021-07-08 07:04:06 +0200 <oxytocat> or their respective types, actually
2021-07-08 07:04:28 +0200 <dsal> https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Monad-IO-Class.html
2021-07-08 07:04:53 +0200 <lechner> why is it needed to evaluate this expression? liftIO (printf "Received request: [%s]\n" (unpack (GZip.decompress (fromStrict msg))))
2021-07-08 07:04:59 +0200 <oxytocat> for example ActionM from the scotty package that is used to describe web requests processing also implements that function
2021-07-08 07:05:10 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
2021-07-08 07:05:13 +0200 <lechner> it comes after the print?
2021-07-08 07:05:23 +0200 <oxytocat> :t liftIO
2021-07-08 07:05:25 +0200 <lambdabot> MonadIO m => IO a -> m a
2021-07-08 07:05:55 +0200 <oxytocat> the whole expression to the right of liftIO
2021-07-08 07:06:02 +0200 <oxytocat> has the type `IO ()`
2021-07-08 07:06:26 +0200 <oxytocat> but anything running in ZMQ has a different type that relates to ZMQ
2021-07-08 07:07:15 +0200 <oxytocat> so liftIO takes the `IO ()` and transforms it to work within `m ()`
2021-07-08 07:07:21 +0200 <lechner> i see
2021-07-08 07:07:23 +0200 <oxytocat> where `m` is the relevant ZMQ type
2021-07-08 07:07:51 +0200 <lechner> but m is not named?
2021-07-08 07:07:59 +0200 <oxytocat> I'm not sure what it is because it is not specified here and the docs for zeromq-haskell are missing from hackage
2021-07-08 07:08:16 +0200 <lechner> yeah they did not generate
2021-07-08 07:08:24 +0200 <oxytocat> `liftIO` is a bit general, think like `print :: Show a => a -> String`
2021-07-08 07:08:52 +0200 <oxytocat> we know that print will work for any type that implements the `Show` interface
2021-07-08 07:09:12 +0200 <oxytocat> with liftIO we know that it will work for any `m` that implements the `MonadIO` interface
2021-07-08 07:09:20 +0200acidjnk_new(~acidjnk@p200300d0c72b9526e1b6d7c282fb2b66.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-08 07:09:47 +0200 <dsal> lechner: You can use any m as long as it has a MonadIO instance. It's a constraint, not a type.
2021-07-08 07:09:52 +0200 <lechner> it's about the caller though rather than the argument, right?
2021-07-08 07:10:08 +0200 <oxytocat> sorry print is actually `print :: Show a => a -> IO ()`, my mistake
2021-07-08 07:10:22 +0200hiruji(~hiruji@user/hiruji) (Ping timeout: 246 seconds)
2021-07-08 07:10:25 +0200 <oxytocat> yes, it's what the caller supplies generally
2021-07-08 07:10:44 +0200 <dsal> % liftIO . print $ (1,2,3)
2021-07-08 07:10:44 +0200 <yahb> dsal: (1,2,3)
2021-07-08 07:10:56 +0200 <lechner> what is the likely type of msg above please?
2021-07-08 07:12:01 +0200 <oxytocat> I expect it is ZMQ
2021-07-08 07:12:13 +0200 <oxytocat> oh, of msg? sorry
2021-07-08 07:12:14 +0200 <oxytocat> let's check
2021-07-08 07:12:38 +0200 <lechner> so with LiftIO, both the code to the right and to the left is effectful, yes
2021-07-08 07:13:27 +0200 <oxytocat> https://gitlab.com/twittner/zeromq-haskell/-/blob/develop/src/System/ZMQ4/Monadic.hs#L351
2021-07-08 07:13:29 +0200 <dsal> liftIO just digs out the the IO and runs the supplied IO action.
2021-07-08 07:13:40 +0200 <oxytocat> this indicates that it is `ByteString`
2021-07-08 07:14:17 +0200 <lechner> dsal: like 'do'?
2021-07-08 07:14:45 +0200 <dsal> What do you mean? `do` doesn't, um, `do` anything.
2021-07-08 07:15:37 +0200 <lechner> sorry it's my second run at haskell. i thought do can print
2021-07-08 07:15:47 +0200 <oxytocat> `do` is just alternative syntax for `>>=` and `>>`
2021-07-08 07:15:48 +0200 <dsal> do is just syntax sugar.
2021-07-08 07:15:59 +0200 <dsal> @undo do { print "x" }
2021-07-08 07:15:59 +0200 <lambdabot> print "x"
2021-07-08 07:16:43 +0200 <oxytocat> check out this section, let me know if it makes it clearer: https://github.com/soupi/haskell-study-plan#do-notation
2021-07-08 07:16:53 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-07-08 07:17:14 +0200 <dsal> > do { a <- Just 1; b <- Just 2; pure (a + b) }
2021-07-08 07:17:16 +0200 <lambdabot> Just 3
2021-07-08 07:17:20 +0200 <dsal> @undo do { a <- Just 1; b <- Just 2; pure (a + b) }
2021-07-08 07:17:20 +0200 <lambdabot> Just 1 >>= \ a -> Just 2 >>= \ b -> pure (a + b)
2021-07-08 07:17:32 +0200 <dsal> It works with any monad, not just IO
2021-07-08 07:17:47 +0200 <dsal> In fact, because liftIO is required here, you can tell that it's not requiring IO. :)
2021-07-08 07:18:09 +0200 <lechner> which part isn't?
2021-07-08 07:19:01 +0200 <dsal> Which part isn't what?
2021-07-08 07:19:01 +0200 <lechner> which part isn't requiring IO?
2021-07-08 07:20:05 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-07-08 07:20:47 +0200 <oxytocat> the code in your snippet, lines 16 to 23, run in ZMQ, not IO. we can tell because this code is passed to the function `runZMQ` as an argument
2021-07-08 07:21:02 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Client Quit)
2021-07-08 07:21:19 +0200jneira(~jneira@212.8.115.226)
2021-07-08 07:21:43 +0200 <dsal> All the things in the `do` block in your `runZMQ` call. It requires some `m` such that `m` has a `MonadIO` instance, but it's not using `IO` directly. You have to explicitly `liftIO` to get to `IO` there.
2021-07-08 07:21:43 +0200 <dsal> It's a rather subtle detail, but if `do` were just for `IO`, you could `print` without lifting anything.
2021-07-08 07:21:50 +0200 <dsal> > let s = [1..5] in do { a <- s; b <- s; pure (a,b) }
2021-07-08 07:21:52 +0200 <lambdabot> [(1,1),(1,2),(1,3),(1,4),(1,5),(2,1),(2,2),(2,3),(2,4),(2,5),(3,1),(3,2),(3,...
2021-07-08 07:22:12 +0200 <dsal> @undo do { a <- s; b <- s; pure (a,b) }
2021-07-08 07:22:12 +0200 <lambdabot> s >>= \ a -> s >>= \ b -> pure (a, b)
2021-07-08 07:22:14 +0200sidv(~sidv@23.252.50.92)
2021-07-08 07:22:15 +0200 <dsal> (undo is kind of boring)
2021-07-08 07:22:39 +0200oxide(~lambda@user/oxide) (Ping timeout: 252 seconds)
2021-07-08 07:22:43 +0200 <sidv> Hey! Is this the right place to ask a question about haskell.nix?
2021-07-08 07:22:52 +0200 <dsal> It's pretty close. heh
2021-07-08 07:23:12 +0200 <oxytocat> right, do notation is just alternative syntax for `>>=`, and the type of `>>=` is:
2021-07-08 07:23:16 +0200 <oxytocat> :t (>>=)
2021-07-08 07:23:17 +0200 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2021-07-08 07:24:14 +0200 <oxytocat> so it works for any type that implements `Monad`. Such as `IO`, `Maybe`, `Either`, `ZMQ z`, and many more
2021-07-08 07:24:44 +0200 <oxytocat> so `do` will also work for these types, because it just translates the syntax to use `>>=`
2021-07-08 07:24:48 +0200 <sidv> I was trying to install haskell-language-server by putting it in tools in shellFor. However, this does not install haskell-language-server-wrapper. Without that, it seems like hls is not picking up all warnings/errors. Is there a way to also install the wrapper?
2021-07-08 07:27:21 +0200 <arjun> sidv: try ghcup?
2021-07-08 07:28:01 +0200 <dsal> ghcup sounds a bit like the opposite of haskell.nix
2021-07-08 07:28:04 +0200 <sidv> I'd ideally like to install it locally within the project :)
2021-07-08 07:29:05 +0200 <dsal> I only do the most basic stuff with haskell.nix, though and I've not tried HLS in a long time.
2021-07-08 07:30:43 +0200 <sidv> The problem might also be that I have to generate a hie.yaml
2021-07-08 07:31:24 +0200 <sidv> I guess my main problem is that I don't see all the warnings that I do when running cabal build
2021-07-08 07:33:20 +0200 <sidv> Hm it seems like hie.yaml is the main culprit
2021-07-08 07:33:39 +0200stefan-_(~cri@42dots.de) (Ping timeout: 252 seconds)
2021-07-08 07:34:53 +0200 <lechner> oxytocat dsal: thanks for your help earlier. too late here now, but i'll be ack tomorrow. thanks!
2021-07-08 07:37:33 +0200notzmv(~zmv@user/notzmv)
2021-07-08 07:37:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-07-08 07:37:59 +0200stefan-_(~cri@42dots.de)
2021-07-08 07:43:37 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 246 seconds)
2021-07-08 07:46:35 +0200Cajun(~Cajun@ip98-163-211-112.no.no.cox.net)
2021-07-08 07:47:19 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 07:48:35 +0200kenran(~kenran@200116b82bdcfa0070f86b22d449a64a.dip.versatel-1u1.de)
2021-07-08 07:51:22 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-08 07:52:30 +0200sheepduck(~sheepduck@user/sheepduck) (Ping timeout: 252 seconds)
2021-07-08 07:52:37 +0200sidv(~sidv@23.252.50.92) (Ping timeout: 246 seconds)
2021-07-08 07:53:53 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-08 07:57:27 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-07-08 07:57:45 +0200Obo(~roberto@94.191.137.122.mobile.tre.se)
2021-07-08 07:58:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2021-07-08 07:58:50 +0200dunkeln(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-08 08:02:36 +0200son0p(~ff@181.136.122.143) (Ping timeout: 256 seconds)
2021-07-08 08:07:27 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 08:09:12 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Remote host closed the connection)
2021-07-08 08:09:22 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 08:09:46 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 240 seconds)
2021-07-08 08:11:21 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-07-08 08:11:40 +0200Obo(~roberto@94.191.137.122.mobile.tre.se) (Ping timeout: 272 seconds)
2021-07-08 08:11:49 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-08 08:12:10 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 08:13:04 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 08:14:21 +0200favonia(~favonia@user/favonia) (Ping timeout: 252 seconds)
2021-07-08 08:14:57 +0200keutoi(~keutoi@157.48.222.234)
2021-07-08 08:16:20 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-07-08 08:17:18 +0200fef(~thedawn@user/thedawn)
2021-07-08 08:17:47 +0200hexreel(~hr@69.233.98.238) (Quit: WeeChat 3.2)
2021-07-08 08:18:12 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 08:19:40 +0200_________(~nobody@user/noodly) (Ping timeout: 265 seconds)
2021-07-08 08:21:56 +0200arjun(~Srain@user/arjun) (Ping timeout: 252 seconds)
2021-07-08 08:22:40 +0200arjun(~Srain@user/arjun)
2021-07-08 08:23:36 +0200gehmehgeh(~user@user/gehmehgeh)
2021-07-08 08:30:10 +0200dextaa(~DV@aftr-37-201-214-197.unity-media.net) (Ping timeout: 246 seconds)
2021-07-08 08:30:23 +0200andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com) (Quit: WeeChat 2.8)
2021-07-08 08:30:33 +0200_________(~nobody@user/noodly)
2021-07-08 08:30:43 +0200dextaa(~DV@aftr-37-201-214-197.unity-media.net)
2021-07-08 08:31:29 +0200dminuoso(~dminuoso@user/dminuoso) (Quit: ZNC 1.7.5 - https://znc.in)
2021-07-08 08:31:47 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 08:35:53 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de)
2021-07-08 08:36:58 +0200eight(~eight@user/eight)
2021-07-08 08:37:00 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 08:37:56 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-08 08:39:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 08:41:18 +0200andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com)
2021-07-08 08:41:40 +0200unyu(~pyon@user/pyon)
2021-07-08 08:41:40 +0200unyuisekaijin
2021-07-08 08:42:24 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2021-07-08 08:46:46 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-08 08:48:53 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 08:48:53 +0200dunkeln_(~dunkeln@188.70.10.207)
2021-07-08 08:50:49 +0200keutoi(~keutoi@157.48.222.234) (Remote host closed the connection)
2021-07-08 08:52:55 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-07-08 08:56:11 +0200a6a45081-2b83(~aditya@106.214.66.197) (Remote host closed the connection)
2021-07-08 08:57:33 +0200fendor(~fendor@91.141.49.3.wireless.dyn.drei.com)
2021-07-08 08:58:15 +0200jneira_(~jneira_@217.red-81-39-172.dynamicip.rima-tde.net) (Quit: Ping timeout (120 seconds))
2021-07-08 09:03:01 +0200sagax(~sagax@213.138.71.146) (Excess Flood)
2021-07-08 09:03:11 +0200dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-08 09:03:44 +0200dunkeln_(~dunkeln@188.70.10.207)
2021-07-08 09:04:07 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-07-08 09:06:34 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-07-08 09:14:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-07-08 09:15:31 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-07-08 09:17:42 +0200andreabedini(~andreabed@8s8kj6nms09jvtyb2xjc.ip6.superloop.com) (Quit: WeeChat 2.8)
2021-07-08 09:19:43 +0200oxide(~lambda@user/oxide)
2021-07-08 09:20:46 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-07-08 09:21:46 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 240 seconds)
2021-07-08 09:22:32 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-08 09:28:10 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-08 09:29:38 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 09:29:55 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Remote host closed the connection)
2021-07-08 09:30:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 09:32:09 +0200maf654321(~maf654321@user/maf654321) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-07-08 09:33:27 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
2021-07-08 09:33:37 +0200cfricke(~cfricke@user/cfricke)
2021-07-08 09:34:22 +0200Pickchea(~private@185.31.55.18.dyn.kraftcom.at)
2021-07-08 09:35:41 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 258 seconds)
2021-07-08 09:36:47 +0200Pickchea(~private@185.31.55.18.dyn.kraftcom.at) (Changing host)
2021-07-08 09:36:47 +0200Pickchea(~private@user/pickchea)
2021-07-08 09:36:59 +0200nschoe(~quassel@178.251.84.79)
2021-07-08 09:37:00 +0200cjb(~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50)
2021-07-08 09:37:22 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-07-08 09:40:32 +0200CoolerX(~CoolerX@user/coolerx)
2021-07-08 09:40:32 +0200 <CoolerX> Hi
2021-07-08 09:40:32 +0200 <CoolerX> Is there a way to embed Haskell in other languages?
2021-07-08 09:40:33 +0200 <Axman6> G'day
2021-07-08 09:40:34 +0200 <CoolerX> Would like to embed Haskell in a Golang project
2021-07-08 09:40:36 +0200 <CoolerX> Since Haskell is compiled I am not entirely sure if this is even possible
2021-07-08 09:40:36 +0200 <Axman6> Yo can cal Haskell from other languages that are able to call C functions
2021-07-08 09:40:37 +0200 <Axman6> You can call*
2021-07-08 09:40:44 +0200 <CoolerX> right
2021-07-08 09:40:51 +0200 <CoolerX> through the foreign function interface of C
2021-07-08 09:40:58 +0200_________(~nobody@user/noodly) (Ping timeout: 272 seconds)
2021-07-08 09:41:17 +0200 <CoolerX> and C++, Golang
2021-07-08 09:42:42 +0200 <CoolerX> well ok, th
2021-07-08 09:42:42 +0200 <CoolerX> Thanks
2021-07-08 09:42:42 +0200CoolerX(~CoolerX@user/coolerx) (Client Quit)
2021-07-08 09:45:43 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-07-08 09:46:18 +0200lavaman(~lavaman@98.38.249.169)
2021-07-08 09:47:34 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.1)
2021-07-08 09:48:57 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-07-08 09:49:22 +0200euandreh(~euandreh@2804:14c:33:9fe5:af84:7945:9a52:2fce) (Ping timeout: 240 seconds)
2021-07-08 09:49:25 +0200azeem(~azeem@176.200.224.11)
2021-07-08 09:50:36 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-07-08 09:50:45 +0200euandreh(~euandreh@2804:14c:33:9fe5:547e:4393:1b6c:3477)
2021-07-08 09:51:17 +0200_________(~nobody@user/noodly)
2021-07-08 09:53:27 +0200MidAutumnMoon9(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-07-08 09:53:27 +0200MidAutumnMoon9(~MidAutumn@user/midautumnmoon)
2021-07-08 09:55:48 +0200chele(~chele@user/chele)
2021-07-08 09:57:26 +0200synthmeat(~synthmeat@user/synthmeat) (Quit: WeeChat 3.2)
2021-07-08 09:58:55 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-07-08 10:00:55 +0200zyklotomic(~ethan@2604:a880:800:10::79f:8001)
2021-07-08 10:02:59 +0200sidv(~sidv@23.252.50.92)
2021-07-08 10:03:01 +0200 <zyklotomic> is foldl (+) 0 [1::Int .. 100] not susceptible to space leaks because GHC optimizes it?
2021-07-08 10:04:20 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2021-07-08 10:04:23 +0200 <merijn> zyklotomic: yeah
2021-07-08 10:06:05 +0200 <zyklotomic> is it because of a special case of Int# being unlifted
2021-07-08 10:06:21 +0200Obo(~roberto@94.191.137.180.mobile.tre.se)
2021-07-08 10:06:28 +0200hendursaga(~weechat@user/hendursaga)
2021-07-08 10:07:03 +0200 <zyklotomic> and I was trying to force a leak lol
2021-07-08 10:08:25 +0200 <merijn> zyklotomic: GHC has a strictness analyzer that tries to detect cases like this where making a computation strict improves performance
2021-07-08 10:09:15 +0200hendursa1(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-07-08 10:09:25 +0200 <merijn> zyklotomic: Hence the pedantic correction that Haskell is "non-strict" and not lazy
2021-07-08 10:09:27 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-07-08 10:09:27 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-07-08 10:09:49 +0200 <zyklotomic> shouldn't a warning be triggered in those cases, just wondering
2021-07-08 10:10:39 +0200 <zyklotomic> merijn: or GHC Haskell? i'm not sure how true that is
2021-07-08 10:11:04 +0200 <merijn> zyklotomic: The Haskell report specifies haskell as "non-strict"
2021-07-08 10:11:44 +0200 <merijn> zyklotomic: So making code strict is not an error as long as the semantics don't change compared to lazy eval
2021-07-08 10:13:46 +0200 <zyklotomic> GHC is defacto
2021-07-08 10:13:47 +0200jippiedoe(~david@2a02-a44c-e14e-1-2789-7e8e-a3b3-3994.fixed6.kpn.net)
2021-07-08 10:13:47 +0200 <zyklotomic> ah gotcha
2021-07-08 10:13:48 +0200 <zyklotomic> merijn: can you give me an example of how to create a partial application leak on purpose
2021-07-08 10:13:48 +0200 <zyklotomic> like what I was trying to do with the fold
2021-07-08 10:13:48 +0200 <zyklotomic> not partial application i think, that might be wrong way to describe it
2021-07-08 10:13:48 +0200 <zyklotomic> but unevaluated thunks
2021-07-08 10:13:48 +0200synthmeat(~synthmeat@user/synthmeat)
2021-07-08 10:14:26 +0200 <merijn> zyklotomic: The reason to specify Haskell as "non-strict" is exactly to make it legal for compilers to generate strict code
2021-07-08 10:15:10 +0200sshine(~simon@hubris.eta.solutions) (Ping timeout: 272 seconds)
2021-07-08 10:16:51 +0200janiczek(~janiczek@89-24-215-117.customers.tmcz.cz)
2021-07-08 10:17:18 +0200 <janiczek> @pl \x -> f x 2
2021-07-08 10:17:18 +0200 <lambdabot> flip f 2
2021-07-08 10:17:36 +0200sshine(~simon@hubris.eta.solutions)
2021-07-08 10:17:36 +0200allbery_b(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-07-08 10:17:36 +0200viluon(uid453725@id-453725.brockwell.irccloud.com)
2021-07-08 10:19:02 +0200 <zyklotomic> merijn: and -O0 should turn that off right
2021-07-08 10:19:02 +0200 <zyklotomic> i'm reading https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-optimisation.html
2021-07-08 10:19:03 +0200 <zyklotomic> trying to force thunks to happen
2021-07-08 10:19:03 +0200 <zyklotomic> *turn off the strictness analyzer
2021-07-08 10:19:09 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-07-08 10:19:40 +0200leah2(~leah@vuxu.org)
2021-07-08 10:21:48 +0200janiczek(~janiczek@89-24-215-117.customers.tmcz.cz) (Quit: WeeChat 3.2)
2021-07-08 10:24:55 +0200jippiedoe(~david@2a02-a44c-e14e-1-2789-7e8e-a3b3-3994.fixed6.kpn.net) (Remote host closed the connection)
2021-07-08 10:25:00 +0200jippiedoe(~david@2a02-a44c-e14e-1-a11c-6737-273e-abfe.fixed6.kpn.net)
2021-07-08 10:25:22 +0200michalz(~michalz@185.246.204.121)
2021-07-08 10:25:22 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2021-07-08 10:25:22 +0200Obo(~roberto@94.191.137.180.mobile.tre.se) (Ping timeout: 265 seconds)
2021-07-08 10:25:22 +0200 <sidv> I'm trying to do precise time calculations down to the millisecond, does UTCTime from the time package support this level of precision?
2021-07-08 10:25:22 +0200arjun(~Srain@user/arjun) (Ping timeout: 246 seconds)
2021-07-08 10:25:23 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-07-08 10:25:39 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 10:25:39 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-07-08 10:25:51 +0200 <merijn> Depends on your machine? :p
2021-07-08 10:26:00 +0200 <merijn> What sorta precise time calculations?
2021-07-08 10:26:05 +0200 <merijn> Like benchmark timings?
2021-07-08 10:26:45 +0200azeem(~azeem@176.200.224.11) (Read error: Connection reset by peer)
2021-07-08 10:26:46 +0200 <sidv> I'm dealing with APIs that give timestamps in milliseconds
2021-07-08 10:26:48 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 10:27:01 +0200 <sidv> I'm trying to write a scraper for time series data
2021-07-08 10:27:13 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 10:27:57 +0200 <sidv> Is it better to keep things as UTCTime or just store the timestamp as an Int64 or something
2021-07-08 10:28:04 +0200 <merijn> sidv: https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Clock.html#t:DiffTime
2021-07-08 10:28:11 +0200 <merijn> sidv: Docs says it has picosecond resolution
2021-07-08 10:28:39 +0200 <merijn> Since UTCTime is just a Day and a DiffTime
2021-07-08 10:30:26 +0200zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-07-08 10:30:43 +0200 <sidv> oh that's perfect
2021-07-08 10:30:43 +0200 <sidv> thanks merijn
2021-07-08 10:30:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 10:30:43 +0200MidAutumnMoon9(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-07-08 10:31:38 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 10:32:39 +0200 <viluon> hi, is there a GHC.Generics -based alternative to SYB? I'm looking for something with similarly high-level traversals/schemes which would generalise type-specific cases to type-agnostic ones, but with the additional structure of a sum-of-products representation
2021-07-08 10:35:40 +0200polux(~polux@51.15.169.172) (Quit: The Lounge - https://thelounge.github.io)
2021-07-08 10:35:44 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Ping timeout: 252 seconds)
2021-07-08 10:35:45 +0200polux(~polux@51.15.169.172)
2021-07-08 10:36:51 +0200MidAutumnMoon9(~MidAutumn@user/midautumnmoon)
2021-07-08 10:39:31 +0200hmmmas(~chenqisu1@183.217.200.144)
2021-07-08 10:40:42 +0200Arahael(~arahael@60-240-135-223.tpgi.com.au) (Ping timeout: 256 seconds)
2021-07-08 10:47:22 +0200Pickchea(~private@user/pickchea) (Ping timeout: 258 seconds)
2021-07-08 10:50:47 +0200zaquest(~notzaques@5.128.210.178)
2021-07-08 10:50:48 +0200arahael(~arahael@118.211.182.212)
2021-07-08 10:50:48 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-07-08 10:50:48 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-07-08 10:50:49 +0200arjun(~Srain@user/arjun)
2021-07-08 10:50:49 +0200dunj3(~dunj3@2001:16b8:3066:7300:d4d1:5d56:be5f:cf84)
2021-07-08 10:55:21 +0200m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2021-07-08 10:56:51 +0200 <dminuoso> viluon: You mean like generics-sop?
2021-07-08 10:57:10 +0200derelict(~derelict@user/derelict) (Ping timeout: 246 seconds)
2021-07-08 10:57:12 +0200MoC(~moc@user/moc)
2021-07-08 10:58:01 +0200 <dminuoso> (or sop-core, I guess)
2021-07-08 10:58:31 +0200 <dminuoso> Well. Both together. :)
2021-07-08 11:01:25 +0200mpt(~tom@2a02:908:1862:49e0::8)
2021-07-08 11:01:53 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 11:02:34 +0200zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3)
2021-07-08 11:06:16 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 246 seconds)
2021-07-08 11:06:38 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 11:10:03 +0200Pickchea(~private@user/pickchea)
2021-07-08 11:11:10 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 246 seconds)
2021-07-08 11:17:23 +0200arjun(~Srain@user/arjun) (Ping timeout: 252 seconds)
2021-07-08 11:20:41 +0200APic(apic@apic.name) (Ping timeout: 252 seconds)
2021-07-08 11:23:46 +0200mpt(~tom@2a02:908:1862:49e0::8) (Ping timeout: 246 seconds)
2021-07-08 11:24:12 +0200Guest29(~Guest29@2a02:a03f:8dbe:300:f1f1:39aa:3c9b:ab9c)
2021-07-08 11:25:50 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-07-08 11:26:25 +0200jneira(~jneira@212.8.115.226)
2021-07-08 11:26:32 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-07-08 11:26:49 +0200sidv(~sidv@23.252.50.92) (Ping timeout: 246 seconds)
2021-07-08 11:29:17 +0200 <viluon> dminuoso: oh, generics-sop has that kind of functionality? is there a variant of the paradise benchmark implemented with it?
2021-07-08 11:30:16 +0200 <Profpatsch> viluon: what’s the paradise benchmark?
2021-07-08 11:31:09 +0200 <Profpatsch> I can only find heaven benchmark
2021-07-08 11:31:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 11:31:38 +0200 <viluon> Profpatsch: it's an old but at the time seemingly popular exercise in generic programming, see e.g. http://web.archive.org/web/20080622204226/http://www.cs.vu.nl/boilerplate/#paradise
2021-07-08 11:33:41 +0200 <Profpatsch> Oh god, one letter constructor names, this must be the same people that made SYB
2021-07-08 11:35:19 +0200 <Profpatsch> I would like a second helping of one letter names that don’t correspond to any mnemonics please
2021-07-08 11:35:50 +0200ubert(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de)
2021-07-08 11:35:55 +0200 <Profpatsch> Also how is it paradise if there’s XML and +1 Company employee salaries in the example
2021-07-08 11:35:59 +0200 <int-e> Why do you call it SYB instead of Scrap Your Boilerplate ;-)
2021-07-08 11:36:45 +0200 <Profpatsch> Cause bad naming means your framework’s name is so long and unwieldy that you have to resort to bad abbreviations
2021-07-08 11:36:58 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 240 seconds)
2021-07-08 11:37:12 +0200 <Profpatsch> sorry being snarky, but the main problem with Generics is not that they are not powerful, but their awful naming.
2021-07-08 11:37:26 +0200ubert1(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de)
2021-07-08 11:37:50 +0200 <int-e> Heh, you don't need to apologize for being snarky in reply to a snark.
2021-07-08 11:37:51 +0200 <Profpatsch> I haven’t looked at generics-sop yet, I hope it doesn’t fall into the same trap
2021-07-08 11:38:00 +0200Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2021-07-08 11:38:18 +0200 <absence> in ghc 9, template haskell was changed so liftTyped returns Quote m => Code m a instead of Q (TExp a). this breaks the code "either fail liftTyped something" because Code doesn't have a MonadFail instance. what's the recommended way to deal with this? manually wrap the result of fail in Code, i.e. "either (Code . fail) liftTyped something", or does that have other consequences?
2021-07-08 11:39:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 11:40:14 +0200lavaman(~lavaman@98.38.249.169)
2021-07-08 11:40:41 +0200 <int-e> > let b = 1; 𝐛 = 2; 𝑏 = 3; 𝒃 = 4; 𝒷 = 5; 𝓫 = 6; 𝔟 = 7; 𝕓 = 8; 𝖇 = 9; 𝘣 = 10; 𝙗 = 11; 𝚋 = 12 in b+𝐛+𝑏+𝒃+𝒷+𝓫+𝔟+𝕓+𝖇+𝘣+𝙗+𝚋
2021-07-08 11:40:43 +0200 <lambdabot> 78
2021-07-08 11:40:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:41:22 +0200Pickchea(~private@user/pickchea)
2021-07-08 11:41:30 +0200 <dminuoso> int-e: Is this Agda code?
2021-07-08 11:41:32 +0200 <dminuoso> :>
2021-07-08 11:41:43 +0200 <int-e> dminuoso: lambdabot doesn't do Agda
2021-07-08 11:41:56 +0200 <int-e> But, heh.
2021-07-08 11:43:09 +0200hmmmas(~chenqisu1@183.217.200.144) (Quit: Leaving.)
2021-07-08 11:45:06 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-07-08 11:46:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 11:46:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:47:11 +0200kayprish(~kayprish@46.240.143.86)
2021-07-08 11:47:49 +0200Guest29(~Guest29@2a02:a03f:8dbe:300:f1f1:39aa:3c9b:ab9c) (Ping timeout: 246 seconds)
2021-07-08 11:49:43 +0200Guest29(~Guest29@2a02:a03f:8dbe:300:c46e:da5f:3e3c:1d44)
2021-07-08 11:51:27 +0200 <Guest29> Does RIO provide a way to set environment variables? RIO.Process.envVarsL only allows getting values
2021-07-08 11:52:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 11:52:42 +0200Pickchea(~private@user/pickchea) (Ping timeout: 272 seconds)
2021-07-08 11:52:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:54:26 +0200 <Taneb> Guest29: it's not possible to set environment variables like that, with or without RIO
2021-07-08 11:57:52 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-07-08 11:58:04 +0200jippiedoe(~david@2a02-a44c-e14e-1-a11c-6737-273e-abfe.fixed6.kpn.net) (Ping timeout: 246 seconds)
2021-07-08 11:58:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 11:58:33 +0200fef(~thedawn@user/thedawn)
2021-07-08 11:59:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 11:59:32 +0200 <Guest29> oh ok. thx
2021-07-08 12:00:23 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2021-07-08 12:02:02 +0200myShoggoth(~myShoggot@75.164.51.64) (Read error: Connection reset by peer)
2021-07-08 12:02:02 +0200Obo(~roberto@94.191.137.180.mobile.tre.se)
2021-07-08 12:04:48 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-08 12:04:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-08 12:05:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:07:06 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 12:10:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-07-08 12:11:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:11:50 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 12:13:46 +0200darklambda(~whateverg@111.65.56.40) (Quit: leaving)
2021-07-08 12:15:09 +0200solaire(~solaire@pool-108-31-85-19.washdc.fios.verizon.net)
2021-07-08 12:16:20 +0200solaire(~solaire@pool-108-31-85-19.washdc.fios.verizon.net) (Client Quit)
2021-07-08 12:16:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 12:16:48 +0200darklambda(~whateverg@111.65.56.40)
2021-07-08 12:17:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:18:22 +0200lavaman(~lavaman@98.38.249.169)
2021-07-08 12:19:28 +0200Guest29(~Guest29@2a02:a03f:8dbe:300:c46e:da5f:3e3c:1d44) (Quit: Client closed)
2021-07-08 12:20:43 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 12:22:09 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-08 12:22:17 +0200Atum_(~IRC@user/atum/x-2392232)
2021-07-08 12:22:34 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-07-08 12:23:43 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-07-08 12:24:17 +0200 <boxscape> > "b+𝐛+𝑏+𝒃+𝒷+𝓫+𝔟+𝕓+𝖇+𝘣+𝙗+𝚋"
2021-07-08 12:24:19 +0200 <lambdabot> "b+\119835+\119887+\119939+\119991+\120043+\120095+\120147+\120199+\120355+\...
2021-07-08 12:25:51 +0200zcombinator(~zcombinat@5.180.62.223)
2021-07-08 12:26:33 +0200 <kuribas> wouldn't it be nice if you could write TH like mustache templates?
2021-07-08 12:27:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 12:27:44 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 12:27:50 +0200 <kuribas> or something else textual
2021-07-08 12:28:07 +0200Pickchea(~private@user/pickchea)
2021-07-08 12:29:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:29:55 +0200 <Rembane> Sounds intriguing, can it be done as a hack using the preprocessor?
2021-07-08 12:30:31 +0200 <Rembane> ...just to get a feel for it
2021-07-08 12:32:36 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 12:33:39 +0200 <boxscape> if <*> is "ap", how do you pronounce <**>?
2021-07-08 12:34:23 +0200 <boxscape> I was thinking maybe "flap", portmanteau of flip and ap
2021-07-08 12:34:34 +0200 <boxscape> but I don't know if there's a semi-established name
2021-07-08 12:34:47 +0200 <Atum_> stack compilation on windows is super slow, wow
2021-07-08 12:35:09 +0200 <Atum_> installed wsl, and now it is like, 10x faster
2021-07-08 12:35:13 +0200 <boxscape> compiling stack or compiling a program with stack?
2021-07-08 12:35:23 +0200 <Atum_> compiling a program with stack
2021-07-08 12:35:25 +0200 <Atum_> using the default template
2021-07-08 12:35:28 +0200 <boxscape> I see, weird
2021-07-08 12:37:15 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
2021-07-08 12:37:30 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-07-08 12:39:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 12:40:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:42:33 +0200zcombinator(~zcombinat@5.180.62.223) (Quit: WeeChat 3.2)
2021-07-08 12:46:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-07-08 12:46:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:47:19 +0200zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it)
2021-07-08 12:48:28 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 12:49:54 +0200kayprish(~kayprish@46.240.143.86) (Ping timeout: 252 seconds)
2021-07-08 12:51:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 12:52:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:58:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-07-08 12:58:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 12:59:55 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 13:00:25 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 13:03:49 +0200kenran(~kenran@200116b82bdcfa0070f86b22d449a64a.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-07-08 13:04:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 13:04:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 13:05:18 +0200 <dminuoso> kuribas: Nothing keeps you from using mustache on haskell files! :D
2021-07-08 13:08:03 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-07-08 13:09:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 13:10:33 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 13:10:54 +0200zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it) (Quit: WeeChat 3.2)
2021-07-08 13:11:02 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-07-08 13:11:55 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-07-08 13:13:36 +0200Kirat(~Gill@157.39.157.217)
2021-07-08 13:13:49 +0200Kirat(~Gill@157.39.157.217) (Client Quit)
2021-07-08 13:15:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-07-08 13:16:48 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 13:19:07 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-07-08 13:25:08 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 265 seconds)
2021-07-08 13:26:34 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 240 seconds)
2021-07-08 13:28:06 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 13:35:21 +0200Pickchea(~private@user/pickchea) (Ping timeout: 268 seconds)
2021-07-08 13:40:25 +0200 <viluon> dminuoso: sorry to ping you again, would you happen to know about places I could learn generics-sop by example?
2021-07-08 13:40:28 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-07-08 13:41:29 +0200chris-the-slurpa(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-08 13:42:00 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 13:43:33 +0200chris-th_(~chris@81.96.113.213)
2021-07-08 13:43:33 +0200chris-the-slurpa(~chris@81.96.113.213) (Read error: Connection reset by peer)
2021-07-08 13:44:00 +0200sander(~sander@user/sander) (Quit: So long! :))
2021-07-08 13:44:12 +0200sander(~sander@user/sander)
2021-07-08 13:44:36 +0200Obo(~roberto@94.191.137.180.mobile.tre.se) (Read error: Connection reset by peer)
2021-07-08 13:47:39 +0200dunkeln_(~dunkeln@188.70.10.207) (Ping timeout: 252 seconds)
2021-07-08 13:50:06 +0200favonia(~favonia@user/favonia)
2021-07-08 13:50:21 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 13:57:59 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-07-08 14:00:24 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 14:00:26 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 14:03:00 +0200jippiedoe(~david@2a02-a44c-e14e-1-bdc4-1e8f-afa7-3bad.fixed6.kpn.net)
2021-07-08 14:03:04 +0200zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it)
2021-07-08 14:03:38 +0200MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 258 seconds)
2021-07-08 14:05:53 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-07-08 14:06:26 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 14:06:40 +0200isekaijin(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-07-08 14:08:00 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 252 seconds)
2021-07-08 14:10:34 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-07-08 14:12:24 +0200 <lechner> Hi, how can I run these two IO statements inside the ZMQ monad, please? https://dpaste.org/cPWe#L47,48
2021-07-08 14:13:01 +0200 <merijn> liftIO, probably
2021-07-08 14:13:28 +0200Guest2492(~Martin@cpe-188-129-56-84.dynamic.amis.hr)
2021-07-08 14:13:38 +0200 <lechner> i know, but do i use point-free style?
2021-07-08 14:15:37 +0200lortabac(~lortabac@95.138.56.124)
2021-07-08 14:16:47 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-07-08 14:16:51 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 14:19:31 +0200Guest2492(~Martin@cpe-188-129-56-84.dynamic.amis.hr) (Remote host closed the connection)
2021-07-08 14:19:59 +0200Pickchea(~private@user/pickchea)
2021-07-08 14:20:18 +0200hiruji(~hiruji@user/hiruji)
2021-07-08 14:20:29 +0200APic(apic@apic.name)
2021-07-08 14:22:25 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 258 seconds)
2021-07-08 14:22:59 +0200hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349)
2021-07-08 14:23:29 +0200 <bryan[m]> It's not required, no. Are you asking how to combine the two statements? You don't need to do so, although it's possible
2021-07-08 14:23:46 +0200 <bryan[m]> I assume you're talking about the two commented lines
2021-07-08 14:23:50 +0200Martinsos(~Martinsos@cpe-188-129-56-84.dynamic.amis.hr)
2021-07-08 14:24:08 +0200 <lechner> i'd prefer not to, because it would teach me something about variables too
2021-07-08 14:24:15 +0200 <lechner> yes
2021-07-08 14:24:28 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 14:26:03 +0200tomscow-orker
2021-07-08 14:26:03 +0200 <exarkun> What is telling me `Setup: The pkg-config package 'libchallenge_bypass_ristretto_ffi' is required but it could not be found.` and what does it mean I'm missing?
2021-07-08 14:26:11 +0200 <bryan[m]> Then yeah, you need to add liftIO to both lines in the right place
2021-07-08 14:26:19 +0200cow-orkertoms
2021-07-08 14:26:25 +0200acidjnk(~acidjnk@p200300d0c72b9563c9e402731a025c7c.dip0.t-ipconnect.de)
2021-07-08 14:27:01 +0200SoF(~skius@user/skius) (Quit: Ping timeout (120 seconds))
2021-07-08 14:27:19 +0200SoF(~skius@user/skius)
2021-07-08 14:27:56 +0200 <bryan[m]> exarkun: the cabal package must list pkg-config dependencies (pkg-config is a cross-distribution tool used to find system libraries). Your system is presumably missing that system package
2021-07-08 14:28:41 +0200 <bryan[m]> So it's cabal that's telling you the message
2021-07-08 14:28:42 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 240 seconds)
2021-07-08 14:30:42 +0200acidjnk(~acidjnk@p200300d0c72b9563c9e402731a025c7c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-07-08 14:30:47 +0200 <exarkun> Okay. I have `pkgconfig-depends: libchallenge_bypass_ristretto_ffi` in my .cabal file. So cabal is now asking `pkg-config` some question about `libchallenge_bypass_ristretto_ffi`? Like maybe `pkg-config --exists libchallenge_bypass_ristretto_ffi` or some such? And `pkg-config` doesn't know anything about it it...
2021-07-08 14:32:19 +0200 <exarkun> Does this also come from Cabal? "error: The pkg-conf packages does not contain the package: libchallenge_bypass_ristretto_ffi (pkg-conf dependency)."
2021-07-08 14:33:25 +0200 <merijn> exarkun: It means cabal asked pkg-config about it, but your pkg-config install didn't know about it
2021-07-08 14:34:19 +0200 <exarkun> merijn: The first one or the second one?
2021-07-08 14:35:11 +0200 <merijn> For sure the first one is that, the 2nd probably too?
2021-07-08 14:35:27 +0200 <merijn> exarkun: I think the 2nd one is just cabal forwarding the output of pkg-config?
2021-07-08 14:39:39 +0200 <lechner> Hi, why does the last line here give "Couldn't match type ‘[]’ with ‘ZMQ z’ Expected type: ZMQ z Char Actual type: String please, while the assignment in the line above it worked just fine? https://dpaste.org/DzEH#L31
2021-07-08 14:40:06 +0200Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2021-07-08 14:40:43 +0200nsilv(~nsilv@212.103.198.210)
2021-07-08 14:43:10 +0200 <mniip> what does "constraint from maximum version of Cabal used by Setup.hs requires <3.4"
2021-07-08 14:43:12 +0200 <mniip> mean
2021-07-08 14:43:38 +0200 <mniip> I don't see such constraint anywhere in the cabal file
2021-07-08 14:45:28 +0200 <exarkun> I suspect that the `pkg-conf` error comes from something else... haskell.nix, I guess. It appears when I remove the nixpkgs overlay that defines libchallenge_bypass_ristretto_ffi.
2021-07-08 14:46:33 +0200 <merijn> mniip: You have a custom Setup.hs?
2021-07-08 14:46:38 +0200 <mniip> yes
2021-07-08 14:46:46 +0200 <merijn> mniip: Do you have setup-depends?
2021-07-08 14:46:49 +0200 <mniip> yes
2021-07-08 14:47:02 +0200 <mniip> really I'm trying to install ghc-paths into GHC HEAD inplace package db
2021-07-08 14:47:04 +0200 <merijn> hmm
2021-07-08 14:47:41 +0200 <merijn> Which Cabal version do you have installed?
2021-07-08 14:47:51 +0200 <merijn> Is it maybe using one too old for your GHC?
2021-07-08 14:48:13 +0200 <mniip> cabal-install ver 3.2.0.0
2021-07-08 14:48:28 +0200 <merijn> Pretty sure that doesn't work with GHC HEAD
2021-07-08 14:48:30 +0200 <mniip> oh
2021-07-08 14:48:39 +0200 <merijn> Doesn't 9.0 or 9.2 require 3.4?
2021-07-08 14:48:43 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-07-08 14:48:50 +0200 <merijn> So presumably HEAD requires something newer too
2021-07-08 14:48:51 +0200 <mniip> does 3.4
2021-07-08 14:49:04 +0200 <mniip> let's try that
2021-07-08 14:49:26 +0200 <merijn> Cabal doesn't guarantee forward compat, only backwards
2021-07-08 14:49:40 +0200 <mniip> understandable
2021-07-08 14:49:59 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-07-08 14:50:52 +0200andreabedini(~andreabed@8s8kj6nl13s474s8p7bh.ip6.superloop.com)
2021-07-08 14:51:10 +0200Pickchea(~private@user/pickchea) (Ping timeout: 265 seconds)
2021-07-08 14:51:47 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 14:51:50 +0200scrazen(~scrazen@user/scrazen)
2021-07-08 14:53:15 +0200wallymathieu(~wallymath@81-234-151-21-no94.tbcn.telia.com)
2021-07-08 14:56:04 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-07-08 14:56:08 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-07-08 14:57:00 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 272 seconds)
2021-07-08 15:01:11 +0200alx741(~alx741@181.196.69.147)
2021-07-08 15:02:07 +0200fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-07-08 15:02:48 +0200 <bryan[m]> lechner: `<-` means to unwrap a monadic value, but your last line doesn't have one. (Well, technically it does, but it's the wrong kind of monad. Pretend I didn't just tell you that.) If you want to create a new name for a non-monadic value inside of a do-block, use let. `let configPath = head args`
2021-07-08 15:03:23 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-07-08 15:03:40 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 15:04:34 +0200chris-th_(~chris@81.96.113.213) (Remote host closed the connection)
2021-07-08 15:05:16 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 15:08:14 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 15:08:23 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 15:09:17 +0200jneira(~jneira@212.8.115.226) (Quit: Client closed)
2021-07-08 15:09:29 +0200chris-the-slurpa(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-07-08 15:11:57 +0200 <merijn> mniip: Did that resolve things?
2021-07-08 15:12:05 +0200 <mniip> compiling :P
2021-07-08 15:12:15 +0200 <merijn> That's further than it got before, no? :p
2021-07-08 15:12:23 +0200 <mniip> compiling cabal-install
2021-07-08 15:12:26 +0200 <merijn> ah
2021-07-08 15:12:40 +0200 <lechner> bryan[m]: thanks!
2021-07-08 15:18:55 +0200 <mniip> it worked in the end
2021-07-08 15:22:51 +0200 <merijn> mniip: \o/
2021-07-08 15:29:37 +0200 <viluon> hi, I'm trying to understand generics-sop, going through the pretty-sop example (https://github.com/well-typed/pretty-sop/blob/master/src/Generics/SOP/PrettyVal.hs#L33). It looks like gprettyVal' requires the `All SListI xss` constraint (equivalent to `SListI2 xss`, right?) which from what I can tell ensures that the code of the datatype (represented by the `xss` parameter) has to have exactly one field in every product.
2021-07-08 15:29:38 +0200 <viluon> That's obviously not true, as the README example shows (and also such a constraint doesn't follow from those of `gprettyVal`, `gprettyVal'`'s caller). Where am I going wrong?
2021-07-08 15:31:19 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 15:32:12 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2021-07-08 15:37:06 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 15:37:18 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 15:38:08 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 15:43:37 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2021-07-08 15:44:42 +0200Martinsos(~Martinsos@cpe-188-129-56-84.dynamic.amis.hr) (Remote host closed the connection)
2021-07-08 15:45:38 +0200ray(~ray@user/re)
2021-07-08 15:47:48 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-08 15:47:55 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 15:49:17 +0200chris-the-slurpa(~chris@81.96.113.213)
2021-07-08 15:50:07 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 15:51:17 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-08 15:51:20 +0200Pickchea(~private@user/pickchea)
2021-07-08 15:53:02 +0200dunkeln(~dunkeln@94.129.65.28)
2021-07-08 15:58:09 +0200Kirat(~Gill@157.39.129.34)
2021-07-08 15:58:21 +0200Kirat(~Gill@157.39.129.34) (Client Quit)
2021-07-08 16:00:16 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar)
2021-07-08 16:03:10 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 16:08:34 +0200xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060) (Ping timeout: 240 seconds)
2021-07-08 16:09:18 +0200Sgeo(~Sgeo@user/sgeo)
2021-07-08 16:09:32 +0200zyklotomic(~ethan@2604:a880:800:10::79f:8001) (WeeChat 2.8)
2021-07-08 16:10:12 +0200hexreel(~hr@69.233.98.238)
2021-07-08 16:11:19 +0200shredder(~user@user/shredder) (Quit: quitting)
2021-07-08 16:13:09 +0200shredder(~user@user/shredder)
2021-07-08 16:13:21 +0200xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060)
2021-07-08 16:13:24 +0200dunkeln(~dunkeln@94.129.65.28) (Quit: leaving)
2021-07-08 16:18:43 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 16:27:22 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-07-08 16:27:57 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 16:29:15 +0200nsilv(~nsilv@212.103.198.210) (Ping timeout: 268 seconds)
2021-07-08 16:30:16 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-07-08 16:31:00 +0200nsilv(~nsilv@212.103.198.210)
2021-07-08 16:32:57 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2021-07-08 16:34:15 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-07-08 16:35:11 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 16:39:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Ping timeout: 240 seconds)
2021-07-08 16:40:52 +0200chase(~chase@89.45.224.218)
2021-07-08 16:41:01 +0200chase(~chase@89.45.224.218) (Client Quit)
2021-07-08 16:42:08 +0200ubert1(~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-07-08 16:48:28 +0200euandreh(~euandreh@2804:14c:33:9fe5:547e:4393:1b6c:3477) (Ping timeout: 256 seconds)
2021-07-08 16:49:18 +0200derelict(~derelict@user/derelict)
2021-07-08 16:49:21 +0200euandreh(~euandreh@2804:14c:33:9fe5:3720:61ec:ee32:2ddc)
2021-07-08 16:51:19 +0200MrVulcan(~MrVulcan@101.175.88.138)
2021-07-08 16:51:50 +0200andreabedini(~andreabed@8s8kj6nl13s474s8p7bh.ip6.superloop.com) (Quit: WeeChat 3.2)
2021-07-08 16:56:34 +0200michalz(~michalz@185.246.204.121) (Remote host closed the connection)
2021-07-08 16:57:27 +0200hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) (Quit: hatz_)
2021-07-08 16:57:51 +0200 <lechner> Hi, if 'a $ b c' is the same as 'a (b c)' why, please, does this give an error bind responder ("tcp://*:" ++ show $ port config) while this does not bind responder ("tcp://*:" ++ show (port config))
2021-07-08 16:59:46 +0200dut(~dut@user/dut)
2021-07-08 17:01:21 +0200jakalx(~jakalx@base.jakalx.net)
2021-07-08 17:01:36 +0200 <geekosaur> because `a $ b c` is only half the story
2021-07-08 17:01:51 +0200 <geekosaur> a b $ c d is the same as (a b) (c d)
2021-07-08 17:02:18 +0200 <geekosaur> so yoiu're trying to append the function `show` to a string
2021-07-08 17:02:31 +0200 <lechner> ah
2021-07-08 17:02:38 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-07-08 17:02:40 +0200dut(~dut@user/dut) (Client Quit)
2021-07-08 17:03:04 +0200 <lechner> so (show $ port config) is perhaps a better way to write that
2021-07-08 17:03:19 +0200 <geekosaur> yes
2021-07-08 17:03:52 +0200hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349)
2021-07-08 17:04:02 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 17:05:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 17:05:22 +0200ray(~ray@user/re) (Quit: WeeChat 3.2)
2021-07-08 17:05:42 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-07-08 17:06:02 +0200ray(~ray@user/re)
2021-07-08 17:09:46 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Ping timeout: 240 seconds)
2021-07-08 17:11:25 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-07-08 17:12:44 +0200azeem(~azeem@176.200.191.45)
2021-07-08 17:12:54 +0200nikoo
2021-07-08 17:13:14 +0200MrVulcan(~MrVulcan@101.175.88.138) (Ping timeout: 252 seconds)
2021-07-08 17:14:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-07-08 17:15:19 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-08 17:16:19 +0200neurocyte40(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-07-08 17:17:47 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 17:18:17 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 17:18:45 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Quit: WeeChat 2.8)
2021-07-08 17:19:06 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds)
2021-07-08 17:19:24 +0200azeem(~azeem@176.200.191.45) (Ping timeout: 252 seconds)
2021-07-08 17:20:52 +0200azeem(~azeem@176.201.8.194)
2021-07-08 17:20:54 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net)
2021-07-08 17:22:07 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-07-08 17:23:14 +0200neurocyte40(~neurocyte@45.93.108.182)
2021-07-08 17:23:14 +0200neurocyte40(~neurocyte@45.93.108.182) (Changing host)
2021-07-08 17:23:14 +0200neurocyte40(~neurocyte@user/neurocyte)
2021-07-08 17:23:28 +0200 <monochrom> ("tcp://*:" ++ show (port config))
2021-07-08 17:24:03 +0200 <monochrom> Since the cause of "I hate parentheses" is lost anyway, why keep $ around?
2021-07-08 17:24:14 +0200rostero(uid236576@id-236576.tooting.irccloud.com)
2021-07-08 17:25:17 +0200 <lechner> the other set or parentheses corresponds to %s in the formatting string
2021-07-08 17:25:49 +0200 <lechner> that could help when there are more than one
2021-07-08 17:26:16 +0200 <monochrom> But there is no %s.
2021-07-08 17:26:33 +0200lortabac(~lortabac@95.138.56.124) (Quit: WeeChat 2.8)
2021-07-08 17:26:38 +0200 <monochrom> printf "%s" (show whatever) I would agree.
2021-07-08 17:27:06 +0200 <monochrom> You have an infix operator ++ instead.
2021-07-08 17:27:18 +0200 <lechner> you are right! i was thinking two lines down in my code
2021-07-08 17:28:38 +0200 <lechner> i am starting to like this haskelling
2021-07-08 17:30:11 +0200spruit11_(~quassel@86-82-44-193.fixed.kpn.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-07-08 17:30:37 +0200spruit11(~quassel@2a02:a467:ccd6:1:f403:cf1e:97b5:1c9b)
2021-07-08 17:32:14 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2021-07-08 17:35:38 +0200azeem(~azeem@176.201.8.194) (Read error: Connection reset by peer)
2021-07-08 17:36:30 +0200 <wroathe> What would you call a function that does something like [a -> b] -> a -> b
2021-07-08 17:36:51 +0200 <wroathe> well, actually it's [a -> ()] -> a -> ()
2021-07-08 17:37:01 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 17:37:15 +0200 <wroathe> Just takes a list of functions and calls them in sequence by applying a to each and ignoring the result
2021-07-08 17:38:11 +0200 <monochrom> head
2021-07-08 17:39:39 +0200 <monochrom> const () (map ($ your_a) your_list)
2021-07-08 17:39:59 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 17:40:40 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Remote host closed the connection)
2021-07-08 17:40:45 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-07-08 17:41:05 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-07-08 17:43:09 +0200 <dsal> :t map (const ())
2021-07-08 17:43:10 +0200 <lambdabot> error:
2021-07-08 17:43:10 +0200 <lambdabot> Ambiguous occurrence ‘map’
2021-07-08 17:43:10 +0200 <lambdabot> It could refer to
2021-07-08 17:43:27 +0200 <monochrom> That's strange.
2021-07-08 17:43:30 +0200 <monochrom> @undefine
2021-07-08 17:43:31 +0200 <lambdabot> Undefined.
2021-07-08 17:43:36 +0200 <monochrom> :t map
2021-07-08 17:43:37 +0200 <lambdabot> (a -> b) -> [a] -> [b]
2021-07-08 17:43:40 +0200 <monochrom> better
2021-07-08 17:44:16 +0200 <dsal> :t (const.const) ()
2021-07-08 17:44:17 +0200 <lambdabot> b1 -> b2 -> ()
2021-07-08 17:44:23 +0200 <wroathe> monochrom: Why head?
2021-07-08 17:44:24 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-07-08 17:44:39 +0200 <monochrom> [t] -> t with t = a->b
2021-07-08 17:44:49 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 258 seconds)
2021-07-08 17:45:02 +0200fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 17:45:21 +0200 <dsal> wroathe: if you don't want the results of a function, bit calling it is the restaurant l easiest way to avoid it
2021-07-08 17:45:40 +0200 <dsal> Phone language...
2021-07-08 17:45:50 +0200 <dsal> Just don't call the function.
2021-07-08 17:46:01 +0200 <wroathe> Ah. The scenario is that I'm actually doing this in Javascript, and I was using function composition but the object each routine is operating on is a reference type, and so for the sake of sanity I'm not going to require the user to return the object that's being operated on, and instead this routine is just going to call each function in a sequence with the object
2021-07-08 17:46:35 +0200 <dsal> :t traverse_
2021-07-08 17:46:36 +0200 <monochrom> Translate our mapM_ to javascript.
2021-07-08 17:46:36 +0200 <lambdabot> (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
2021-07-08 17:46:58 +0200 <wroathe> Ah. That's exactly what I was looking for.
2021-07-08 17:47:00 +0200 <wroathe> Thanks.
2021-07-08 17:47:22 +0200Pickchea(~private@user/pickchea) (Ping timeout: 246 seconds)
2021-07-08 17:47:44 +0200 <monochrom> X -> IO Y vs X -> Y
2021-07-08 17:48:03 +0200 <wroathe> monochrom: Yeah, that makes way more sense.
2021-07-08 17:48:48 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 17:48:52 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2)
2021-07-08 18:03:05 +0200Obo(~roberto@122.red-83-38-248.dynamicip.rima-tde.net) (Quit: WeeChat 2.8)
2021-07-08 18:11:06 +0200jippiedoe(~david@2a02-a44c-e14e-1-bdc4-1e8f-afa7-3bad.fixed6.kpn.net) (Ping timeout: 252 seconds)
2021-07-08 18:11:36 +0200smarton(~smarton@121407.xyz) (Changing host)
2021-07-08 18:11:36 +0200smarton(~smarton@gnu/webmaster/smarton)
2021-07-08 18:12:11 +0200nsilv(~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1)
2021-07-08 18:13:30 +0200 <Las[m]> Does anyone here know how I'd parse only the first YAML document in a string? I'm trying to parse the YAML metadata blocks used with pandoc, but I'm assuming there's some clever way of doing it without me having to search for the `...` and stripping away everything after that.
2021-07-08 18:13:57 +0200 <Las[m]> Both HsYAML and yaml just give me an error just after the `...`, which is where the Markdown starts of course
2021-07-08 18:16:34 +0200alphabeta(~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-08 18:18:05 +0200xerxes(~xerxes@117.222.64.149)
2021-07-08 18:18:16 +0200 <sm[m]> parseYaml $ unlines $ takeWhile (/= "..." $ lines s ?
2021-07-08 18:19:38 +0200 <sm[m]> * parseYaml $ unlines $ takeWhile (/= "...") $ lines s ?
2021-07-08 18:20:13 +0200 <kosmikus> viluon: is your question about generics-sop still open? I'm not sure if I understand your comment correctly. the constraint `All SListI xss` does not say very much. In principle, all that it states is that all elements of `xss` must themselves be lists. This is in principle already clear by their kind, but the `SListI` gives inductive access to the list structure.
2021-07-08 18:20:35 +0200 <viluon> kosmikus: hi! yes!
2021-07-08 18:21:00 +0200 <Las[m]> sm: Yeah, I could do that, it just seems ugly since it parses it 2 times.
2021-07-08 18:21:01 +0200 <viluon> kosmikus: thanks for the clarification, the documentation however states that `SListI xs` ensures `xs` is a *singleton* list
2021-07-08 18:21:02 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-07-08 18:22:29 +0200 <kosmikus> viluon: oh, I see. this phrasing is unfortunate.
2021-07-08 18:22:36 +0200 <sm[m]> Las: if you also want the markdown part, use break and friends
2021-07-08 18:22:45 +0200 <kosmikus> viluon: I should probably improve it. there's a concept in type-level programming of "singleton types".
2021-07-08 18:22:53 +0200zeenk(~zeenk@2a02:2f04:a106:9600:82fb:aed9:ca9:38d3) (Quit: Konversation terminated!)
2021-07-08 18:23:18 +0200 <viluon> kosmikus: oh, what are singleton types? Types of a single value?
2021-07-08 18:23:24 +0200 <kosmikus> viluon: a singleton type is essentially a type that establishes a one-to-one correspondence between term-level entities and type-level entities of a particular kind.
2021-07-08 18:23:58 +0200 <kosmikus> viluon: and you can use a singleton type as a proxy to perform induction / case distinctions on types of a kind.
2021-07-08 18:24:06 +0200alx741(~alx741@181.196.69.147) (Ping timeout: 272 seconds)
2021-07-08 18:24:24 +0200cuz(~user@38.140.58.234)
2021-07-08 18:24:41 +0200 <kosmikus> viluon: so what this comment is trying to say is that the `SListI xs` constraint provides such a singleton type for the kind of type-level lists.
2021-07-08 18:24:55 +0200 <kosmikus> viluon: it does *not* mean to say that the list must somehow have exactly one element.
2021-07-08 18:25:12 +0200 <kosmikus> viluon: but I can see how the current text might give that incorrect impression.
2021-07-08 18:26:13 +0200 <kosmikus> viluon: btw, with any current version of generics-sop, explicitly stating this `All SListI xss` constraint on `gPrettyVal'` and `gPrettyVal''` is not actually required. it's already implied by the `All2 PrettyVal xss`.
2021-07-08 18:28:01 +0200 <kosmikus> viluon: a simple example of a singleton type would be the GADT `data SBool (b :: Bool) where SFalse :: SBool False; STrue :: SBool True`.
2021-07-08 18:28:01 +0200cuz(~user@38.140.58.234) (Remote host closed the connection)
2021-07-08 18:28:28 +0200cuz(~user@38.140.58.234)
2021-07-08 18:28:29 +0200 <kosmikus> viluon: now there's exactly one value `SFalse` corresponding to the type `False`, and one value `STrue` corresponding to the type `True`.
2021-07-08 18:29:01 +0200 <kosmikus> viluon: if you want to define something by induction on the kind `Bool`, you can add a parameter of type `SBool b` to it and perform pattern matching on that GADT.
2021-07-08 18:29:35 +0200 <kosmikus> viluon: there are a number of variations on this technique, including providing the value of type `SBool` implicitly by means of a type class.
2021-07-08 18:29:41 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-07-08 18:29:51 +0200 <kosmikus> viluon: `All SListI xs` does essentially that for the kind of type-level lists.
2021-07-08 18:31:20 +0200cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2021-07-08 18:31:35 +0200cheater(~Username@user/cheater)
2021-07-08 18:37:59 +0200alx741(~alx741@181.196.68.47)
2021-07-08 18:39:10 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 246 seconds)
2021-07-08 18:39:18 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-07-08 18:39:58 +0200 <viluon> kosmikus: thanks for the thorough explanation!
2021-07-08 18:40:58 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-07-08 18:41:31 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 18:46:09 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 268 seconds)
2021-07-08 18:46:38 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 18:47:57 +0200jneira[m](~jneira@47.red-176-83-116.dynamicip.rima-tde.net)
2021-07-08 18:48:16 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar) (Ping timeout: 246 seconds)
2021-07-08 18:55:05 +0200mekeor(~user@2001:a61:3430:c01:f86:cca7:c1fe:e2b4)
2021-07-08 18:55:47 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 18:57:35 +0200 <viluon> kosmikus: so.. with `SListI xs` you can "map" the typelevel `xs` list to a term - a list - which you can perform induction on? But you still don't know anything about its elements?
2021-07-08 18:57:59 +0200 <viluon> kosmikus: if so, how's that different to just saying `[x]`?
2021-07-08 18:58:13 +0200 <viluon> or `'[x]`
2021-07-08 19:00:20 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 258 seconds)
2021-07-08 19:01:21 +0200Deide(~Deide@217.155.19.23)
2021-07-08 19:01:21 +0200Deide(~Deide@217.155.19.23) (Changing host)
2021-07-08 19:01:21 +0200Deide(~Deide@user/deide)
2021-07-08 19:04:04 +0200 <kosmikus> viluon: let's say you want to create something like an `NP (K ()) xs`.
2021-07-08 19:04:33 +0200 <kosmikus> viluon: conceptually, it's easy. you just have to repeat `K ()` as often as the type-level list `xs` dictates. but how do you actually do this?
2021-07-08 19:04:57 +0200jneira[m](~jneira@47.red-176-83-116.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-07-08 19:05:16 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 268 seconds)
2021-07-08 19:05:18 +0200 <viluon> kosmikus: oh, so the constraint part is trivial, the length-preserving mapping is what counts?
2021-07-08 19:05:21 +0200 <kosmikus> viluon: if you define `makeNP :: NP (K ()) xs`, you have no inputs whatsoever. nothing you can perform induction on. you cannot look whether `xs` is expected to be empty or not.
2021-07-08 19:05:51 +0200 <kosmikus> viluon: that's why you need something extra that'll give you access to the structure of `xs`.
2021-07-08 19:06:58 +0200georg(~georg@84-112-37-146.cable.dynamic.surfer.at)
2021-07-08 19:07:39 +0200 <kosmikus> viluon: and that's what the `SListI xs` constraint provides you with.
2021-07-08 19:08:29 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 19:08:36 +0200 <kosmikus> viluon: (I'm not sure what you mean by length-preserving mapping.)
2021-07-08 19:09:07 +0200georg(~georg@84-112-37-146.cable.dynamic.surfer.at) (Client Quit)
2021-07-08 19:13:47 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 19:18:05 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 19:19:25 +0200pavonia(~user@user/siracusa)
2021-07-08 19:25:35 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 19:25:51 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-08 19:26:04 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 19:26:35 +0200MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 255 seconds)
2021-07-08 19:30:11 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 19:33:40 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 19:36:29 +0200cuz(~user@38.140.58.234) (Ping timeout: 255 seconds)
2021-07-08 19:38:59 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 19:42:51 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 19:42:57 +0200Erutuon(~Erutuon@user/erutuon)
2021-07-08 19:43:41 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 255 seconds)
2021-07-08 19:44:39 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:5056:66c0:d6e:186f)
2021-07-08 19:45:21 +0200xerxes(~xerxes@117.222.64.149) (Quit: leaving)
2021-07-08 19:47:17 +0200mekeor(~user@2001:a61:3430:c01:f86:cca7:c1fe:e2b4) (Ping timeout: 255 seconds)
2021-07-08 19:47:42 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2021-07-08 19:48:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 19:55:44 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 19:55:47 +0200slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net)
2021-07-08 19:59:28 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-07-08 20:00:00 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Ping timeout: 252 seconds)
2021-07-08 20:02:26 +0200ray(~ray@user/re) (Ping timeout: 265 seconds)
2021-07-08 20:02:35 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 255 seconds)
2021-07-08 20:03:20 +0200ray(~ray@user/re)
2021-07-08 20:03:32 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 20:06:44 +0200cuz(~user@38.140.58.234)
2021-07-08 20:07:56 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-07-08 20:09:56 +0200notzmv(~zmv@user/notzmv)
2021-07-08 20:11:54 +0200cuz(~user@38.140.58.234) (Ping timeout: 256 seconds)
2021-07-08 20:15:10 +0200lavaman(~lavaman@98.38.249.169)
2021-07-08 20:15:10 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-07-08 20:17:24 +0200kilolympus(~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net)
2021-07-08 20:22:40 +0200azeem(~azeem@dynamic-adsl-84-220-226-129.clienti.tiscali.it)
2021-07-08 20:23:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-07-08 20:24:13 +0200exilepilot(~exile8338@host86-164-249-163.range86-164.btcentralplus.com)
2021-07-08 20:24:35 +0200zcombinator(~zcombinat@host-87-7-58-35.retail.telecomitalia.it) (Ping timeout: 240 seconds)
2021-07-08 20:27:53 +0200mikail(~mikail@90.152.14.81)
2021-07-08 20:27:54 +0200cuz(~user@38.140.58.234)
2021-07-08 20:28:26 +0200econo(uid147250@user/econo)
2021-07-08 20:28:57 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
2021-07-08 20:29:40 +0200hammond_(~abner@user/hammond2) (Ping timeout: 252 seconds)
2021-07-08 20:31:03 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-07-08 20:33:57 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8)
2021-07-08 20:35:19 +0200flipchan(~yumman@user/flipchan)
2021-07-08 20:35:40 +0200gehmehgeh(~user@user/gehmehgeh)
2021-07-08 20:37:55 +0200phma(phma@2001:5b0:210b:a0c8:76df:2981:6329:1c09) (Read error: Connection reset by peer)
2021-07-08 20:39:55 +0200phma(phma@2001:5b0:2172:8bb8:fe9a:4d29:923:26f0)
2021-07-08 20:40:14 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2021-07-08 20:41:49 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 20:45:08 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 20:45:39 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 20:47:00 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
2021-07-08 20:47:46 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 20:49:31 +0200Pickchea(~private@user/pickchea)
2021-07-08 20:50:24 +0200phma(phma@2001:5b0:2172:8bb8:fe9a:4d29:923:26f0) (Read error: Connection reset by peer)
2021-07-08 20:50:31 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
2021-07-08 20:50:39 +0200Kaipi(~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net)
2021-07-08 20:51:54 +0200xff0x(~xff0x@2001:1a81:53dc:b800:8c77:48f3:1e3:3060) (Ping timeout: 240 seconds)
2021-07-08 20:52:55 +0200xff0x(~xff0x@2001:1a81:53dc:b800:d9eb:91ca:317b:6253)
2021-07-08 20:52:56 +0200 <amesgen[m]> tiny ANN: there does not seem to be a library providing a transformer for `Quote` of template-haskell since 9.0, so I published https://hackage.haskell.org/package/quotet/docs/Control-Monad-Quote.html
2021-07-08 20:53:47 +0200phma(phma@2001:5b0:211c:858:db7c:9aeb:2bd8:1b08)
2021-07-08 20:54:51 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2021-07-08 20:59:52 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 21:01:15 +0200 <sm[m]> I upvote the concept of Tiny ANN: :)
2021-07-08 21:01:29 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-07-08 21:03:02 +0200 <amesgen[m]> Ü
2021-07-08 21:04:47 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 21:09:25 +0200sonat_suer(~sonat_sue@24.133.69.243)
2021-07-08 21:12:04 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 252 seconds)
2021-07-08 21:13:57 +0200sonat_suer(~sonat_sue@24.133.69.243) (Client Quit)
2021-07-08 21:15:14 +0200ray(~ray@user/re) (Quit: WeeChat 3.2)
2021-07-08 21:20:11 +0200 <juri_> so, how do i get from a Set to NonEmpty in a reasonable fashion (EG: not using fromList $ elems ? )
2021-07-08 21:20:34 +0200 <juri_> quite disappointed that NESet is so old.
2021-07-08 21:22:55 +0200 <flipchan> if anyone is interested in haskell work contracts: https://haskell.careers
2021-07-08 21:23:22 +0200 <lyxia> juri_: why is that not reasonable
2021-07-08 21:23:51 +0200 <juri_> lyxia: stan yells at me for using fromList, since elems MAY be empty.
2021-07-08 21:24:05 +0200 <amesgen[m]> juri_: are you looking for this: https://hackage.haskell.org/package/nonempty-containers-0.3.4.1/docs/Data-Set-NonEmpty.html#v:toList
2021-07-08 21:24:26 +0200 <dminuoso> juri_: Dont be a slave to your static analyzer tool?
2021-07-08 21:24:38 +0200 <juri_> nope. same problem.
2021-07-08 21:24:53 +0200 <juri_> dminuoso: I'm trying to get my project to 0 warnings. :P
2021-07-08 21:24:56 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 21:25:00 +0200 <dminuoso> That sounds like a weird goal.
2021-07-08 21:25:18 +0200 <dminuoso> Warnings should tell you about things you care about. Tools like stan are just someone elses opinion.
2021-07-08 21:25:33 +0200 <juri_> I've gone from 500 to <50.
2021-07-08 21:26:16 +0200 <dminuoso> Linters are not absolute truth. They are a reflection of someone elses opinionated coding style.
2021-07-08 21:26:28 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 21:26:37 +0200 <dminuoso> If you insist on stan, tune it to not warn for this instance then.
2021-07-08 21:27:23 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it)
2021-07-08 21:30:09 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-07-08 21:30:40 +0200 <s_> juri_, presumably at some point you check that elems is not empty and handle it appropriately. At that point, you need to convert it to NonEmpty and pass everywhere instead of elems. Depending on the distance between the check and fromList, this may require a big refactoring.
2021-07-08 21:30:58 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-07-08 21:31:16 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 21:32:51 +0200 <juri_> s_: fair, and an easy opportunity. thanks.
2021-07-08 21:33:48 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-07-08 21:36:04 +0200fendor(~fendor@91.141.49.3.wireless.dyn.drei.com) (Remote host closed the connection)
2021-07-08 21:37:19 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-07-08 21:39:31 +0200Cajun(~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed)
2021-07-08 21:44:28 +0200 <dsal> I'd never tried this stan thing. It seems really angry that I don't `!` all my fields. Also, I use `length` sometimes.
2021-07-08 21:44:59 +0200 <davean> dsal: wait, its angry you don't ! your fields? But ... thats not a valid thing to do in general ...
2021-07-08 21:45:01 +0200 <juri_> it's pretty angry in general. applying it has made my code a lot cleaner, tho.
2021-07-08 21:45:10 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-07-08 21:45:18 +0200 <dsal> davean: Yeah, because then they're lazy and it might space leak.
2021-07-08 21:45:40 +0200 <dsal> I feel like banging a TVar isn't going to do a lot.
2021-07-08 21:45:46 +0200 <davean> dsal: I mean, but then they're strict and might cause your program to diverge ...
2021-07-08 21:46:08 +0200 <dsal> What do you mean diverge?
2021-07-08 21:46:25 +0200 <davean> I mean that a field being strict can cause your program to run forever making no progress
2021-07-08 21:46:57 +0200 <dsal> Ah.
2021-07-08 21:47:10 +0200neceve(~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f)
2021-07-08 21:50:43 +0200 <dsal> Removing that one gives me a few reasonable complaints. Nothing I'm actually going to do anything about, though.
2021-07-08 21:51:30 +0200hatz_(~user@2a05:f480:1400:f44:5400:3ff:fe6d:f349) ()
2021-07-08 21:52:35 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net)
2021-07-08 21:52:49 +0200 <dsal> I like tools like this in theory...
2021-07-08 21:53:23 +0200 <sm[m]> angry tools ?
2021-07-08 21:53:47 +0200 <juri_> I find that when i throw my code at a tool like that, and bend the code, it gets better. i'm not too sure it matters on the tool.
2021-07-08 21:54:59 +0200 <sm[m]> I like the tools that are really quite angry but cover it well with a layer of helpful advice :)
2021-07-08 21:55:24 +0200 <dsal> I've learned useful stuff from hlint
2021-07-08 21:56:13 +0200 <davean> juri_: I mean thats great up to a point, and that point certainly isn't where its flat out wrong
2021-07-08 21:56:13 +0200 <sm[m]> +1 and shellcheck!
2021-07-08 21:57:21 +0200fluffyballoon(~fluffybal@199.204.58.62) (Quit: Client closed)
2021-07-08 21:57:37 +0200 <lyxia> juri_: ah, there's the total version: https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-List-NonEmpty.html#v:nonEmpty
2021-07-08 21:57:45 +0200fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 21:57:52 +0200 <juri_> lyxia: yep. that's what i used.
2021-07-08 21:58:26 +0200alex3(~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 265 seconds)
2021-07-08 21:58:27 +0200guest61(~xxx@47.245.54.240) (Remote host closed the connection)
2021-07-08 21:59:03 +0200 <juri_> my haskell is pretty bad, so i tend to hit it with all of the tools, to try and make it make sense to others.
2021-07-08 21:59:23 +0200alex3(~alex3@BSN-77-82-41.static.siol.net)
2021-07-08 21:59:31 +0200 <juri_> I've written a projective geometric library... and am trying to use it to help get others into haskell.
2021-07-08 21:59:33 +0200guest61(~xxx@47.245.54.240)
2021-07-08 22:00:23 +0200sheepduck(~sheepduck@user/sheepduck)
2021-07-08 22:00:49 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-07-08 22:01:56 +0200jespada(~jespada@90.254.247.46) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-07-08 22:02:50 +0200fluffyballoon(~fluffybal@199.204.58.62) (Quit: Client closed)
2021-07-08 22:03:18 +0200fluffyballoon(~fluffybal@199.204.58.62)
2021-07-08 22:04:35 +0200hexreel(~hr@69.233.98.238) (Quit: WeeChat 3.2)
2021-07-08 22:05:02 +0200roboto_el_gato(~roboto_el@2600:1700:7df0:4f30:ec10:cbf7:f7cc:3882) (Quit: Client closed)
2021-07-08 22:05:19 +0200drd(~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 246 seconds)
2021-07-08 22:05:46 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 272 seconds)
2021-07-08 22:07:10 +0200juhp(~juhp@128.106.188.66)
2021-07-08 22:10:40 +0200derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-07-08 22:12:38 +0200mikail(~mikail@90.152.14.81) (Ping timeout: 255 seconds)
2021-07-08 22:15:32 +0200exilepilot(~exile8338@host86-164-249-163.range86-164.btcentralplus.com) (Read error: Connection reset by peer)
2021-07-08 22:18:24 +0200smsm[i]
2021-07-08 22:19:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-07-08 22:21:22 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-07-08 22:22:16 +0200sm[i](~user@plaintextaccounting/sm) (Quit: ERC (IRC client for Emacs 27.0.50))
2021-07-08 22:23:39 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-07-08 22:23:55 +0200Sgeo(~Sgeo@user/sgeo)
2021-07-08 22:24:04 +0200sm[i](~user@plaintextaccounting/sm)
2021-07-08 22:25:46 +0200DNH(~DNH@2a02:8108:1100:16d8:99cf:ff96:88:4a77)
2021-07-08 22:26:21 +0200fendor(~fendor@91.141.49.3.wireless.dyn.drei.com)
2021-07-08 22:27:13 +0200acidjnk_new3(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de)
2021-07-08 22:28:50 +0200sm[m](~sm@plaintextaccounting/sm) (Quit: Reconnecting)
2021-07-08 22:31:03 +0200acidjnk(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de)
2021-07-08 22:31:12 +0200ray(~ray@user/re)
2021-07-08 22:31:22 +0200Trattue(~Trattue@p200300cfb7002662d870a2e06eb7728b.dip0.t-ipconnect.de)
2021-07-08 22:31:48 +0200acidjnk_new3(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-07-08 22:33:52 +0200Trattue(~Trattue@p200300cfb7002662d870a2e06eb7728b.dip0.t-ipconnect.de) (Client Quit)
2021-07-08 22:44:04 +0200maf654321(~maf654321@user/maf654321)
2021-07-08 22:44:21 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr)
2021-07-08 22:46:35 +0200 <lechner> Hi, is it possible to parse JSON content with optional fields when deriving a generic instance of FromJSON as described here https://www.schoolofhaskell.com/school/starting-with-haskell/libraries-and-frameworks/text-manipul…
2021-07-08 22:49:05 +0200maf654321(~maf654321@user/maf654321) (Ping timeout: 255 seconds)
2021-07-08 22:53:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 255 seconds)
2021-07-08 22:55:13 +0200maf654321(~maf654321@user/maf654321)
2021-07-08 22:56:10 +0200 <janus> lechner: if they are Maybe they will be optional afaik
2021-07-08 22:56:28 +0200 <lechner> janus: thank you!
2021-07-08 22:58:18 +0200NinjaTrappeur(~ninja@user/ninjatrappeur) (Ping timeout: 240 seconds)
2021-07-08 22:58:45 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-07-08 22:59:26 +0200ukari(~ukari@user/ukari)
2021-07-08 22:59:35 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-07-08 23:01:30 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net)
2021-07-08 23:02:44 +0200Atum_(~IRC@user/atum/x-2392232) (Read error: Connection reset by peer)
2021-07-08 23:04:30 +0200sm[m](~sm@plaintextaccounting/sm)
2021-07-08 23:04:53 +0200sm[m](~sm@plaintextaccounting/sm) (Client Quit)
2021-07-08 23:05:10 +0200kayprish(~kayprish@46.240.143.86)
2021-07-08 23:05:21 +0200dunj3(~dunj3@2001:16b8:3066:7300:d4d1:5d56:be5f:cf84) (Remote host closed the connection)
2021-07-08 23:05:54 +0200yauhsien(~yauhsien@61-231-39-135.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-07-08 23:07:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039) (Remote host closed the connection)
2021-07-08 23:07:20 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-07-08 23:10:11 +0200jneira_(~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 252 seconds)
2021-07-08 23:11:37 +0200dminuoso(~dminuoso@static.88-198-218-68.clients.your-server.de) (Changing host)
2021-07-08 23:11:37 +0200dminuoso(~dminuoso@user/dminuoso)
2021-07-08 23:12:09 +0200rostero(uid236576@id-236576.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 23:13:08 +0200viluon(uid453725@id-453725.brockwell.irccloud.com) (Quit: Connection closed for inactivity)
2021-07-08 23:15:26 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds)
2021-07-08 23:15:38 +0200Megant_(megant@user/megant) (Ping timeout: 258 seconds)
2021-07-08 23:18:20 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-07-08 23:19:26 +0200isekaijin(~pyon@user/pyon)
2021-07-08 23:21:26 +0200jespada(~jespada@90.254.247.46)
2021-07-08 23:22:20 +0200NinjaTrappeur(~ninja@user/ninjatrappeur)
2021-07-08 23:23:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:44e3:e9f0:ea4d:f039)
2021-07-08 23:24:27 +0200son0p(~ff@181.136.122.143)
2021-07-08 23:27:21 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398)
2021-07-08 23:29:55 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-07-08 23:30:11 +0200kayprish(~kayprish@46.240.143.86) (Remote host closed the connection)
2021-07-08 23:32:11 +0200ptr_frac7al(~longlong@user/ptr-frac7al/x-0038398) (Ping timeout: 252 seconds)
2021-07-08 23:33:24 +0200Megant(megant@user/megant)
2021-07-08 23:36:05 +0200warnz(~warnz@2600:1700:77c0:5610:edd9:472d:4b89:9ab8) (Remote host closed the connection)
2021-07-08 23:36:47 +0200argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Ping timeout: 255 seconds)
2021-07-08 23:37:30 +0200derelict(~derelict@user/derelict)
2021-07-08 23:40:08 +0200trattue(~trattue@152.70.182.158)
2021-07-08 23:45:09 +0200stefan-_(~cri@42dots.de) (Ping timeout: 258 seconds)
2021-07-08 23:46:15 +0200veverak(~veverak@ip-89-102-98-161.net.upcbroadband.cz) (Read error: Connection reset by peer)
2021-07-08 23:47:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection)
2021-07-08 23:47:11 +0200cuz(~user@38.140.58.234) (Ping timeout: 246 seconds)
2021-07-08 23:47:44 +0200Vajb(~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi)
2021-07-08 23:49:46 +0200stefan-_(~cri@42dots.de)
2021-07-08 23:51:05 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-07-08 23:55:59 +0200maf654321maf
2021-07-08 23:56:11 +0200mafmaf654321`
2021-07-08 23:56:13 +0200maf654321`maf654321
2021-07-08 23:57:29 +0200acidjnk(~acidjnk@p200300d0c72b956384793fd2325b5113.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2021-07-08 23:57:55 +0200maf654321(~maf654321@user/maf654321) (Quit: Textual IRC Client: www.textualapp.com)