Home freenode/#haskell: Logs Calendar

Logs on 2021-03-27 (freenode/#haskell)

00:01:30 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Quit: Quit)
00:04:10 × Yumasi quits (~guillaume@2a01:e0a:5cb:4430:8725:827a:4e58:6cfc) (Ping timeout: 258 seconds)
00:05:44 <dgpratt> In e.g. .NET Core there is a configuration pattern that ostensibly makes it easy to configure an application from some combination of JSON config files, environment variables, command line arguments, etc. I don't necessarily need or want all of that (esp. the config files) for Haskell, but what sorts of patterns do Haskellers use to configure their programs?
00:05:44 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
00:09:20 <monochrom> I don't use any systematic system. I just use "options" for command line arguments (more people use optparse-applicative), System.Environment.lookupEnv for environment variables.
00:09:46 hackage qualified-imports-plugin 0.0.1 - GHC plugin to automatically insert qualified imports https://hackage.haskell.org/package/qualified-imports-plugin-0.0.1 (utdemir)
00:10:11 thritycool joins (47a6379f@pool-71-166-55-159.bltmmd.fios.verizon.net)
00:11:23 <curiousgay> can anyone please recommend FRP library for GUI?
00:12:26 <L29Ah> curiousgay: whatever depending on gi-gtk
00:12:45 <monochrom> Having multiple config sources does not cause any headache because since a long time ago people have recongized that configs form a monoid under one of the two priority rules.
00:13:17 <monochrom> or at least a semigroup if you don't have defaults.
00:14:21 <dgpratt> thanks monochrom -- any particular reason you eschew optparse-applicative?
00:14:33 <monochrom> too many features
00:14:40 <dgpratt> ah
00:14:47 <monochrom> options has a much smaller API
00:15:09 <DigitalKiwi> great sales pitch
00:15:17 <monochrom> I used to use optparse-applicative when it was slightly smaller.
00:15:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
00:16:51 <DigitalKiwi> https://github.com/obsidiansystems/obelisk curiousgay have you seen?
00:17:19 <L29Ah> optparse-generic ♥
00:17:38 <dgpratt> speaking of the monoid thing, I seem to recall seeing some scheme where one could combine a bunch of possibly "partial" configurations with a default configuration, which would then get combined into a...uh...not partial configuration
00:17:38 × thritycool quits (47a6379f@pool-71-166-55-159.bltmmd.fios.verizon.net) (Quit: Connection closed)
00:17:55 <curiousgay> L29Ah: hm, that's either reflex or reactive-banana, thanks
00:18:17 <curiousgay> DigitalKiwi: yes, but I closed that page after seeing that it requires nix package manager
00:18:28 <dgpratt> like the partial configurations was a bunch of Maybe values or something, but the resulting computed configuration was unwrapped values...if that makes sense
00:18:30 × Axman6 quits (~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection)
00:18:46 Axman6 joins (~Axman6@pdpc/supporter/student/Axman6)
00:18:55 <DigitalKiwi> curiousgay: that's the best part
00:19:55 <curiousgay> DigitalKiwi: why? it could simply be placed in hackage
00:20:24 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
00:20:26 <DigitalKiwi> but nix isn't a haskell program how could it be on hackage
00:20:54 <monochrom> "challenge accepted" >:D
00:21:15 <monochrom> afterall, pandoc and xmonad are already on hackage
00:21:16 <curiousgay> I'm talking about obelisk on hackage, not nix
00:22:01 <curiousgay> also obelisk readme says it's for web and mobile apps, that's not what I want
00:23:01 <monochrom> But it has a very substantial, used-in-anger FRP part.
00:23:38 <c_wraith> Isn't the FRP part basically reflex?
00:23:44 <monochrom> Or maybe it has one as a dependency, I don't know, but it is a very good starting point.
00:24:08 <monochrom> Oh, reflex, yeah. So, problem solved?
00:24:26 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Ping timeout: 240 seconds)
00:24:30 <curiousgay> yes, I'll pick between reflex and reactive-banana
00:24:33 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
00:24:58 conal joins (~conal@64.71.133.70)
00:26:38 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
00:26:46 <DigitalKiwi> https://dpaste.org/Q55R
00:27:24 <curiousgay> FRP appears to be a form of dataflow programming :)
00:27:34 Tario joins (~Tario@201.192.165.173)
00:27:42 Nobita joins (ca0e7816@202.14.120.22)
00:28:37 <curiousgay> I start hating stack, it's impossible to install gpipe, reflex and reactive-banana, I need to switch to cabal
00:28:39 <DigitalKiwi> monochrom: lol https://hackage.haskell.org/package/hnix
00:29:24 × conal quits (~conal@64.71.133.70) (Ping timeout: 252 seconds)
00:29:33 × Nobita quits (ca0e7816@202.14.120.22) (Client Quit)
00:31:54 <monochrom> "Is this Murphy's Law?" meme
00:34:02 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds)
00:34:27 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
00:34:38 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds)
00:37:26 <dgpratt> appreciating the apparent simplicity of optparse-generic, thanks L29Ah
00:37:39 ReinH__ is now known as ReinH
00:37:58 × codygman` quits (~user@47.186.207.161) (Ping timeout: 240 seconds)
00:38:46 conal joins (~conal@64.71.133.70)
00:42:11 <DigitalKiwi> nix is great in that it solves a ton of problems i had, even more i didn't know i had, makes things trivial that i didn't even think were possible or know i wanted, and creates a bunch of problems along the way! (and solves those too though lol)
00:42:40 myShoggoth joins (~myShoggot@75.164.81.55)
00:44:03 L29Ah is going to switch to nix or guix after they implement gentoo-like USE flags
00:44:55 magnuscake joins (~magnuscak@87-121-92-61.dyn.launtel.net.au)
00:44:59 <curiousgay> DigitalKiwi: I have enough package managers in void linux, more is less
00:45:11 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
00:45:47 <justsomeguy> /join/bc
00:46:13 <ski> NemesisD : could use `State s' ..
00:47:53 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
00:48:10 <DigitalKiwi> i have one package manager lol
00:49:50 solvr joins (57e3c46d@87.227.196.109)
00:51:01 <curiousgay> me too
00:52:30 <justsomeguy> Only one? How did you do that? I have to interact with, erm, some of these on a semi-regular basis: (npm/yarn, pip/pipx/poetry, dnf/rpm, apt/dpkg, cabal/stack, docker/podman/etc).
00:53:09 × Synthetica quits (uid199651@gateway/web/irccloud.com/x-txjeacswfxemjhpo) (Quit: Connection closed for inactivity)
00:53:29 <justsomeguy> ...and then there's this weird LaTeX build tool that I keep on forgetting about...
00:53:34 <L29Ah> i do everything through portage, including haskell stuff
00:53:51 <L29Ah> cabal is used as a build system but not as a package manager
00:54:20 <justsomeguy> Oh nice. That sounds pleasant. Maybe even sane :^).
00:54:42 <monochrom> Switch to Windows. Then you have 0 package managers. >:)
00:55:01 <DigitalKiwi> monochrom: i think you end up with hundreds of them really
00:55:31 <L29Ah> but but but windows appstore or how was it called, how is it?
00:55:40 <pjb> MSI
00:55:47 <L29Ah> not sure if it can resolve dependencies though even
00:56:07 <DigitalKiwi> https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&query=2nix
00:56:09 elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
00:56:19 <justsomeguy> Ah, they have chocolately, which is some kind of bastard package manager that uses AutoIt gui automation scripts for graphical installers. Then there's nuget, which is a layer on top of it. And the windows store has an actual sane package format.
00:56:35 × mananamenos quits (~mananamen@62.red-88-11-67.dynamicip.rima-tde.net) (Remote host closed the connection)
00:56:50 <justsomeguy> ...and powershell has maybe three package managers of its own.
00:56:57 <drakonis> there's an official one that microsoft wrote a while ago
00:57:07 justsomeguy is somewhat tired of learning new package managers at this point.
00:57:10 <drakonis> winpm
00:57:19 <drakonis> winget, rather.
00:58:42 <curiousgay> justanotheruser: they say cabal is dependency manager, not package manager
01:00:41 justsomeguy pokes through the cabal documentation out of curiosity.
01:01:26 × myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 240 seconds)
01:02:21 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:02:41 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:02:56 jonatan joins (~nate@h77-53-70-163.cust.a3fiber.se)
01:04:09 <DigitalKiwi> justsomeguy: https://github.com/nix-community/poetry2nix https://input-output-hk.github.io/haskell.nix/ https://haskell4nix.readthedocs.io https://github.com/svanderburg/node2nix https://hackage.haskell.org/package/yarn2nix https://nixos.wiki/wiki/Nixpkgs/Building_RPM_DEB_with_nixpkgs https://nixos.wiki/wiki/Podman and lol https://github.com/google/nixery
01:04:46 <justsomeguy> lol, one package manager to rule them all!
01:04:51 × lordyod quits (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net) (Quit: The Lounge - https://thelounge.chat)
01:04:59 × azure1 quits (~azure@103.154.230.130) (Read error: Connection reset by peer)
01:05:16 lordyod joins (~lordyod@c-67-169-144-132.hsd1.ca.comcast.net)
01:05:17 <justsomeguy> (I have been meaning to get into Nix, though. Mainly because of the possiblity of replacing ansible on my machine.)
01:05:31 azure1 joins (~azure@103.154.230.130)
01:05:39 <justsomeguy> But thanks, now I have a bunch of other reasons to check it out, too :^)
01:05:50 <DigitalKiwi> https://mostlyabsurd.com/files/binance
01:06:05 puke joins (~vroom@217.138.252.168)
01:06:19 <DigitalKiwi> https://wearewizards.io/my-experience-of-using-nixops-as-an-ansible-user/
01:06:49 <DigitalKiwi> tl;dr they like nix
01:08:35 <DigitalKiwi> https://dpaste.com/6GB9NLRHF
01:09:03 molehillish joins (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312)
01:10:13 <outerpassage_> i'm very confused by the fact that cabal v2-install has the two options `--installdir` and `--bindir`. what's the difference?
01:11:08 <sclv> bindir is for bins that cabal might itself invoke afaik?
01:12:31 <outerpassage_> doesn't seem to be the case. it also has analagous options `--libdir` and `--datadir` (along with `--bindir`) where it claims it will install libs and read-only data, respectively
01:12:40 <dcoutts_> outerpassage_: bindir is where the binaries actually live. The installdir is where symlinks to the binaries go.
01:12:40 × azure1 quits (~azure@103.154.230.130) (Ping timeout: 252 seconds)
01:13:02 <dcoutts_> For example bindir would be in some per-package dir, but symlinks in ~/bin/ that's on your $PATH
01:13:19 × molehillish quits (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312) (Ping timeout: 250 seconds)
01:13:39 <outerpassage_> i see, thanks!
01:13:45 × acidjnk_new quits (~acidjnk@p200300d0c72b951261ba2baa5d07e392.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
01:13:46 × conal quits (~conal@64.71.133.70) (Ping timeout: 252 seconds)
01:13:55 <outerpassage_> what if a package wants to install things other than executables (i.e. documentation) globally, though? i don't see any option for that
01:15:00 <dcoutts_> sure, that's what all the other standard --blah-dir flags are for, libdir, libexecdir, datadir. All the standard ones.
01:15:11 <dcoutts_> And --prefix
01:17:20 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
01:18:10 conal joins (~conal@192.145.118.89)
01:18:22 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
01:18:36 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
01:19:16 <outerpassage_> hmmm. i find that a bit confusing. it seems like the existence of --installdir suggests that you should build everything in one place, and then copy it over globally if you want to after the fact. but you can only do that for executables, not for everything else
01:19:21 codygman__ joins (~user@47.186.207.161)
01:19:41 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
01:19:56 <outerpassage_> or you can, but you'll have to manually cp it or whatever
01:20:35 codygman__ joins (~user@47.186.207.161)
01:21:19 azure1 joins (~azure@103.154.230.130)
01:21:46 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Ping timeout: 240 seconds)
01:22:04 × evrt quits (~evrt@37.120.211.188) (Remote host closed the connection)
01:22:57 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Ping timeout: 260 seconds)
01:23:11 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
01:23:36 codygman__ joins (~user@47.186.207.161)
01:24:15 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:24:36 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:26:25 × codygman__ quits (~user@47.186.207.161) (Read error: No route to host)
01:26:35 codygman__ joins (~user@47.186.207.161)
01:26:58 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
01:27:36 <dcoutts_> outerpassage_: the purpose of it is to allow schemes where you install the package into some location where it is guaranteed not to overwrite anything else, but still allow symlinks for the binaries to be in some shared location that is on the $PATH.
01:28:01 pfurla joins (~pfurla@mx141.canadialed.com)
01:28:23 <dcoutts_> And it is only executables that want to be on a $PATH.
01:28:35 <dcoutts_> You don't have to use this mechanism. It's totally optional.
01:29:41 <outerpassage_> alright, thanks!
01:30:00 <dcoutts_> For example, cabal-install itself defaults to installing all packages into a store, one package per dir, so no shared bin dir. And then it uses the installdir feature so that you still get symlinks on the $PATHto the binaries you install.
01:32:34 <outerpassage_> right
01:34:14 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:34:35 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:37:57 hds joins (~hds@195.140.213.38)
01:39:03 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
01:39:17 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
01:39:28 codygman__ joins (~user@47.186.207.161)
01:42:45 HarveyPwca joins (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06)
01:45:22 Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de)
01:47:09 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8f7:80aa:e3bc:f79d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:48:41 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
01:49:18 × codygman__ quits (~user@47.186.207.161) (Read error: No route to host)
01:49:22 codygman` joins (~user@47.186.207.161)
01:50:42 × codygman` quits (~user@47.186.207.161) (Read error: No route to host)
01:50:58 codygman__ joins (~user@47.186.207.161)
01:57:03 drbean_ joins (~drbean@TC210-63-209-145.static.apol.com.tw)
01:57:47 elusive joins (~Jeanne-Ka@static-198-54-134-153.cust.tzulo.com)
01:59:22 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 260 seconds)
02:00:43 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8f7:80aa:e3bc:f79d)
02:01:35 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1)
02:02:10 stree joins (~stree@68.36.8.116)
02:02:24 × puke quits (~vroom@217.138.252.168) (Read error: Connection reset by peer)
02:02:49 puke joins (~vroom@217.138.252.168)
02:04:46 hackage input-parsers 0.2.2 - Extension of the parsers library with more capability and efficiency https://hackage.haskell.org/package/input-parsers-0.2.2 (MarioBlazevic)
02:06:15 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
02:07:25 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
02:07:41 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
02:09:05 × Nik05 quits (~Nik05@unaffiliated/nik05) (Quit: ZNC - https://znc.in)
02:10:38 × electricityZZZZ quits (~electrici@135-180-3-82.static.sonic.net) (Ping timeout: 240 seconds)
02:10:46 electricityZZZZ joins (~electrici@135-180-3-82.static.sonic.net)
02:12:17 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:13:33 Nik05 joins (~Nik05@unaffiliated/nik05)
02:14:06 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
02:17:18 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
02:18:31 average joins (uid473595@gateway/web/irccloud.com/x-bfrylaicmxxrzmte)
02:22:38 × pfurla quits (~pfurla@mx141.canadialed.com) (Ping timeout: 240 seconds)
02:22:48 <gnumonic> Is there a typeclass anywhere for monads that you can "take things out of"? (i.e. that have a function :: m a -> a)
02:23:40 <shachaf> Probably not anything meaningful.
02:23:55 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
02:24:05 <shachaf> It's not a very sensible thing to abstract over, I think.
02:24:46 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
02:25:36 <infinisil> gnumonic: There's MonoPointed: https://hackage.haskell.org/package/mono-traversable-1.0.15.1/docs/Data-MonoTraversable.html#t:MonoPointed
02:26:26 <infinisil> gnumonic: Also, Comonad: https://hackage.haskell.org/package/comonad-5.0.8/docs/Control-Comonad.html#v:extract
02:27:43 <shachaf> That former one does not look like a class that's very applicable here.
02:28:10 <shachaf> Nor is Comonad, really. I guess the real question is what you want this sort of class for.
02:28:26 <shachaf> And what instances are you imagining for it?
02:29:03 <infinisil> Well gnumonic hasn't given any context yet, so hard to say if it's applicable
02:29:51 <shachaf> The context is that it should be something applicable to monads.
02:30:12 <shachaf> Also, wait, MonoPointed isn't even going in the right direction.
02:30:29 <gnumonic> Oh I didn't want it for anything in particular, I'm just playing around (somewhat aimlessly) with ways of mixing the store comonad with other things
02:30:38 <shachaf> You'd want a class with a name like "Copointed".
02:30:55 <infinisil> Oh right, nevermind monopointed
02:30:57 <shachaf> (Or, I mean, you probably don't. But that's what the class would be called.)
02:31:11 <shachaf> My suggestion is that abstractions don't exist on their own, they exist to abstract over things.
02:31:42 <shachaf> If you have two or three concrete things that can share a sensible function :: m a -> a, then it might reasonable to have an abstraction.
02:32:01 × azure1 quits (~azure@103.154.230.130) (Read error: Connection reset by peer)
02:32:27 azure1 joins (~azure@103.154.230.130)
02:33:38 × Guest55480 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
02:34:16 hackage hasql-notifications 0.2.0.0 - LISTEN/NOTIFY support for Hasql https://hackage.haskell.org/package/hasql-notifications-0.2.0.0 (diogob)
02:35:06 × waskell quits (~quassel@d66-183-124-203.bchsia.telus.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
02:35:15 <gnumonic> That's fair. I was really just curious, and a class like that would have made the types line up for an experiment that I can't actually think of an application for. Sometimes it's fun to just see what you can stick together while appeasing the compiler. But thanks :)
02:35:39 × ericsagnes quits (~ericsagne@2405:6580:0:5100:3ab0:9401:ddfa:4aa4) (Ping timeout: 250 seconds)
02:35:41 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
02:37:08 <shachaf> No, of course it's a reasonable question, but I think there's no particularly good general answer.
02:37:57 × solvr quits (57e3c46d@87.227.196.109) (Quit: Connection closed)
02:41:44 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
02:43:54 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
02:43:59 benkolera joins (uid285671@gateway/web/irccloud.com/x-xxmlbqheparjayob)
02:44:27 astronavt joins (~astronavt@unaffiliated/astronavt)
02:46:32 solvr joins (57e3c46d@87.227.196.109)
02:46:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
02:47:18 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds)
02:47:52 ericsagnes joins (~ericsagne@2405:6580:0:5100:eee0:b3e1:482f:12f7)
02:48:44 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:48:44 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 252 seconds)
02:49:47 plutoniix joins (~q@node-unw.pool-125-24.dynamic.totinternet.net)
02:50:01 × xff0x quits (~xff0x@2001:1a81:524d:5b00:4876:a583:9de0:62c1) (Ping timeout: 276 seconds)
02:51:16 xff0x joins (~xff0x@2001:1a81:5267:7900:f33d:bbef:8155:bb1d)
02:55:59 curiousgay using GHC 9.0.1
02:56:26 <curiousgay> I want to cry, many packages are impossible to install because they require base to be version less than 4.15
03:01:40 <dmj`> curiousgay: try 8.10.4
03:02:50 <dmj`> curiousgay: you must be patient grasshopper
03:08:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:10:23 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.1)
03:11:28 × elusive quits (~Jeanne-Ka@static-198-54-134-153.cust.tzulo.com) (Ping timeout: 252 seconds)
03:14:33 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
03:17:04 <curiousgay> dmj`: yeah, also it appears even with GHC 8.10.4 reflex is not available to me
03:17:26 <dmj`> curiousgay: should be
03:17:43 <curiousgay> base (>=4.9 && <4.14)
03:18:28 <curiousgay> just why people have such inadequate requirements to dependencies
03:19:04 <dmj`> curiousgay: well then heaven forbid use 8.10.3
03:19:08 <dmj`> nix-shell -p 'haskellPackages.ghcWithPackages(p: with p; [reflex])' --run 'ghc-pkg list reflex'
03:19:14 <dmj`> > reflex-0.8.0.0
03:19:16 <lambdabot> error: Variable not in scope: reflex :: a -> c
03:19:40 <dmj`> no flex zone
03:20:54 <curiousgay> I mean every new release of base 4 is backwards compatible, right?
03:20:58 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
03:21:11 × alx741 quits (~alx741@186.178.109.203) (Ping timeout: 240 seconds)
03:21:16 <dmj`> curiousgay: there's a base-compat library that's meant to help with this sort of thing
03:22:09 <dmj`> curiousgay: I just wouldn't upgrade the compiler until library authors are on board, stackage process will pressure people to upgrade
03:22:28 <dmj`> pressure library authors* to upgrade
03:22:37 <curiousgay> dmj`: I mean that base 4.15 is compatible with base 4.9, right?
03:23:07 <curiousgay> otherwise I don't understand the versioning
03:24:14 <curiousgay> minor version number increase is supposed to mean that API is stable
03:24:19 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
03:24:21 <ephemient> curiousgay: most Haskell packages follow PVP not semver
03:25:09 <Clint> curiousgay: just file bugs and accept this as a phenomenon that isn't getting fixed anytime soon
03:25:14 <ephemient> if you want to think of it like semver, treat "4.9" as the major version, not "4"
03:25:56 <curiousgay> ephemient: then many packages use base "<5" in dependencies by mistake?
03:26:38 <int-e> curiousgay: tbf, base is too big for meaningful semantic versioning
03:27:02 <ephemient> not everybody agrees on whether to use narrow bounds or wide bounds
03:27:09 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
03:27:21 <int-e> every release there's a breaking change in some part of it... but for most changes, almost all code will be fine.
03:27:27 <ephemient> in practice, base and GHC versions are tied
03:27:28 × solidus-river quits (~mike@174.127.249.180) (Remote host closed the connection)
03:27:34 <int-e> also base is tied to the compiler anyway
03:27:45 aarvar joins (~foewfoiew@2601:602:a080:fa0:e589:d5cd:80fb:258d)
03:27:56 <ephemient> if you're coming from GHC 8.0/base 4.9, MonadFail probably broke the most code
03:28:13 <int-e> so taking those two together... the lazy approach where you make a loose upper bound (base <5) and revise it when your code does break seems quite reasonable
03:28:14 <dmj`> I don't think Foldable Traversable was backwards compatible (i.e. burning bridges)
03:28:42 <int-e> it wasn't
03:29:08 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds)
03:29:58 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Ping timeout: 265 seconds)
03:30:09 <dmj`> Oh
03:30:20 <dmj`> I meant to say incompatible, sorry
03:30:44 <int-e> sure?
03:30:56 <dmj`> Nah, I had it right the first time.
03:30:59 <dmj`> sorry again
03:31:01 <int-e> what you wrote made sense to me... okay :)
03:31:10 <int-e> negations are hard
03:31:10 <dmj`> wine + IRC
03:31:47 <dmj`> truth
03:33:03 × solvr quits (57e3c46d@87.227.196.109) (Quit: Connection closed)
03:33:05 <curiousgay> https://pvp.haskell.org/ it's similar to semver, but I don't understand the need for number A in A.B.C
03:33:32 <int-e> curiousgay: optics
03:33:48 <int-e> you push the major version number all the time
03:34:15 <int-e> but sometimes you reach a milestone in development... and want to mark that visibly
03:34:29 <curiousgay> like EPOCH?
03:34:50 <int-e> epoch, sure, why not
03:34:58 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:35:46 × electricityZZZZ quits (~electrici@135-180-3-82.static.sonic.net) (Quit: Leaving)
03:35:51 <int-e> at some point, the version number loses all its meaning
03:36:01 <int-e> Firefox is at 78 now, or is that 87 ;)
03:36:18 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
03:37:28 <curiousgay> now as I see it: GHC provides many libraries which break compatibility, but because those libraries are part of it they can't be built independently with specific version, which means every project must adjust to every GHC release
03:39:04 <int-e> yes, so after every release there's a tidal wave moving through the ecosystem as packages are getting updated in dependency order...
03:39:06 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
03:40:23 <curiousgay> that's insane
03:40:33 <curiousgay> now I understand why GHC doesn't have competitors
03:41:58 × theDon quits (~td@muedsl-82-207-238-105.citykom.de) (Ping timeout: 240 seconds)
03:42:59 <int-e> <joke>Well it is a Microsoft product... it took a standard (Haskell98, Haskell2010), embraced it, and extended it until no competitor could catch up anymore.</joke>
03:43:03 <curiousgay> and I understand the need of stack, guh
03:43:13 raistlin joins (~jmdurr@ool-182e0115.dyn.optonline.net)
03:43:26 × vpidurr quits (~jmdurr@ool-182e0115.dyn.optonline.net) (Ping timeout: 240 seconds)
03:45:03 <curiousgay> int-e: extended standard is not the problem I see here, the problem I see is the standard, GHC, breaks at every release, it's unstable, catching up to unstable standard is much more work than catching up to constantly extending standard
03:45:59 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
03:47:40 × psygate quits (~psygate@unaffiliated/psygate) (Quit: Leaving)
03:48:25 <curiousgay> if those libraries were not part of GHC, I guess cabal could manage that by building different versions of libraries
03:49:47 × deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 265 seconds)
03:50:27 nbloomf_ joins (~nbloomf@2600:1700:ad14:3020:c907:a7d6:d23a:e6d6)
03:50:29 <curiousgay> because of this hell I'm unable to build both reflex and reactive-banana, I need FRP GUI library
03:50:34 <dmj`> curiousgay: GHC could easily have competitors on the backend, probably not the front end w/o going to dependent types.
03:51:27 <curiousgay> do you know any kind of FRP GUI that builds with GHC 8.10.4?
03:51:37 <int-e> curiousgay: there's a lot of moving parts between ghc, the rts, and the base libraries. template-haskell is another frequent source of friction, again explained because it's so close to the compiler
03:53:01 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8f7:80aa:e3bc:f79d) (Ping timeout: 258 seconds)
03:53:12 <curiousgay> int-e: internal moving parts that should not be dependencies of any packages are fine, but if they are externals that's a big problem
03:53:16 <int-e> And somehow, ghc keeps bringing enough improvements to the table that people keep updating to the latest or second-latest version.
03:55:02 <dmj`> curiousgay: GHC is a very old project, it predates LLVM, and operated under a different set of assumptions than we have today.
03:55:22 <dmj`> curiousgay: did you try netwire?
03:55:39 <int-e> curiousgay: you simply can't take base-4.12 and compile it with ghc-9.0.1 because its implementation has changed a lot even if the API hasn't. That's one of the reason why the two are bundled.
03:55:56 <ephemient> base also includes API improvements that can't have been done without breakages
03:56:14 <ephemient> I mean, I suppose it's arguable whether those should have been carried out, but I think the community mostly agrees
03:56:26 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:56:38 FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
03:56:38 finn_elija is now known as Guest59300
03:56:38 FinnElija is now known as finn_elija
03:56:40 <int-e> curiousgay: there's agreement that base is too large and that some parts should be split off so that they can be updated independently. but progress on this front is small to non-existant. It's hard to disentangle the parts, and it's a thankless job to try.
03:57:13 <curiousgay> dmj`: does netwire have a sibling library for GUI that will build?
03:58:26 <dmj`> curiousgay: probably, but take a look at your life, do you really need a bleeding edge GHC right now, iPhone 10 is almost as good as iPhone 11
03:59:02 <dmj`> curiousgay: you can also do the dirty work of the library maintainer and upgrade the libraries you want to use to be compatible with 8.10.4
03:59:18 <dmj`> you might end up upgrading a lot of libraries though .. esp. for dep. heavy libraries
03:59:23 <curiousgay> int-e: ephemient: those breaking improvements make many projects rot quickly when maintainers loose their time or interest to keep up, that's not fair
03:59:43 <sclv> fair?
03:59:44 <ephemient> if it's a matter of just bumping bounds and they're in stackage, somebody will probably get around to it
04:00:21 × Guest59300 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds)
04:00:22 <curiousgay> I stopped using stack because there are less buildable packages than in cabal
04:00:49 <sclv> base has a 3 release policy that says it makes its changes in a very incremental way so that code can always be written that is backwards compatible with the last three releases
04:02:02 <ephemient> there are fewer packages total, but they all build, whereas that is not necessarily the case with cabal
04:02:15 <ephemient> stack has its upsides and downsides
04:05:54 molehillish joins (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312)
04:06:06 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
04:07:42 <DigitalKiwi> kiwi@mvp-nixos ~ []$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [GPipe reflex reactive-banana])" -I nixpkgs-overlays=/home/kiwi/.config/nixpkgs/overlays --run "ghc-pkg list"|grep -E 'GPipe|reflex|reactive-banana'
04:07:42 <DigitalKiwi> GPipe-2.2.5
04:07:42 <DigitalKiwi> reactive-banana-1.2.1.0
04:07:43 <DigitalKiwi> reflex-0.8.0.0
04:07:46 <DigitalKiwi> tada
04:08:21 <curiousgay> dmj`: what I need becomes confusing because if different packages are exclusively buildable with different versions of GHC that means I need to have many versions of GHC at once and be extremely careful while dealing with all of that
04:08:42 <dmj`> curiousgay: just use an old ghc, why do you need a bleeding edge one. You'll end up just writing a bunch of C anyways if you're building a game, haskell heap + GC is death for frame rate
04:09:13 <DigitalKiwi> [nix-shell:~]$ ghci
04:09:14 <DigitalKiwi> GHCi, version 8.10.4
04:09:25 <dmj`> curiousgay: I think you're over thinking it
04:09:35 <DigitalKiwi> do i win a prize
04:09:39 <curiousgay> dmj`: performance is not important for minimal 2D game without animations
04:10:11 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
04:10:16 <dmj`> curiousgay: use netwire + SDL2
04:10:21 <DigitalKiwi> for 1 bitcoin i will reveal the contents of ~/.config/nixpkgs/overlays
04:10:30 <dmj`> @package SDL2
04:10:30 <lambdabot> https://hackage.haskell.org/package/SDL2
04:10:35 <dmj`> @package netwire
04:10:35 <lambdabot> https://hackage.haskell.org/package/netwire
04:10:37 × molehillish quits (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312) (Ping timeout: 276 seconds)
04:11:48 <dmj`> curiousgay: I just compiled an asteroids game that uses these 2 and it worked ...
04:11:56 <dmj`> it was 2D
04:12:36 <curiousgay> dmj`: eh, isn't a separate library required for making SDL reactive that will depend on both netwire and SDL?
04:13:00 <DigitalKiwi> better hurry though market's bearish the price will be 2 bitcoin soon
04:14:04 <dmj`> curiousgay: you don't need FRP, ever. Most games you play don't use it. But to answer your question, no, a separate library isn't required.
04:15:29 <dmj`> curiousgay: netwire doesn't use unsafePerformIO either
04:15:30 <curiousgay> my goal is learning
04:15:49 <curiousgay> so I need to learn FRP
04:16:45 <desophos> i have a function "chunk" that splits a list into multiple equal-length lists that uses splitAt. i'm refactoring my program from String to ByteString, which has its own splitAt implementation. what's the best way to reuse my chunk function for ByteString? take the splitting fn as an argument? write a "Chunkable" typeclass with instances for list and ByteString? i'm open to any suggestions, thanks!
04:16:52 <desophos> the function in question: https://paste.tomsmeding.com/rK72njri
04:21:00 <dmj`> curiousgay: this project uses netwire, opengl, sdl2, linear and compiled with 8.10.4 for me, https://github.com/ehofreiter/relativistic-asteroids/blob/master/package.yaml
04:22:29 × howdoi quits (uid224@gateway/web/irccloud.com/x-ppzodhfedmzajmuw) (Quit: Connection closed for inactivity)
04:22:41 × ph88 quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
04:23:32 stree joins (~stree@68.36.8.116)
04:25:27 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
04:25:47 manjaro joins (~manjaro@cpe-172-90-196-184.socal.res.rr.com)
04:27:00 × manjaro quits (~manjaro@cpe-172-90-196-184.socal.res.rr.com) (Client Quit)
04:28:48 <dmj`> desophos: probably can't reuse it, could try a typeclass yea
04:29:11 manjaro joins (~manjaro@cpe-172-90-196-184.socal.res.rr.com)
04:29:46 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Ping timeout: 240 seconds)
04:29:47 <dmj`> @package split
04:29:47 <lambdabot> https://hackage.haskell.org/package/split
04:29:57 <dmj`> there's this, can't remember if it works on ByteString though
04:30:10 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
04:30:48 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
04:31:24 <desophos> hmm, looks like it only works on lists
04:34:01 jpn joins (9fc4758b@159-196-117-139.9fc475.syd.nbn.aussiebb.net)
04:35:11 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Ping timeout: 240 seconds)
04:36:36 × jpn quits (9fc4758b@159-196-117-139.9fc475.syd.nbn.aussiebb.net) (Client Quit)
04:38:18 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
04:41:30 × manjaro quits (~manjaro@cpe-172-90-196-184.socal.res.rr.com) (Ping timeout: 265 seconds)
04:42:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:45:04 <outerpassage_> is there any way to avoid cabal recompiling everything during a `v2-install` after already having built the package with `v2-build`?
04:47:07 toorevitimirp joins (~tooreviti@117.182.181.200)
04:48:11 × average quits (uid473595@gateway/web/irccloud.com/x-bfrylaicmxxrzmte) (Quit: Connection closed for inactivity)
04:51:50 × carlomagno quits (~cararell@148.87.23.10) (Remote host closed the connection)
04:52:18 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
04:56:06 bss03 joins (~bss@ip70-178-92-189.ks.ks.cox.net)
04:58:25 <desophos> ugh, why doesn't ByteString implement mapM...
04:59:11 <bss03> https://hackage.haskell.org/package/mono-traversable-1.0.15.1/docs/Data-MonoTraversable.html#v:omapM instead
05:00:23 <desophos> ah, thank you!
05:01:39 <bss03> desophos: It's because ByteString can only hold Word8 values, so if the function you are mapping is type `Word8 -> m Integer` it can't put the (Integer) results into the `m ByteString` result.
05:02:59 <desophos> but it already defines `map :: (Word8 -> Word8) -> ByteString -> ByteString`, so why not `mapM :: (Word8 -> m Word8) -> ByteString -> m ByteString`?
05:03:38 <bss03> Ah, yeah, well, it could do that. :/
05:04:27 <bss03> Probably didn't want to "steal" that name from Traversable.
05:05:25 <bss03> `map` from ByteString might predate Traversable? Certianly `map` from Prelude used to only work on lists.
05:07:23 <desophos> hmm, well i guess it makes more sense to have generic MonoTraversable classes instead of writing specific functions for each monomorphic container type
05:07:41 <desophos> either way, mono-traversable is what i was looking for, thanks!
05:07:56 <bss03> YW, NP
05:10:11 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
05:10:59 hidedagger joins (~nate@unaffiliated/hidedagger)
05:11:44 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
05:12:53 <bss03> I've got a personal project that's in Vue + TS, I'd like to convert it over to something using GHCJS. Any hints / tips? Project: https://gitlab.com/bss03/vue-webpack-ts-lambda/-/tree/master/src
05:16:46 hackage dhall-lsp-server 1.0.14 - Language Server Protocol (LSP) server for Dhall https://hackage.haskell.org/package/dhall-lsp-server-1.0.14 (GabrielGonzalez)
05:17:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
05:19:16 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
05:21:42 × lateef quits (~lateef@171.121.237.35.bc.googleusercontent.com) (Quit: lateef)
05:21:42 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
05:22:18 Tario joins (~Tario@201.192.165.173)
05:24:09 × kiweun quits (~kiweun@2607:fea8:2a62:9600:5db6:fce7:f7bb:58c2) (Remote host closed the connection)
05:24:46 hackage dhall-json 1.7.6 - Convert between Dhall and JSON or YAML https://hackage.haskell.org/package/dhall-json-1.7.6 (GabrielGonzalez)
05:25:10 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
05:25:46 hackage dhall-yaml 1.2.6 - Convert between Dhall and YAML https://hackage.haskell.org/package/dhall-yaml-1.2.6 (GabrielGonzalez)
05:27:46 hackage dhall-docs 1.0.5 - Generate HTML docs from a dhall package https://hackage.haskell.org/package/dhall-docs-1.0.5 (GabrielGonzalez)
05:28:46 hackage dhall 1.38.1 - A configuration language guaranteed to terminate https://hackage.haskell.org/package/dhall-1.38.1 (GabrielGonzalez)
05:29:38 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
05:31:10 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds)
05:34:47 irc_user joins (uid423822@gateway/web/irccloud.com/x-sjzuqoxkghghfafu)
05:38:48 kini joins (~kini@unaffiliated/kini)
05:39:46 hackage openai-servant 0.2.0.0 - Unofficial OpenAI servant types https://hackage.haskell.org/package/openai-servant-0.2.0.0 (AlexanderThiemann)
05:40:46 hackage openai-hs 0.2.0.0 - Unofficial OpenAI client https://hackage.haskell.org/package/openai-hs-0.2.0.0 (AlexanderThiemann)
05:43:19 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
05:43:34 v01d4lph4 joins (~v01d4lph4@106.212.133.35)
05:46:25 × magnuscake quits (~magnuscak@87-121-92-61.dyn.launtel.net.au) (Remote host closed the connection)
05:48:24 × _xor quits (~xor@74.215.46.133) (Quit: WeeChat 3.1)
05:48:59 aryakiran joins (31cf82c6@49.207.130.198)
05:49:02 <aryakiran> hi
05:49:10 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:49:18 <aryakiran> i installed xmobar xmonad-contrib xmobar on void
05:49:34 <aryakiran> when i do startx it starts the default xmonad config
05:49:37 _xor joins (~xor@74.215.46.133)
05:49:38 <aryakiran> not my config
05:50:18 <aryakiran> my config is in both .xmonad & .config/xmonad
05:52:28 <bss03> *shrug* I don't know void, but my Debian loads it out of ~/.xmonad
05:54:51 <aryakiran> i also get this error when i do xmonad --recompile
05:55:18 <aryakiran> couldmt find module 'XMonad'
05:55:27 × hds quits (~hds@195.140.213.38) (Remote host closed the connection)
05:59:45 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
06:01:00 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
06:01:14 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 252 seconds)
06:01:16 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
06:04:28 <bss03> Hmm. You might have an environment files hanging around that doesn't expose the XMonad module by default?
06:04:55 × Wuzzy quits (~Wuzzy@p57a2ecf2.dip0.t-ipconnect.de) (Remote host closed the connection)
06:05:39 <bss03> I dislike how those work, and I'm not sure if they'd even affect an `xmonad --recompile` but they fsck with my `ghci` environment sometimes and I've had to delete them.
06:07:02 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-eded-286a-fe45-12eb.res6.spectrum.com)
06:07:02 × _Alleria quits (~AllahuAkb@2603-7000-3040-0000-d83c-5948-c192-a22e.res6.spectrum.com) (Read error: Connection reset by peer)
06:07:20 × Narinas quits (~Narinas@187-178-93-112.dynamic.axtel.net) (Ping timeout: 246 seconds)
06:09:12 × waleee-cl quits (uid373333@gateway/web/irccloud.com/x-cywskmhzzerhrnmx) (Quit: Connection closed for inactivity)
06:10:16 × plutoniix quits (~q@node-unw.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
06:11:20 × echoreply quits (~echoreply@unaffiliated/echoreply) (Quit: WeeChat 1.9.1)
06:11:52 echoreply joins (~echoreply@unaffiliated/echoreply)
06:13:20 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
06:13:50 <jonathanx> Is there a function with signature ((a -> Maybe a) -> [a] -> Maybe [a]) which returns Just [a] if a single element was updated, and Nothing otherwise?
06:14:10 <jonathanx> I can ofc throw it together myself, but I'm curious about if there's any existing
06:14:11 <jonathanx> :)
06:17:58 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 240 seconds)
06:18:23 × mrchampion quits (~mrchampio@38.18.109.23) (Remote host closed the connection)
06:19:20 fox[m]1 joins (foxforestf@gateway/shell/matrix.org/x-gzhakriuullmsali)
06:21:44 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
06:22:00 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
06:22:10 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
06:22:25 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
06:24:11 × aryakiran quits (31cf82c6@49.207.130.198) (Quit: Connection closed)
06:24:15 Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net)
06:24:22 × nbloomf_ quits (~nbloomf@2600:1700:ad14:3020:c907:a7d6:d23a:e6d6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:25:09 <bss03> mapMaybe ?
06:25:33 × Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
06:26:09 kiweun joins (~kiweun@2607:fea8:2a62:9600:30ac:878a:cf:dffd)
06:26:38 Chai-T-Rex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
06:31:18 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
06:31:40 × kiweun quits (~kiweun@2607:fea8:2a62:9600:30ac:878a:cf:dffd) (Ping timeout: 276 seconds)
06:35:14 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:39:46 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds)
06:41:13 <gnumonic> Does this seem familiar to anyone? "type Something k t a b = (Control.Comonad.Store.Store (Map.Map k (a -> t a)) (t b))"? Or maybe: "Something k t a = (Store (Map.Map k (a -> t a)) (t a))"?
06:41:36 proteus-guy joins (~proteusgu@cm-58-10-208-13.revip7.asianet.co.th)
06:43:12 stree joins (~stree@68.36.8.116)
06:44:11 <bss03> Not to me. :(
06:49:10 <gnumonic> No is ok, I just came up with it and wanted to see if anyone else had first before I try to make something with it :p
06:50:35 tomboy64 joins (~tomboy64@unaffiliated/tomboy64)
06:50:37 × kupi quits (uid212005@gateway/web/irccloud.com/x-liltwjwdbyukjqkf) (Quit: Connection closed for inactivity)
06:52:04 <outerpassage_> https://cabal.readthedocs.io/en/latest/setup-commands.html#creating-a-binary-package
06:52:25 <outerpassage_> is this still the recommended way to do this? wondering if it's necessary to go through the low-level Setup.hs interface
06:53:00 raym joins (~ray@115.187.32.14)
06:56:18 × v01d4lph4 quits (~v01d4lph4@106.212.133.35) (Remote host closed the connection)
06:56:38 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
07:04:10 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
07:04:25 × desophos quits (~desophos@2601:249:1680:a570:41ae:9414:653c:8c31) (Quit: Leaving)
07:12:06 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:13:33 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:14:58 × drbean_ quits (~drbean@TC210-63-209-145.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
07:15:37 drbean_ joins (~drbean@TC210-63-209-153.static.apol.com.tw)
07:19:03 <bss03> Are you packaging for a specific distribution, for installation as a global package.
07:21:06 <bss03> If so, I think per-distribution docs might be better. E.g. Debian has specific helpers for packaging haskell packages.
07:24:26 <bss03> If not, I do think that's probably up-to-date. There's not v2-* cabal-install commands for some of those Setup.hs modes.
07:24:41 idhugo_ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
07:26:30 saki__ joins (~saki@2a02:a03f:4882:cc00:1b73:ea1f:7a9b:17d6)
07:27:20 waleee-cl joins (uid373333@gateway/web/irccloud.com/x-qsyvwqmdsnwpfrno)
07:28:21 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
07:29:05 coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
07:30:02 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:32:25 <DigitalKiwi> https://github.com/nh2/static-haskell-nix may be an option
07:36:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:37:56 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:38:45 plutoniix joins (~q@ppp-27-55-84-227.revip3.asianet.co.th)
07:39:39 zeromus1 joins (~zeromus@217.146.82.202)
07:40:56 × saki__ quits (~saki@2a02:a03f:4882:cc00:1b73:ea1f:7a9b:17d6) (Quit: Konversation terminated!)
07:44:19 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
07:45:21 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
07:46:03 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
07:46:11 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
07:47:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
07:48:16 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 240 seconds)
07:48:32 × xsperry quits (~as@unaffiliated/xsperry) (Read error: Connection reset by peer)
07:50:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:53:04 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Client Quit)
07:53:25 jakio641 joins (cab67555@202.182.117.85)
07:56:02 average joins (uid473595@gateway/web/irccloud.com/x-ylpgkoygduwnhrcd)
07:56:12 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
08:04:07 Neuromancer joins (~Neuromanc@unaffiliated/neuromancer)
08:07:04 × jakio641 quits (cab67555@202.182.117.85) (Quit: Connection closed)
08:07:24 molehillish joins (~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8)
08:11:46 × molehillish quits (~molehilli@2600:8800:8d06:1800:e0d0:506b:db48:8ec8) (Ping timeout: 258 seconds)
08:12:40 LKoen joins (~LKoen@191.254.88.92.rev.sfr.net)
08:22:33 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:26:26 × datajerk quits (~datajerk@sense.net) (Ping timeout: 252 seconds)
08:27:32 <outerpassage_> thanks, yeah it's for a specific distribution (alpine)
08:28:17 <outerpassage_> the alpine docs recommend `cabal install` with `--enable-relocatable`, which afaict isn't actually supported
08:28:22 <outerpassage_> https://github.com/haskell/cabal/issues/462
08:29:08 <outerpassage_> seems to be working well with Setup.hs anyway
08:30:08 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:30:28 datajerk joins (~datajerk@sense.net)
08:34:24 lateef joins (~lateef@2603-6080-6703-48f7-99a5-8367-daa2-03dd.res6.spectrum.com)
08:34:24 × RusAlex quits (~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer)
08:35:02 xiinotulp joins (~q@ppp-223-24-171-44.revip6.asianet.co.th)
08:35:15 RusAlex joins (~Chel@unaffiliated/rusalex)
08:35:26 × plutoniix quits (~q@ppp-27-55-84-227.revip3.asianet.co.th) (Ping timeout: 265 seconds)
08:41:41 × idhugo_ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
08:43:55 × bss03 quits (~bss@ip70-178-92-189.ks.ks.cox.net) ()
08:45:19 bitmagie joins (~Thunderbi@200116b80626b500b8109f658b1836b5.dip.versatel-1u1.de)
08:46:35 idhugo_ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
08:46:38 × bitmagie quits (~Thunderbi@200116b80626b500b8109f658b1836b5.dip.versatel-1u1.de) (Client Quit)
08:47:04 × drbean_ quits (~drbean@TC210-63-209-153.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
08:47:24 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
08:51:25 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
08:52:10 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:52:50 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
08:54:13 solvr joins (57e3c46d@87.227.196.109)
08:55:09 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
08:55:28 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:55:41 × idhugo_ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds)
08:59:09 wonko7 joins (~wonko7@62.115.229.50)
08:59:46 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
09:03:05 rajivr joins (uid269651@gateway/web/irccloud.com/x-ntrjiqavhvendslg)
09:04:34 stree joins (~stree@68.36.8.116)
09:04:48 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
09:10:58 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
09:15:08 L1Cafe joins (~L1Cafe@kydara.com)
09:19:14 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:23:13 × noexcept quits (~noexcept@2a03:b0c0:3:d0::33:9001) (Read error: Connection reset by peer)
09:24:10 noexcept joins (~noexcept@2a03:b0c0:3:d0::33:9001)
09:24:28 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
09:29:30 fendor joins (~fendor@91.141.1.158.wireless.dyn.drei.com)
09:30:58 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
09:33:41 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
09:40:47 graf_blutwurst joins (~user@2001:171b:226e:adc0:8507:60c2:4c0f:8c17)
09:44:39 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
09:49:29 ubert1 joins (~Thunderbi@p200300ecdf25d92dca5b76fffe29f233.dip0.t-ipconnect.de)
09:49:45 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
09:50:01 poscat joins (~poscat@2408:8207:482f:e9a0::1)
09:54:42 Guest55480 joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
09:59:29 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:00:26 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
10:01:13 acidjnk_new joins (~acidjnk@p200300d0c72b9512d8aaf3880c64deb7.dip0.t-ipconnect.de)
10:03:06 × OscarZ quits (~oscarz@95.175.104.239) (Quit: Leaving)
10:03:28 × xiinotulp quits (~q@ppp-223-24-171-44.revip6.asianet.co.th) (Quit: Leaving)
10:04:16 hackage scroll-list 1.0.0.1 - This package provides functions for relocate an item within a list. https://hackage.haskell.org/package/scroll-list-1.0.0.1 (fesanmar)
10:05:20 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
10:05:39 × average quits (uid473595@gateway/web/irccloud.com/x-ylpgkoygduwnhrcd) (Quit: Connection closed for inactivity)
10:09:23 supercoven joins (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi)
10:10:53 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
10:13:18 frozenErebus joins (~frozenEre@37.231.244.249)
10:14:04 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
10:15:29 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 246 seconds)
10:16:01 molehillish joins (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312)
10:16:18 × toorevitimirp quits (~tooreviti@117.182.181.200) (Ping timeout: 240 seconds)
10:16:46 hackage postgresql-pure 0.2.3.0 - pure Haskell PostgreSQL driver https://hackage.haskell.org/package/postgresql-pure-0.2.3.0 (kakkun61)
10:16:59 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
10:20:30 Franciman joins (~francesco@host-79-53-62-46.retail.telecomitalia.it)
10:20:34 × molehillish quits (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312) (Ping timeout: 258 seconds)
10:22:58 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
10:26:47 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
10:29:01 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
10:29:49 jakalx parts (~jakalx@base.jakalx.net) ()
10:34:02 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
10:34:56 jakalx joins (~jakalx@base.jakalx.net)
10:35:06 frozenErebus joins (~frozenEre@37.231.244.249)
10:39:33 × hexfive quits (~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
10:40:09 × frozenErebus quits (~frozenEre@37.231.244.249) (Remote host closed the connection)
10:41:16 frozenErebus joins (~frozenEre@37.231.244.249)
10:46:09 × frozenErebus quits (~frozenEre@37.231.244.249) (Remote host closed the connection)
10:46:31 frozenErebus joins (~frozenEre@37.231.244.249)
10:48:27 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13) (Remote host closed the connection)
10:48:43 ADG1089 joins (~aditya@27.58.165.185)
10:49:18 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Ping timeout: 240 seconds)
10:50:46 hackage hakyll-filestore 0.1.9 - FileStore utilities for Hakyll https://hackage.haskell.org/package/hakyll-filestore-0.1.9 (aergus)
10:52:07 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
10:52:07 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
10:52:26 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:52:27 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
10:52:56 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 246 seconds)
10:54:14 frozenErebus joins (~frozenEre@37.231.244.249)
10:58:41 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
10:59:01 Sorny joins (~Sornaensi@077213203030.dynamic.telenor.dk)
10:59:44 frozenErebus joins (~frozenEre@37.231.244.249)
11:02:11 × Sorna quits (~Sornaensi@85.203.36.113) (Ping timeout: 240 seconds)
11:04:26 dyeplexer joins (~lol@unaffiliated/terpin)
11:04:27 × irc_user quits (uid423822@gateway/web/irccloud.com/x-sjzuqoxkghghfafu) (Quit: Connection closed for inactivity)
11:06:46 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 260 seconds)
11:11:14 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
11:11:15 × Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
11:11:48 Chai-T-Rex joins (~ChaiTRex@gateway/tor-sasl/chaitrex)
11:12:35 __monty__ joins (~toonn@unaffiliated/toonn)
11:12:49 × stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds)
11:13:59 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
11:16:08 × ubert1 quits (~Thunderbi@p200300ecdf25d92dca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection)
11:20:25 lampowner joins (~xblow@2a02:2168:b03:3b74::1)
11:22:35 × siers quits (~ij@2a03:b0c0:1:e0::366:f001) (Changing host)
11:22:35 siers joins (~ij@NixOS/user/siers)
11:23:48 × lampowner quits (~xblow@2a02:2168:b03:3b74::1) (Remote host closed the connection)
11:25:01 × vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
11:25:36 stree joins (~stree@68.36.8.116)
11:27:45 lampowner joins (~xblow@2a02:2168:b03:3b74::1)
11:30:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:32:23 xsperry joins (~as@unaffiliated/xsperry)
11:34:27 geekosaur joins (ac3a5766@172.58.87.102)
11:36:14 × lateef quits (~lateef@2603-6080-6703-48f7-99a5-8367-daa2-03dd.res6.spectrum.com) (Quit: lateef)
11:37:09 frozenErebus joins (~frozenEre@37.231.244.249)
11:37:44 × unyu quits (~pyon@unaffiliated/pyon) (Quit: brb)
11:38:06 × gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
11:39:56 Pickchea joins (~private@unaffiliated/pickchea)
11:40:49 son0p joins (~son0p@181.58.39.182)
11:42:00 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 265 seconds)
11:42:45 travisci joins (ac3a61ab@172.58.97.171)
11:43:55 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
11:43:55 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
11:44:15 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:44:15 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:46:54 <maerwald> is there a function somewhere that does: encodeChar :: Char -> [Word16]
11:48:12 drbean_ joins (~drbean@TC210-63-209-214.static.apol.com.tw)
11:48:50 heatsink joins (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13)
11:51:23 × travisci quits (ac3a61ab@172.58.97.171) (Quit: Connection closed)
11:51:28 Synthetica joins (uid199651@gateway/web/irccloud.com/x-lnpmltxyeixgvflc)
11:53:43 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13) (Ping timeout: 258 seconds)
11:56:19 travisci joins (ac3a61ab@172.58.97.171)
11:58:55 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds)
12:01:19 × drbean_ quits (~drbean@TC210-63-209-214.static.apol.com.tw) (Read error: Connection reset by peer)
12:01:46 hackage ttc 0.4.0.0 - Textual Type Classes https://hackage.haskell.org/package/ttc-0.4.0.0 (TravisCardwell)
12:02:46 hackage cabal-rpm 2.0.8 - RPM packaging tool for Haskell Cabal-based packages https://hackage.haskell.org/package/cabal-rpm-2.0.8 (JensPetersen)
12:03:42 × LKoen quits (~LKoen@191.254.88.92.rev.sfr.net) (Remote host closed the connection)
12:04:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
12:10:20 idhugo_ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
12:13:39 × travisci quits (ac3a61ab@172.58.97.171) (Quit: Connection closed)
12:14:21 × graf_blutwurst quits (~user@2001:171b:226e:adc0:8507:60c2:4c0f:8c17) (Remote host closed the connection)
12:14:43 <Xnuk> Can I check optimizaion flag in -XCPP ?
12:14:59 <__monty__> maerwald: Why Word16? Sounds like you're trying to pull UTF-16 shenanigans that won't work.
12:15:27 <geekosaur> Xnuk, no, it's not exposed as a cpp macro
12:17:21 <Xnuk> :(
12:18:10 drbean_ joins (~drbean@TC210-63-209-56.static.apol.com.tw)
12:18:14 Benzi-Junior joins (~BenziJuni@88-149-67-143.du.xdsl.is)
12:19:05 <geekosaur> you could "package" optimization and a reflection into cpp together via cabal flags, although there'd be no guarantee that someone else used them
12:20:26 peanut_ joins (~peanut_@2a02:8388:a101:2600:d2a4:3e0:301f:c8cf)
12:23:48 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
12:28:27 × ADG1089 quits (~aditya@27.58.165.185) (Remote host closed the connection)
12:30:35 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:30:35 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:30:54 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:30:54 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:35:36 <geekosaur> I'd have questions about how to represent "almost" states, since e.g. -O1 is shorthand for a bunch of different optimization flags
12:38:43 Kaiepi joins (~Kaiepi@47.54.252.148)
12:42:59 <cjay> can cabal somehow run a single haskell file that uses a package not included with ghc? so something like "stack --package"?
12:44:10 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
12:47:25 <__monty__> It definitely did at some point, https://github.com/haskell/cabal/pull/5483 Can't find docs on it anymore though.
12:47:59 renzhi joins (~renzhi@modemcable070.17-177-173.mc.videotron.ca)
12:48:58 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:48:58 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:49:18 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:49:18 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:50:17 <cjay> oh thanks, that magic comment seems to work
12:50:37 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
12:50:37 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
12:50:56 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:50:57 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:51:23 <__monty__> \o/
12:53:00 × Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-eded-286a-fe45-12eb.res6.spectrum.com) (Read error: Connection reset by peer)
12:53:23 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-e90c-4968-5b06-a6fe.res6.spectrum.com)
12:53:33 <cjay> HIE can't seem to deal with it though, so no editor integration
12:53:57 × Dykam_ quits (Dykam@dykam.nl) (Quit: Dykam_)
12:54:15 Dykam joins (Dykam@dykam.nl)
12:54:59 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds)
12:55:18 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
12:55:26 <__monty__> Path of least resistance is definitely to just have a full cabal project.
12:55:34 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 252 seconds)
12:55:58 fryguybob joins (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
12:58:11 <cjay> yeah. it's just nice for small example files that can be easily shared.
12:59:06 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
12:59:38 <L29Ah> runhaskell(1)?
12:59:47 <cjay> I just figured out that UnliftIO.Exception.catch behaves differently than Control.Exception.catch, it just ignores async exceptions. pain. that cost me at least half an hour because I assumed it's just a drop-in replacement like the rest of the lib..
13:00:17 <geekosaur> L29Ah, the question was about exposing additional cabal packages to such a script
13:01:02 <cjay> yeah, maybe it could be fed some internal package db of cabal, but that would be dirty I think
13:02:11 <geekosaur> cabal exec does that but it still needs to be told which packages to put into said db
13:02:39 <geekosaur> (there is no master db that can be exposed, the problems with that kind of db are why cabal and stack exist)
13:03:20 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
13:06:39 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:07:55 <__monty__> cjay: From what I've picked up in this channel it's probably because the other catch doesn't deal with async exceptions properly either. The probably figured better not to than fail in weird and unexpected ways.
13:07:55 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
13:07:56 coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
13:10:56 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 265 seconds)
13:11:05 <cjay> :/
13:13:21 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 265 seconds)
13:13:55 TheScoop joins (~TheScoop@unaffiliated/tryte)
13:14:06 raichoo joins (~raichoo@dslb-092-073-193-252.092.073.pools.vodafone-ip.de)
13:14:17 <__monty__> (Best to wait for confirmation of this from someone who actually knows what they're talking about but it's definitely the vibe I've gotten from async exception discussion.)
13:15:22 <cjay> yeah thanks
13:18:41 × RusAlex quits (~Chel@unaffiliated/rusalex) (Read error: Connection reset by peer)
13:18:45 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
13:19:21 <cjay> the unliftio docs have me confused.. they make it sound like one should never be using throwTo, but don't explain what one should do instead
13:19:25 RusAlex joins (~Chel@unaffiliated/rusalex)
13:19:59 × ericsagnes quits (~ericsagne@2405:6580:0:5100:eee0:b3e1:482f:12f7) (Ping timeout: 245 seconds)
13:20:27 × son0p quits (~son0p@181.58.39.182) (Quit: Lost terminal)
13:20:35 <cjay> I need a way for child threads to communicate errors back to the parent thread, I don't think that can be done with Async or something like that
13:20:35 unyu joins (~pyon@unaffiliated/pyon)
13:20:59 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
13:21:00 <cjay> having the parent thread poll for the status of the chlid thread sucks
13:21:10 × Kaiepi quits (~Kaiepi@47.54.252.148) (Ping timeout: 260 seconds)
13:23:28 <maerwald> __monty__: why would that not work
13:23:48 <maerwald> that's exactly what Text does: https://hackage.haskell.org/package/text-1.2.4.1/docs/src/Data.Text.Internal.Unsafe.Char.html#unsafeWrite
13:24:57 <__monty__> Because you have to be really careful not to break up codepoints.
13:25:10 <__monty__> UTF-16 is not a fixed-width encoding.
13:25:24 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
13:26:13 <maerwald> I can't follow. Unicode codepoint to UTF16 seems like a well defined thing
13:26:47 <__monty__> Sure, but some codepoints require two Word16s to be represented.
13:27:02 <geekosaur> did you notice he asked for a list of Word16?
13:27:20 Kaiepi joins (~Kaiepi@47.54.252.148)
13:28:01 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds)
13:28:05 <__monty__> Yes, but I was thinking of Char as python does it. Apologies.
13:28:24 berberman joins (~berberman@unaffiliated/berberman)
13:30:15 Logio_ is now known as Logio
13:30:27 × zeromus1 quits (~zeromus@217.146.82.202) (Remote host closed the connection)
13:31:35 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
13:32:00 ericsagnes joins (~ericsagne@2405:6580:0:5100:7ad7:6b13:eb4:f58c)
13:33:41 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
13:33:54 zaquest joins (~notzaques@5.128.210.178)
13:35:55 LKoen joins (~LKoen@191.254.88.92.rev.sfr.net)
13:36:51 jscarmona1 joins (~jscarmona@37.120.211.188)
13:37:35 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
13:37:40 × aarvar quits (~foewfoiew@2601:602:a080:fa0:e589:d5cd:80fb:258d) (Quit: Leaving.)
13:41:16 hackage heyting-algebras 0.2.0.1 - Heyting and Boolean algebras https://hackage.haskell.org/package/heyting-algebras-0.2.0.1 (coot)
13:42:06 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
13:44:57 Deide joins (~Deide@217.155.19.23)
13:44:58 alx741 joins (~alx741@186.178.109.231)
13:46:52 stree joins (~stree@68.36.8.116)
13:48:19 × geekosaur quits (ac3a5766@172.58.87.102) (Quit: Connection closed)
13:50:33 × drbean_ quits (~drbean@TC210-63-209-56.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
13:53:28 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
13:54:59 son0p joins (~son0p@181.136.122.143)
13:55:08 Tario joins (~Tario@201.192.165.173)
13:55:19 × LKoen quits (~LKoen@191.254.88.92.rev.sfr.net) (Remote host closed the connection)
13:55:31 × liyang quits (~liyang@90.253.54.54) (Ping timeout: 248 seconds)
13:56:27 × Guest86381 quits (~textual@2603-7000-3040-0000-b985-54e1-77ea-63be.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:00:03 Alleria joins (~textual@2603-7000-3040-0000-b985-54e1-77ea-63be.res6.spectrum.com)
14:00:27 Alleria is now known as Guest88512
14:00:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
14:02:39 × kav quits (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Ping timeout: 265 seconds)
14:04:26 × Guest88512 quits (~textual@2603-7000-3040-0000-b985-54e1-77ea-63be.res6.spectrum.com) (Ping timeout: 258 seconds)
14:05:56 ryxai joins (~textual@pool-71-183-41-241.nycmny.fios.verizon.net)
14:06:40 molehillish joins (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312)
14:08:49 × lampowner quits (~xblow@2a02:2168:b03:3b74::1) (Remote host closed the connection)
14:10:46 × hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:586e:5159:6fa7:bad0) (Ping timeout: 240 seconds)
14:11:09 × molehillish quits (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312) (Ping timeout: 250 seconds)
14:11:55 × ryxai quits (~textual@pool-71-183-41-241.nycmny.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
14:13:08 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 246 seconds)
14:15:01 <peanut_> what is a function type constructor
14:15:19 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
14:17:52 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
14:19:32 Alleria__ joins (~textual@mskresolve-a.mskcc.org)
14:23:12 hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:48b8:55e3:ebc5:16b6)
14:25:38 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
14:26:19 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
14:26:43 kritzefitz joins (~kritzefit@212.86.56.80)
14:28:09 <cjay> peanut_: (->) in type signatures I think
14:29:01 <peanut_> :t map
14:29:03 <lambdabot> (a -> b) -> [a] -> [b]
14:29:12 <peanut_> like that (a -> b)?
14:29:44 <cjay> that is a function type, the function type constructor applied to two type variables
14:29:44 <peanut_> though i think thats just a function type
14:29:57 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
14:30:03 <cjay> :kind (->)
14:30:10 <cjay> :t (->)
14:30:12 <lambdabot> error: parse error on input ‘->’
14:30:30 cjay slaps lambdabot
14:30:38 <peanut_> lol
14:30:43 <cjay> ghci can do :kind
14:30:51 <enikar> % :kind (->)
14:30:51 <yahb> enikar: * -> * -> *
14:32:07 mrchampion joins (~mrchampio@38.18.109.23)
14:32:28 <enikar> yahb works is a ghci :)
14:32:35 <peanut_> ooh its straight up just "(->)"
14:32:50 <peanut_> that makes more sense now, thanks
14:32:52 <enikar> oops s/works//
14:32:59 <cjay> :)
14:34:36 × s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 260 seconds)
14:34:39 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
14:34:43 frozenErebus joins (~frozenEre@37.231.244.249)
14:34:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
14:37:14 <cjay> Man, I wonder what was going on in the heads of whoever made unliftio. The safe-exceptions package of the same company has a catchAsync, and they admit themselves that it is needed in the README. But UnliftIO.Exception just omits any way to catch async exceptions.
14:37:29 <cjay> so weird
14:37:44 malumore joins (~malumore@151.62.126.8)
14:38:18 <cjay> unlifting the catch from base manually is easy, but omitting it suggests that one should not be using it, which as far as I understand it, is just wrong
14:42:46 hackage math-functions 0.3.4.2 - Collection of tools for numeric computations https://hackage.haskell.org/package/math-functions-0.3.4.2 (AlexeyKhudyakov)
14:44:16 urodna joins (~urodna@unaffiliated/urodna)
14:45:33 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
14:49:01 × hc quits (~hc@fsfe/hc) (Quit: leaving)
14:49:09 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds)
14:50:17 hc joins (~hc@fsfe/hc)
14:51:47 × ajc quits (~ajc@69.231.232.79) (Remote host closed the connection)
14:52:12 ajc joins (~ajc@69.231.232.79)
14:54:05 Pickchea joins (~private@unaffiliated/pickchea)
14:56:56 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 252 seconds)
14:57:29 × acidjnk_new quits (~acidjnk@p200300d0c72b9512d8aaf3880c64deb7.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
14:57:49 frozenErebus joins (~frozenEre@37.231.244.249)
15:04:40 carlomagno joins (~cararell@148.87.23.11)
15:07:16 hackage slick 1.1.1.0 - A quick & easy static site builder built with shake and pandoc. https://hackage.haskell.org/package/slick-1.1.1.0 (ChrisPenner)
15:10:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:10:58 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
15:16:07 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
15:16:48 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
15:16:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
15:16:50 Varis joins (~Tadas@unaffiliated/varis)
15:20:58 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
15:21:09 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
15:21:21 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
15:21:22 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
15:21:22 mouseghost joins (~draco@wikipedia/desperek)
15:21:28 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
15:25:37 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
15:25:59 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
15:26:57 s00pcan joins (~chris@075-133-056-178.res.spectrum.com)
15:27:52 × jlamothe quits (~jlamothe@198.251.55.207) (Quit: leaving)
15:28:26 × raym quits (~ray@115.187.32.14) (Quit: leaving)
15:28:38 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
15:31:34 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:33:21 <maerwald> How would one construct a filepath according to the abstract filepath proposal from a ByteString. On Unix you have two choices: `id` or a random encoding (utf8). On Windows, you must encode as utf16LE (ascii is a possibility too, but MS is deprecating those syscalls afaiu)
15:34:09 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
15:34:14 <maerwald> it seems you could go for id for unix and lenientDecode on windows, but that doesn't seem well defined either
15:34:57 <maerwald> Maybe FilePath -- seems ridiculous, when it can only fail on one platform
15:35:30 jophish joins (~jophish@li1766-207.members.linode.com)
15:37:07 borne joins (~fritjof@200116b8640fd800f7ed9fd86a2491f0.dip.versatel-1u1.de)
15:37:47 gxt joins (~gxt@gateway/tor-sasl/gxt)
15:38:24 tpefreedom joins (~tsomers@184-157-240-110.dyn.centurytel.net)
15:41:18 × frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds)
15:42:42 apeyroux joins (~alex@78.20.138.88.rev.sfr.net)
15:42:45 × apeyroux quits (~alex@78.20.138.88.rev.sfr.net) (Client Quit)
15:47:40 ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
15:47:51 jlamothe joins (~jlamothe@198.251.55.207)
15:50:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:50:58 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
15:50:58 kiweun joins (~kiweun@2607:fea8:2a62:9600:31a8:b768:9c51:16bb)
15:52:58 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection)
15:53:18 × conal quits (~conal@192.145.118.89) (Quit: Computer has gone to sleep.)
15:54:36 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
15:54:38 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
15:54:41 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
15:55:01 ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net)
15:56:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
15:56:50 plakband joins (~plakband@softbank126227040096.bbtec.net)
15:58:50 conal joins (~conal@64.71.133.70)
15:59:09 × ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 246 seconds)
16:00:04 <plakband> Does someone have a recommendation for how to best generate LLVM from Haskell? The llvm-hs package seems outdated and a little light on documentation, am I better off just using the bindings directly?
16:00:13 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
16:00:18 × darkcodi[m] quits (darkcodima@gateway/shell/matrix.org/x-dwlebpymojvmimkd) (Quit: Idle for 30+ days)
16:01:31 × _bin_ quits (~bin@2600:1700:10a1:38d0:f5fc:8391:811:f23a) (Quit: ZNC - https://znc.in)
16:01:58 _bin joins (~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net)
16:03:21 × conal quits (~conal@64.71.133.70) (Ping timeout: 246 seconds)
16:03:28 conal_ joins (~conal@192.145.118.149)
16:06:14 × peanut_ quits (~peanut_@2a02:8388:a101:2600:d2a4:3e0:301f:c8cf) (Quit: Leaving)
16:06:16 hackage dhall-openapi 1.0.0 - Convert an OpenAPI specification to a Dhall package https://hackage.haskell.org/package/dhall-openapi-1.0.0 (GabrielGonzalez)
16:06:38 <_bin> c
16:06:42 geekosaur joins (82650c7a@130.101.12.122)
16:07:02 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
16:08:15 stree joins (~stree@68.36.8.116)
16:08:16 frozenErebus joins (~frozenEre@37.231.244.249)
16:13:10 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Remote host closed the connection)
16:15:33 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds)
16:16:06 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds)
16:16:38 Rudd0 joins (~Rudd0@185.189.115.103)
16:19:37 Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck)
16:21:02 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
16:21:22 stef204 joins (~stef204@unaffiliated/stef-204/x-384198)
16:22:03 kav joins (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi)
16:24:38 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
16:25:16 × xff0x quits (~xff0x@2001:1a81:5267:7900:f33d:bbef:8155:bb1d) (Ping timeout: 240 seconds)
16:25:21 LKoen joins (~LKoen@191.254.88.92.rev.sfr.net)
16:25:38 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
16:25:58 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
16:27:28 xff0x joins (xff0x@gateway/vpn/mullvad/xff0x)
16:29:27 solarion joins (~solarion@fsf/member/solarion)
16:29:37 solarion is now known as Solarion
16:29:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:30:59 gioyik joins (~gioyik@gateway/tor-sasl/gioyik)
16:33:04 × stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1)
16:34:29 × LKoen quits (~LKoen@191.254.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
16:39:21 <ephemient> maerwald: Microsoft is gradually making it possible to use UTF-8 with the old -A (non-widechar) API: https://docs.microsoft.com/en-us/windows/uwp/design/globalizing/use-utf8-code-page
16:39:38 <xerox_> by what magic `instance Read X where readPrec = ...' only works when you import GHC.Read? (is that even the right way to go about it? it's just what I found, trying to follow the advice in the Prelude docs about implementing readPrec instead of readsPrec)
16:40:15 <ephemient> so I'd say it's the opposite of being deprecated
16:40:58 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
16:40:59 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
16:42:09 <ephemient> xerox_: Prelude exports Read(readsPrec, readList) - it doesn't export Read(readPrec). if you want to, it would be better to import it via Text.Read
16:42:21 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds)
16:42:46 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
16:43:16 <c_wraith> xerox_: that's why the error message says it's not a *visible* member
16:44:09 jamm_ joins (~jamm@unaffiliated/jamm)
16:44:17 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
16:45:16 <xerox_> gotcha, appreciate it
16:45:32 × hidedagger quits (~nate@unaffiliated/hidedagger) (Ping timeout: 265 seconds)
16:46:11 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
16:46:17 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
16:46:18 × zaquest quits (~notzaques@5.128.210.178) (Read error: Connection reset by peer)
16:47:08 zaquest joins (~notzaques@5.128.210.178)
16:48:31 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
16:49:29 madjest14 joins (~Android@2a02-a420-47-b3b2-8077-257-ad0b-f19d.mobile6.kpn.net)
16:49:41 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds)
16:50:39 × ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection)
16:52:22 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
16:52:44 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
16:53:05 wonko7 joins (~wonko7@62.115.229.50)
16:56:41 × xff0x quits (xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 240 seconds)
16:57:36 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 246 seconds)
16:58:43 xff0x joins (~xff0x@2001:1a81:5267:7900:f33d:bbef:8155:bb1d)
16:59:00 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
16:59:44 geekosaur joins (82650c7a@130.101.12.122)
17:03:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
17:07:38 × rajivr quits (uid269651@gateway/web/irccloud.com/x-ntrjiqavhvendslg) (Quit: Connection closed for inactivity)
17:10:59 <maerwald> ephemient: that doesn't change the base problem: how to deal with invalid unicode data
17:11:17 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
17:11:57 <ephemient> I mean, even on Linux where the API doesn't enforce valid Unicode, it's entirely possible that the filesystem you're working on does... so you have to handle invalid filenames at that point regardless
17:12:31 <maerwald> ephemient: on unix, filenames are char[]
17:12:57 <maerwald> the only invalid bytes are '/' and \0
17:13:07 <ephemient> yes, but if the user has a NTFS filesystem mounted, you can't create invalid filenames - you'll get an error at open time
17:13:22 × DavidEichmann quits (~david@47.27.93.209.dyn.plus.net) (Remote host closed the connection)
17:13:28 <ephemient> also on macos - also has UNIX-like char[] filenames, but performs Unicode normalization on it
17:13:48 <maerwald> linux doesn't perform unicode normalization though
17:14:43 <geekosaur> filesystems can though, and iirc there's at least one hfs+ driver out there
17:14:47 <ephemient> and macos's normalization rules are also different on HFS+ and AFS...
17:15:08 <maerwald> so: BytesString to FilePath conversion on unix systems cannot fail, but it can fail on windows. The question is how to abstract over that
17:15:24 <ephemient> you have to worry about whether the whole encode+open sequence can fail
17:15:34 <ephemient> why do anything special about filename encoding failure?
17:16:09 <maerwald> geekosaur: what's relevant is what the syscalls accept
17:16:41 <ephemient> maerwald: you don't know what the syscalls accept, there's restrictions beyond char[]
17:16:56 <maerwald> ephemient: what restriction is there on linux?
17:17:12 <ephemient> depends on the filesystems in use
17:17:49 <ephemient> Linux can mount FAT and NTFS filesystems, which will apply those rules, and FUSE filesystems which can do anything
17:18:16 <ephemient> there isn't a global PATH_MAX but different filesystems have internal limits
17:19:11 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.1)
17:19:29 <maerwald> well, I'm not sure I want to do anything about that... following POSIX, everything except null byte and '/' is allowed
17:19:50 <ephemient> POSIX allows for systems to apply more restrictions than that
17:20:02 <maerwald> yes, but that's up to the user to ensure
17:20:11 <maerwald> not to a library implementing FilePath type
17:20:24 <maerwald> you can consider what filesystem you support
17:20:34 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
17:20:44 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
17:21:03 <ephemient> in practice Gnome presumes that file paths are UTF-8 encoded and KDE assumes that file paths are $LOCALE encoded (which is going to be UTF-8 these days)
17:21:19 <maerwald> yeah, I want to avoid exactly those assumptions
17:21:43 × frozenErebus quits (~frozenEre@37.231.244.249) (Quit: leaving)
17:21:47 <ephemient> you will have to handle unexpected failures later, regardless of what you assume up front
17:21:55 <maerwald> the question now is how to unify over windows and unix (given that we assume all ByteStrings are valid on unix)
17:22:15 <maerwald> when converting FROM ByteString
17:22:19 jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client")
17:23:22 <ephemient> I would leave it as a bytestring until open() time, which can fail due to encoding *or* system-specific reasons
17:23:48 ddellacosta joins (~ddellacos@86.106.143.92)
17:24:00 <maerwald> this is what I've done: https://git.io/JYsjV
17:25:34 × gentauro quits (~gentauro@unaffiliated/gentauro) (Quit: leaving)
17:25:37 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
17:25:46 × MrMobius quits (~MrMobius@208.58.206.154) (Ping timeout: 245 seconds)
17:25:53 <maerwald> FileSystem support is up to an application to worry about imo. E.g. some applications don't support AUFS, because it breaks `rename` sometimes (you need portable file copy).
17:26:00 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
17:26:41 <ephemient> I don't see why you need detect invalid Windows filenames earlier than `open` time
17:26:44 MrMobius joins (~MrMobius@208.58.206.154)
17:26:54 <maerwald> ephemient: that's the invariant for the type
17:26:56 <ephemient> you can't detect many cases of invalid filenames without trying to `open` them, across all OSes
17:27:09 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
17:27:13 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:27:18 <maerwald> did you read the abstract filepath proposal?
17:27:20 pera joins (~pera@unaffiliated/pera)
17:28:33 × ddellacosta quits (~ddellacos@86.106.143.92) (Ping timeout: 265 seconds)
17:28:33 gentauro joins (~gentauro@unaffiliated/gentauro)
17:29:13 gxt joins (~gxt@gateway/tor-sasl/gxt)
17:29:22 <ephemient> `data WindowsFilePath = WFP ByteArray# -- UTF16 data` doesn't seem like the right thing to do, to me
17:29:42 <maerwald> well, I'm implementing it, so this is assumed as correct
17:31:54 <maerwald> I'm less worried about the internal representation decisions, but how the abstraction will play out (or if there's no reasonable one). Converting from ByteString is one of those things that can't be properly abstracted over. Another option is to just refer ppl to the internals if they need that kind of thing
17:32:59 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
17:33:16 <maerwald> that's why there are 2 constructors
17:33:38 <maerwald> so you don't accidentially write one codepath if you start matching on the raw data
17:34:14 jakalx joins (~jakalx@base.jakalx.net)
17:35:02 <ephemient> if I were targeting W10+ only, I'd use UTF-8 across all platforms, period
17:36:14 vicfred joins (vicfred@gateway/vpn/mullvad/vicfred)
17:36:30 <ephemient> with older Windows in the mix... `data WindowsFilePath = WFPW {- UTF-16 -} | WFPA {- UTF-8 -}` I guess. a bit unfortunate in that it would require a custom Eq that uses the current codepage for conversion
17:37:49 d34df00d joins (~d34df00d@104-14-27-213.lightspeed.austtx.sbcglobal.net)
17:37:52 <d34df00d> Hi!
17:38:11 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
17:40:31 × madjest14 quits (~Android@2a02-a420-47-b3b2-8077-257-ad0b-f19d.mobile6.kpn.net) (Ping timeout: 276 seconds)
17:41:24 <maerwald> ephemient: rust does a very similar thing to the abstract filepath proposal, see OsString. It's Vec<u8> on unix and WTF-8 (more lax utf-8) on windows
17:41:51 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
17:42:29 <maerwald> but it is more than about filepaths, so it's not a clean abstraction
17:43:07 <maerwald> https://doc.rust-lang.org/std/ffi/index.html#conversions is also interesting
17:43:38 <maerwald> following that, they would only expose `fromByteString` on unix via CPP ifdef
17:44:09 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
17:45:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:45:47 curl joins (5ce955fb@gateway/web/cgi-irc/kiwiirc.com/ip.92.233.85.251)
17:46:22 × geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds)
17:47:11 × Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 240 seconds)
17:47:41 ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net)
17:47:56 <curl> is there a name for the first argument of (a->(o,a)) -> a -> [o]
17:48:42 <curl> or of that function?
17:49:18 pupuupup joins (~pupuupup@node-bv.pool-125-24.dynamic.totinternet.net)
17:49:56 <maerwald> https://hackage.haskell.org/package/fixed-vector-1.2.0.0/docs/Data-Vector-Fixed.html#v:unfoldr
17:49:58 <maerwald> unfold?
17:50:46 hackage zenacy-unicode 1.0.1 - Unicode utilities for Haskell https://hackage.haskell.org/package/zenacy-unicode-1.0.1 (mlcfp)
17:50:47 <curl> :t unfoldr
17:50:48 <lambdabot> (b -> Maybe (a, b)) -> b -> [a]
17:51:01 <curl> yeah i see
17:51:03 <curl> thanks
17:51:46 hackage zenacy-html 2.0.3 - A standard compliant HTML parsing library https://hackage.haskell.org/package/zenacy-html-2.0.3 (mlcfp)
17:52:12 <curl> i guess i can always use Just to make the maybe version
17:53:47 heatsink joins (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13)
17:54:15 <curl> how do i compose things like that together? i guess i need a fold inbetween to use fusion
17:55:39 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
17:55:55 × plakband quits (~plakband@softbank126227040096.bbtec.net) (Quit: WeeChat 2.9)
17:55:57 <curl> probably just successive traversals and mappings, but i want the data to feed through one element at a time through some kind of sequence of processes each of which has its own memory state
17:56:15 <curl> at least notionally
17:56:36 <curl> or, because that can be a way of looking at it, that maybe there is a way of coding that is like that
17:56:45 × gioyik quits (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 240 seconds)
17:57:23 <curl> does that make sense? feeding the data one element at a time through some kind of stationary bunch of functions
17:57:28 <maerwald> > unfoldr (\b -> if b < 5 then Just (b, b + 1) else Nothing) 1
17:57:31 <lambdabot> [1,2,3,4]
17:58:02 <maerwald> b is your state
17:58:18 <maerwald> `Nothing` aborts the loop
17:58:34 <curl> :t mapAccumr undefined undefined $ unfoldr (\b -> if b < 5 then Just (b, b + 1) else Nothing) 1
17:58:35 <lambdabot> error:
17:58:36 <lambdabot> • Variable not in scope: mapAccumr :: t0 -> t1 -> [a0] -> t
17:58:36 <lambdabot> • Perhaps you meant one of these:
17:59:22 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13) (Ping timeout: 276 seconds)
18:02:22 ddellacosta joins (~ddellacos@86.106.143.66)
18:02:27 <curl> > mapAccumR (\x y -> (x+1,x+y)) 0 $ unfoldr (\b -> if b < 5 then Just (b, b + 1) else Nothing) 1
18:02:29 <lambdabot> (4,[4,4,4,4])
18:02:56 geekosaur joins (82650c7a@130.101.12.122)
18:03:16 × borne quits (~fritjof@200116b8640fd800f7ed9fd86a2491f0.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
18:03:24 supersven[m] joins (supersvenm@gateway/shell/matrix.org/x-wgclishhljzvmcme)
18:03:38 <curl> > mapAccumL (\x y -> (x+1,x+y)) 0 $ unfoldr (\b -> if b < 5 then Just (b, b + 1) else Nothing) 1
18:03:41 <lambdabot> (4,[1,3,5,7])
18:04:11 <curl> see how the 0 enters and acts as a state undergoing +1
18:04:52 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
18:05:24 <curl> so you see the idea of "composing" these things together, with them aech having their own state?
18:06:10 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
18:06:55 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
18:06:56 × ddellacosta quits (~ddellacos@86.106.143.66) (Ping timeout: 260 seconds)
18:07:19 × e quits (e@freenode/staff/spy.edk) (Quit: edk)
18:07:27 <curl> i guess there is some condition of the first argument of mapAccumL where it can factorise over 2 mapAccumL's in series
18:08:24 <curl> giving some rewrite rule that mashed them all into one call to mapAccumL
18:08:34 <curl> or even by fusion right into the unfold
18:09:01 <curl> mashes*
18:09:07 ddellacosta joins (~ddellacos@86.106.143.27)
18:09:33 <curl> :t mapAccumL
18:09:35 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
18:09:47 <curl> they are all these things of type (a -> b -> (a, c))
18:10:06 <curl> `a' is acting as the state there
18:10:44 <curl> though i prefer (i -> s -> (o,s)) = State s i o
18:11:28 <curl> the proposal is there should be some kind of fusion for states being sequentially composed down into an unfold
18:11:59 <curl> i guess this already happens with Traversable somehow
18:12:06 <ephemient> > let (_, fib) = mapAccumL (\a b -> (a + b, a)) 1 (0:fib) in 0:fib
18:12:08 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
18:12:20 <__minoru__shirae> curl: "one element at a time" - in haskell you don't have to build the whole list to start handling its elements
18:12:35 <curl> its a notion embodied in the fusion
18:12:42 <curl> its how you can get it down to an unfold
18:13:11 × ddellacosta quits (~ddellacos@86.106.143.27) (Ping timeout: 240 seconds)
18:13:19 <curl> you think of the sequence of composed states processing one value at a time, and this sequence being composed down to one action by the fusion
18:13:31 <ephemient> > unfoldr (Just . \(a, b) -> (a, (b, a + b))) (0, 1)
18:13:33 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
18:14:06 × dxld quits (~dxld@rush.pub.dxld.at) (Ping timeout: 245 seconds)
18:14:23 <curl> right, you should alsways be able to rewrite any mapAccumL over any unfolded list, into just one unfold
18:14:45 <__minoru__shirae> curl: you mean functions with signature "a -> m ()", right?
18:14:55 <curl> no...
18:15:05 <curl> not sure where you got that from
18:15:22 <__minoru__shirae> curl: "you think of the sequence of composed states processing one value at a time, and this sequence being composed down to one action by the fusion"
18:15:28 knupfer joins (~Thunderbi@dynamic-046-114-151-080.46.114.pool.telefonica.de)
18:15:39 dxld joins (~dxld@rush.pub.dxld.at)
18:15:41 <__minoru__shirae> what is the signature of that action?
18:15:54 <curl> well just one state i guess
18:16:12 <curl> states i was writing (i -> s -> (o,s))
18:16:18 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:16:21 × stree quits (~stree@68.36.8.116) (Ping timeout: 268 seconds)
18:16:50 <curl> which is backwards of how they appear in mapAccumL as (a -> b -> (a,c))
18:17:02 <curl> :t mapAccumL
18:17:04 <lambdabot> Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
18:17:53 e joins (e@freenode/staff/spy.edk)
18:18:24 <curl> basically you have a bunch of i's and o's that have to match up, and a bunch of s's which are grouped together into one effective state
18:18:55 codygman__ joins (~user@47.186.207.161)
18:18:56 Sornaensis joins (~Sornaensi@185.217.117.65)
18:18:59 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
18:20:18 <curl> like, 2 mapAccumL in series is like one with the pair of the states of each as its state
18:21:55 <curl> anyway, even if you dont think of the elements being processed one at a time going through the states, the states still end up in a list more or less, so there is still the idea of this processor that the elements are being fed through
18:22:26 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
18:22:28 <curl> i guess i should distinguish between states and state functions...
18:22:38 × idhugo_ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds)
18:22:41 × Sorny quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 265 seconds)
18:22:45 <curl> states s, state function i -> s -> (o,s)
18:23:25 <monochrom> Perhaps you like "state transition function".
18:23:26 <curl> a sequence of state functions becomes a state function with a list of states as its state
18:23:31 <__minoru__shirae> how about the obvisous solution, calling mapAccumL, then taking its result and then calling the next mapAccumL on it
18:23:50 <curl> yeah thats how they compose
18:23:55 <curl> in sequence or series
18:24:33 <curl> so mapAccumL takes both the state function and the state and then is a function in one argument ready for sequential composition
18:24:34 <monochrom> If you re-imagine the "a -> t b -> (a, t c)" part to be "(a, t b) -> (a, t c)", you can use vanilla "." for chaining.
18:25:24 <curl> an uncurried state function
18:25:34 <curl> fine
18:25:37 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
18:25:58 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
18:26:09 <curl> so then each state and state function together, with mapAccumL partially applied, all dotted together
18:26:21 <__minoru__shirae> using this approach you can build one chain of handlers, how about linking those chains into trees?
18:26:21 <curl> and that should be with a rewrite to an unfold
18:26:54 × NinjaTrappeur quits (~ninja@2001:913:5200:200::) (Quit: WeeChat 3.1)
18:26:56 <curl> and that would be inductivly written just needing to match one dot to then work on any number in a sequence
18:27:13 NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur)
18:27:14 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
18:27:18 <curl> __minoru__shirae: trees of outputs or inputs or both?
18:27:19 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:27:42 <__minoru__shirae> I mean graphs of processing steps
18:27:51 <curl> in either case you output or have input of pairs or lists
18:28:08 <curl> as edges to the consequent verticies
18:28:40 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds)
18:28:44 <curl> lists of outputs or inputs, not trees, sorry
18:28:55 <curl> but that ends up like a tree
18:29:07 stree joins (~stree@68.36.8.116)
18:29:20 <curl> very difficult
18:29:31 <curl> impossible to have both branching outputs and inputs
18:29:40 <curl> makes a graph that cant be easily represented in haskell
18:29:43 <curl> big problem
18:29:51 <curl> no solution as yet
18:29:52 <__minoru__shirae> and siblings just call mapAccumL on the same input independently of each other, right?
18:30:01 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
18:30:09 × jess quits (jess@freenode/staff/jess) ()
18:30:23 <curl> the states are kept separate yes
18:30:23 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
18:30:32 <curl> they just kind of sit over the nodes in the graph
18:30:40 <curl> inputs and outputs as edges between
18:31:07 <curl> there must be some zipping
18:31:19 <curl> you would have to do that with type level lengths
18:31:32 <curl> since you would be zipping up into a list not a tuple
18:31:57 <curl> so the mapAccumL can opperate on just one list from a list of inputs
18:32:22 <curl> many input edges in a list, each having a list to stream over
18:32:38 <curl> so you zip them up and stream over them
18:32:52 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
18:32:54 <curl> but at the outputs its more complicated, since you have to unzip them and send them to the correct place
18:33:38 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
18:33:52 <curl> which requires representation of a graph
18:34:15 <curl> which you cant do in GADTs like you can Trees
18:34:30 <curl> "upwards edges" being unrepresentable
18:34:45 <curl> only branches below so to speak
18:35:29 jb55 joins (~jb55@gateway/tor-sasl/jb55)
18:36:34 <curl> you can fan out easily though, with no recombination, no lists as inputs, so that lists of outputs are only ever acted on by unique consumers
18:37:08 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
18:37:32 codygman__ joins (~user@47.186.207.161)
18:37:36 <curl> can this be called a composition algebra?
18:37:54 average joins (uid473595@gateway/web/irccloud.com/x-cgevxjwlwytwuber)
18:38:28 <curl> im not sure how to compare it with pipes or conduit for that kind of graph based streaming functions
18:38:44 <curl> but the composed mapAccumL functions seems much more natural
18:39:08 <curl> if we ignore trying to work with branching
18:39:24 <curl> but i guess you have to have that for the API to be complete
18:39:45 <curl> but then have to faff around with zipping and unzipping all these argument lists over a graph somehow
18:40:38 <curl> maybe there is a more natural way to represent this kind of branching of composed functions...
18:40:48 <curl> like lambda syntax or something
18:41:44 <curl> i mean, if this API didnt have branching it would just be category, with (.)
18:41:59 <curl> category + branching seems cool
18:42:36 minoru_shiraeesh joins (~shiraeesh@46.34.207.84)
18:42:47 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
18:42:52 <curl> polyvariadic category?
18:42:59 × __minoru__shirae quits (~shiraeesh@77.94.25.214) (Ping timeout: 265 seconds)
18:43:38 <curl> its a shame the dots it needs are the complicated owl like structures that are so difficult to parse from pointless style
18:43:51 <curl> :t ((.).(.))
18:43:52 <lambdabot> (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
18:44:36 <curl> even fixed points of states
18:44:44 <curl> composing them with themselves a bunch of times
18:44:52 <curl> like an unrolled recursive function
18:44:58 ddellaco_ joins (~ddellacos@86.106.143.144)
18:45:19 jamm_ joins (~jamm@unaffiliated/jamm)
18:45:31 <curl> if you can only have trees and not have self reference to make graphs then you cant get recursive reference
18:46:35 <curl> so then haskell syntax is richer than such a tree
18:47:09 <curl> and to represent what we need, to have recursive functions and manage the syntax of programs somehow represented over a graph
18:47:09 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
18:47:24 <curl> is to represent a lazy functional langauge
18:47:38 <curl> started from fusion of states in a graph
18:48:00 <curl> now a functional language gets states on its functions
18:48:17 <curl> ie, variable programs
18:48:34 <curl> thats what this graph of state functions basically represents
18:48:54 × carlomagno quits (~cararell@148.87.23.11) (Ping timeout: 246 seconds)
18:48:57 <curl> thinking of states pared with state functions as basically being like variable functions
18:49:00 carlomagno1 joins (~cararell@148.87.23.11)
18:49:01 <curl> functions with memory
18:49:11 <curl> leading to functional program with memory at the functions
18:49:31 × jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 245 seconds)
18:49:35 <curl> but trying to represent this on a graph in a GADT seems impossible
18:50:39 <curl> ie Haskell itself cant express the structure needed for its own abstract syntax in its recursive state. it probably just evaluates all the references into a big tree
18:51:01 <curl> and never bothers trying to have it in a grpah like thing as the recursive tree proper
18:51:22 <curl> which means if we *could* get a proper graph thing, then it could probably make a nice layer in GHC
18:51:36 <curl> and that then we could work with this kind of syntax tree on an actual graph
18:51:51 <curl> when we interface with GHC's intermediate structures
18:52:12 <geekosaur> I thought STG level was a graph
18:52:17 <curl> not sure if its a few language extensions away from folding in on itself...
18:52:32 <curl> maybe they do the graph thing properly, but not in haskell syntax
18:52:34 heatsink joins (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13)
18:52:47 <curl> its not a GADT we can work with *as a graph*
18:53:00 <curl> like a GADT is *of a tree*
18:53:21 <curl> but if there was one, idk, maybe the STG thing would be easier to represent
18:53:24 <curl> and work with
18:54:05 <curl> and then that this GADT++ language extension would cause a possibly large refactoring of intermediate graph structures of haskell syntax
18:54:27 <curl> which i guess requires the graph for its recursive nature and lazy evaluation
18:54:29 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:55:39 <curl> all it needs is some kind of way of referencing positions in the tree during their GADT construction
18:56:20 <curl> as if they were records
18:56:56 <curl> like as if they were so dependently typed as that their accessing could be used throughout the tree in a typesafe way, but that it was elevated atually into the language syntax
18:57:36 <curl> lists being built from Sum types, dont get nice records
18:58:47 <curl> sum-records could make record-lists, and these at syntax level could be used in GADTs to refer to other parts of themselves by the other records, for "closing edges"
18:59:43 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
18:59:53 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
19:00:20 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
19:00:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:00:54 <curl> the good thing about it being its supposed to support haskell syntax
19:01:16 <curl> so you shuold as a result of this referencing, be able to write recursive programs properly onto the GADT syntax tree
19:01:49 <curl> and be unable to do this in a normal GADT
19:03:15 <curl> as a result of not being able to say while writing the GADT, "the contents thats going here is a copy of some other recursive call to another part of this structure"
19:04:03 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
19:04:24 codygman__ joins (~user@47.186.207.161)
19:04:37 <curl> eg i should be able to say that the list of branches contains only one branch, and the tree it references is *this node*
19:05:06 <curl> at that point, by saying that, forcing the element to have infinite depth
19:05:18 × Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Quit: WeeChat 2.8)
19:05:34 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds)
19:05:50 Sheilong joins (uid293653@gateway/web/irccloud.com/x-dvleaosxdfpycapj)
19:06:55 <curl> i just thought of this sum-records thing now btw, but it kind of makes clearer how such a reference would be made (specifying "this node")
19:07:46 Reggie_ joins (~reggie@c-73-83-218-159.hsd1.wa.comcast.net)
19:07:53 <curl> i managed to encode haskell datatypes with records as a datatype ok
19:08:12 <curl> maybe it would be possible to implement this sum-records like that aswell
19:08:25 <curl> sounds like too much work for me
19:08:57 <curl> https://gist.github.com/fog-hs/19abbf2ee8cf1f9f0c39abf0772da34e
19:09:20 idhugo_ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
19:09:35 <curl> a pair ended up being like;
19:09:36 <curl> FSum HList ('Sum_T name '[ '(name, '[a,b])])
19:09:50 <curl> that name is the records implementation
19:10:39 <curl> it says its a sum of just one thing, so there is no choice, so even product types are sums of products
19:11:29 <curl> the first name parameter to Sum_T says thats which its "pointing to" like a type level Either thing
19:12:17 <curl> you actually need that when extending to lists of choices, otherwise you cant write things like fromLeft properly
19:12:31 <curl> fromLeft being unsafe
19:12:52 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds)
19:13:07 <curl> ie Either *not* having a type specifying if its left or right is actually the exception because its so short that the unsafe things are allowed
19:14:11 <curl> notice how the "product" part of;
19:14:12 <curl> FSum HList ('Sum_T name '[ '(name, '[a,b])])
19:14:18 × Reggie_ quits (~reggie@c-73-83-218-159.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
19:14:21 <curl> which is just '[a.b]
19:14:40 <curl> as the parameters to a typed list (sum of *products*)
19:14:55 <curl> so the contents are unlabled, name only apearing on the sum type
19:15:55 × idhugo_ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Remote host closed the connection)
19:16:22 idhugo_ joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net)
19:16:33 <curl> so im saying that if i zip a list of names there too, so that instead of mimicing haskell syntax, i get records than now extend over both sum and product layers, so should go right down through the GADT, and every position should then have an index
19:17:01 <curl> and that then this thing should be able to repreesnt the graph
19:17:31 ukari joins (~ukari@unaffiliated/ukari)
19:17:40 Lycurgus joins (~niemand@98.4.120.166)
19:17:45 <curl> which i guess it would do by having a choice to refer to parts of itslef instead of values at the records at heach sum-product layer
19:18:08 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
19:18:11 <curl> ie instead of defining *new* records below
19:18:23 <curl> while writing the GADT
19:18:39 codygman__ joins (~user@47.186.207.161)
19:18:50 <curl> (which has become a deep process, instead of writing the layers separately )
19:19:50 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:b497:8c3b:17d1:d29)
19:20:56 <amx> are there strict versions of && and || in a commonly used library? just so I don't ship redundant code.
19:21:05 × minoru_shiraeesh quits (~shiraeesh@46.34.207.84) (Ping timeout: 268 seconds)
19:21:33 <curl> i guess you get something like various levels of scope, including "top level" by having branches appearing without being used by a function that can be refered to by other parts
19:21:37 <monochrom> I haven't seen one. But I haven't looked at many common libraries either.
19:21:43 <curl> sry
19:23:10 <monochrom> And I think adding your own two lines of code still beats pulling in one more library to only use two lines of it.
19:23:18 <amx> most def
19:24:37 <curl> what do Sum branches in programs correspond to?
19:25:10 <curl> sometimes different code? if statements?
19:25:12 <monochrom> Although, http://hackage.haskell.org/packages/search?terms=strict can be useful if you need more strict types and/or functions.
19:25:17 Vadrigar_ joins (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de)
19:25:24 Pickchea joins (~private@unaffiliated/pickchea)
19:25:36 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
19:25:59 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
19:26:26 <curl> oh, no its even more cool, its like different branches on pattern matching and stuff
19:26:52 <curl> different instances i guess too
19:28:27 <curl> id really like to see some simple recursive program with pattern matching, like map, written onto this kind of GADT + referencing
19:29:24 <curl> to see what a recursive functional program looks like in a syntax tree that is able to handle recursive references
19:29:51 × idhugo_ quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 246 seconds)
19:32:45 <curl> i guess fib is the normal example...
19:33:05 <curl> how do you write that on a graphy tree?
19:33:57 <curl> (ie one where you can refer to any other place by name)
19:35:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
19:35:41 × pupuupup quits (~pupuupup@node-bv.pool-125-24.dynamic.totinternet.net) (Ping timeout: 240 seconds)
19:38:05 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 265 seconds)
19:39:56 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection)
19:41:21 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
19:41:28 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds)
19:42:47 Lord_of_Life_ is now known as Lord_of_Life
19:43:56 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:45:16 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
19:45:25 ajc_ joins (~ajc@69.231.232.79)
19:46:03 gioyik joins (~gioyik@gateway/tor-sasl/gioyik)
19:51:29 txb920 joins (5af6ddfd@90.246.221.253)
19:53:18 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 246 seconds)
19:54:20 jakalx parts (~jakalx@base.jakalx.net) ()
19:57:38 sillyotter joins (~sillyotte@cpe-74-137-150-154.kya.res.rr.com)
19:57:40 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:57:51 × sillyotter quits (~sillyotte@cpe-74-137-150-154.kya.res.rr.com) (Client Quit)
19:58:46 <dgpratt> I'm looking at trying to incorporate some flavor of direnv into a nix-based toolchain I'm setting up, but there seem to be several choices, any of them favored or disfavored by any of you folks?
20:02:53 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
20:02:55 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
20:06:18 × tpefreedom quits (~tsomers@184-157-240-110.dyn.centurytel.net) (Quit: Leaving)
20:08:48 × txb920 quits (5af6ddfd@90.246.221.253) (Quit: Connection closed)
20:20:07 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
20:21:44 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
20:22:34 hexfive joins (~hexfive@50.35.83.177)
20:23:24 coot joins (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
20:24:11 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Client Quit)
20:25:36 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:25:58 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
20:25:58 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
20:26:00 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Client Quit)
20:28:26 × geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed)
20:28:48 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
20:30:18 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds)
20:32:18 × Vadrigar_ quits (~Vadrigar@ip5b417208.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
20:32:49 × curl quits (5ce955fb@gateway/web/cgi-irc/kiwiirc.com/ip.92.233.85.251) (Quit: Connection closed)
20:34:36 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
20:35:55 × vchlup_ quits (~vchlup@nat.brnet.cz) (Remote host closed the connection)
20:36:48 vchlup joins (~vchlup@nat.brnet.cz)
20:36:52 Erutuon joins (~Erutuon@97-116-16-233.mpls.qwest.net)
20:36:58 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
20:37:44 × Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving)
20:37:45 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
20:37:56 Tario joins (~Tario@201.192.165.173)
20:38:38 jakalx joins (~jakalx@base.jakalx.net)
20:38:50 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 246 seconds)
20:42:57 Erutuon_ joins (~Erutuon@97-116-16-233.mpls.qwest.net)
20:45:12 × supercoven quits (~Supercove@dsl-hkibng31-54fabd-233.dhcp.inet.fi) (Read error: Connection reset by peer)
20:46:29 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Quit: Lost terminal)
20:46:58 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13) (Remote host closed the connection)
20:47:16 hackage language-js 0.3.0 - javascript parser for es6 and es7. https://hackage.haskell.org/package/language-js-0.3.0 (diasbruno)
20:47:47 <maralorn> Wow, either curl is having an amazing monologue in the backlog or the matrix bridge is yet again swallowing participants.
20:48:39 × Alleria__ quits (~textual@mskresolve-a.mskcc.org) (Ping timeout: 268 seconds)
20:50:15 <monochrom> Their gist url betrays that they're fog again.
20:50:20 stree joins (~stree@68.36.8.116)
20:50:42 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Quit: ZNC - https://znc.in)
20:51:29 <monochrom> But what does "matrix bridge swallows participants" mean? Sounds very either cannibalizing or Greek mythology.
20:52:03 <monochrom> "Kronos was the first matrix bridge" >:)
20:53:52 <maralorn> monochrom: Ah, oh, I see.
20:55:46 × malumore quits (~malumore@151.62.126.8) (Remote host closed the connection)
20:55:56 <monochrom> "fog is co-Kronos" >:) >:)
20:56:06 malumore joins (~malumore@151.62.126.8)
20:56:34 <maralorn> monochrom: The bridge forwards messages to matrix by creating one proxy user on the matrix side per irc nick. But sometimes there is a bug where a user fails to join the matrix channel. Then all their messages don‘t make it to the matrix side. I have no clue how often this happens. But sometimes I can tell by weird monologues that look like they should be dialogues.
20:57:20 <monochrom> Oh! Aliasing.
20:57:56 <maerwald> Matrix is kinda awful
20:58:57 <monochrom> Err nevermind. Lost messages.
20:59:36 <monochrom> But it really was a monologue in the curl case.
20:59:58 <monochrom> Anyone who want them banned, just let me know. >:)
21:03:22 × coot quits (~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
21:03:28 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:04:38 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
21:07:22 × s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Remote host closed the connection)
21:08:19 molehillish joins (~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577)
21:08:48 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
21:11:01 × Erutuon quits (~Erutuon@97-116-16-233.mpls.qwest.net) (Quit: WeeChat 2.8)
21:13:11 notzmv joins (~zmv@unaffiliated/zmv)
21:14:09 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
21:14:22 vchlup_ joins (~vchlup@nat.brnet.cz)
21:14:40 × vchlup quits (~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
21:17:46 hackage polysemy-log 0.1.0.0 - Polysemy effects for logging https://hackage.haskell.org/package/polysemy-log-0.1.0.0 (tek)
21:18:31 Alleria joins (~textual@2603-7000-3040-0000-eca8-d3b7-f438-6f95.res6.spectrum.com)
21:18:54 Alleria is now known as Guest68469
21:21:09 × vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Ping timeout: 240 seconds)
21:21:10 × knupfer quits (~Thunderbi@dynamic-046-114-151-080.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
21:22:59 × Guest68469 quits (~textual@2603-7000-3040-0000-eca8-d3b7-f438-6f95.res6.spectrum.com) (Ping timeout: 252 seconds)
21:23:00 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
21:23:46 codygman__ joins (~user@47.186.207.161)
21:27:29 Alleria__ joins (~textual@2603-7000-3040-0000-eca8-d3b7-f438-6f95.res6.spectrum.com)
21:30:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:31:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:35:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
21:35:43 fendor_ joins (~fendor@77.119.130.155.wireless.dyn.drei.com)
21:35:48 × codygman__ quits (~user@47.186.207.161) (Remote host closed the connection)
21:36:08 codygman__ joins (~user@47.186.207.161)
21:36:12 son0p joins (~son0p@181.136.122.143)
21:36:32 × puke quits (~vroom@217.138.252.168) (Quit: puke)
21:37:58 × fendor quits (~fendor@91.141.1.158.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
21:39:10 × Lycurgus quits (~niemand@98.4.120.166) (Quit: Exeunt)
21:40:28 × malumore quits (~malumore@151.62.126.8) (Ping timeout: 268 seconds)
21:43:21 puke joins (~vroom@217.138.252.196)
21:45:28 vchlup__ joins (~vchlup@nat.brnet.cz)
21:46:06 × vchlup_ quits (~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
21:47:41 heatsink joins (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13)
21:50:53 heatsink_ joins (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13)
21:50:56 × heatsink quits (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13) (Remote host closed the connection)
21:51:10 dpl__ joins (~dpl@77.121.78.163)
21:52:41 × vchlup__ quits (~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
21:52:55 <maralorn> maerwald: Actually at this point the freenode-bridge is the weak link. Matrix itself works pretty nicely.
21:53:32 s00pcan joins (~chris@075-133-056-178.res.spectrum.com)
21:55:16 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds)
21:55:29 vchlup joins (~vchlup@nat.brnet.cz)
21:59:33 nbloomf joins (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6)
22:00:12 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 268 seconds)
22:00:37 Rudd0 joins (~Rudd0@185.189.115.108)
22:03:09 <xerox_> say I have a bijective mapping between a contiguous [a..b] (a<b) and a subset of Int⨯Int, can I use a pattern synonym to go between those?
22:04:17 <xerox_> pattern Foo i <- Bar (x,y) where ... has me stuck as to where to put the function (Int,Int)->Int to get from (x,y) to i
22:04:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
22:06:01 tpefreedom joins (~tsomers@184-157-240-110.dyn.centurytel.net)
22:06:12 <xerox_> whereas the continuation where Foo = g seems reasonable for the opposite Int->(Int,Int) function
22:06:40 int-e surreptitiously drops some red pills.
22:06:59 × tpefreedom quits (~tsomers@184-157-240-110.dyn.centurytel.net) (Client Quit)
22:07:04 <xerox_> (:
22:07:14 <monochrom> free red pills for everyone
22:07:34 <Franciman> do you have any black pill?
22:11:03 <juri_> I prefer arduinos.
22:11:14 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 246 seconds)
22:11:58 tpefreedom joins (~tsomers@184-157-240-110.dyn.centurytel.net)
22:15:45 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:16f:a8e3:b3e2:cec6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:16:20 × Franciman quits (~francesco@host-79-53-62-46.retail.telecomitalia.it) (Quit: Leaving)
22:18:41 <xerox_> ah the answer is a view pattern: pattern Foo i <- (f -> (x,y)) where Foo = g
22:18:55 <xerox_> err, f -> i, you get the idea
22:20:19 <dmj`> pattern synonyms and view patterns both probably just desugar into case statements and function applications, so regular ol' case statement would work just fine
22:22:26 × ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Remote host closed the connection)
22:24:27 Sorna joins (~Sornaensi@077213203030.dynamic.telenor.dk)
22:24:46 Sorny joins (~Sornaensi@45.41.132.136)
22:25:36 × zebrag quits (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
22:25:58 zebrag joins (~inkbottle@aaubervilliers-654-1-98-245.w86-212.abo.wanadoo.fr)
22:28:38 × Sorna quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds)
22:28:42 × Sornaensis quits (~Sornaensi@185.217.117.65) (Ping timeout: 265 seconds)
22:30:31 × azure1 quits (~azure@103.154.230.130) (Read error: Connection reset by peer)
22:30:41 azure1 joins (~azure@103.154.230.130)
22:33:38 × codygman__ quits (~user@47.186.207.161) (Ping timeout: 240 seconds)
22:36:00 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:39:39 × jscarmona1 quits (~jscarmona@37.120.211.188) (Remote host closed the connection)
22:39:49 dave_uy1 joins (~david@108.61.193.26)
22:40:17 × byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 246 seconds)
22:40:25 byorgey joins (~byorgey@155.138.238.211)
22:40:43 wonko7 joins (~wonko7@62.115.229.50)
22:40:49 × dave_uy quits (~david@108.61.193.26) (Ping timeout: 276 seconds)
22:41:50 irc_user joins (uid423822@gateway/web/irccloud.com/x-qzrrxhbhoabztmbj)
22:43:18 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:48:38 × vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
22:48:41 locrian9 joins (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net)
22:49:17 jrm2 joins (~jrm@freebsd/developer/jrm)
22:50:22 vchlup joins (~vchlup@nat.brnet.cz)
22:50:52 × jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3)
22:51:00 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
22:52:44 × s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Remote host closed the connection)
22:53:40 × tpefreedom quits (~tsomers@184-157-240-110.dyn.centurytel.net) (Remote host closed the connection)
22:55:35 davidfetter1 joins (~davidfett@37.120.211.188)
22:57:13 × wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 265 seconds)
22:58:35 acidjnk_new joins (~acidjnk@p200300d0c72b9586d8aaf3880c64deb7.dip0.t-ipconnect.de)
22:58:40 × stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds)
22:58:41 × jedai quits (~jedai@lfbn-dij-1-708-251.w90-100.abo.wanadoo.fr) (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/)
23:01:07 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
23:02:41 × fendor_ quits (~fendor@77.119.130.155.wireless.dyn.drei.com) (Remote host closed the connection)
23:04:04 × Varis quits (~Tadas@unaffiliated/varis) (Read error: Connection reset by peer)
23:04:46 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds)
23:05:15 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
23:06:01 pavonia joins (~user@unaffiliated/siracusa)
23:11:43 stree joins (~stree@68.36.8.116)
23:12:31 nbloomf joins (~nbloomf@2600:1700:ad14:3020:bd6d:42b9:15ae:38bf)
23:12:57 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
23:13:10 × heatsink_ quits (~heatsink@2600:1700:bef1:5e10:1cfc:5265:7008:dc13) (Remote host closed the connection)
23:17:54 × elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 268 seconds)
23:18:00 × locrian9 quits (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds)
23:18:36 × raichoo quits (~raichoo@dslb-092-073-193-252.092.073.pools.vodafone-ip.de) (Quit: Lost terminal)
23:18:44 jrm2 is now known as jrm
23:20:30 × notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 246 seconds)
23:22:53 × xff0x quits (~xff0x@2001:1a81:5267:7900:f33d:bbef:8155:bb1d) (Ping timeout: 252 seconds)
23:24:09 vgtw joins (~vgtw@gateway/tor-sasl/vgtw)
23:25:02 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:bd6d:42b9:15ae:38bf) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:26:29 xff0x joins (~xff0x@dynamic-046-114-039-051.46.114.pool.telefonica.de)
23:28:07 borne joins (~fritjof@200116b8640fd800f7ed9fd86a2491f0.dip.versatel-1u1.de)
23:32:56 myShoggoth joins (~myShoggot@75.164.73.93)
23:34:53 × endokqr quits (~kqr@vps.xkqr.org) (Ping timeout: 246 seconds)
23:36:04 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
23:36:34 × molehillish quits (~molehilli@2600:8800:8d06:1800:6438:fe04:a25d:577) (Remote host closed the connection)
23:36:38 × rzmt quits (~rzmt@87-92-180-112.rev.dnainternet.fi) (Ping timeout: 246 seconds)
23:36:59 × Putonlalla quits (~sapekiis@it-cyan.it.jyu.fi) (Ping timeout: 246 seconds)
23:37:53 Putonlalla joins (~sapekiis@it-cyan.it.jyu.fi)
23:39:23 nbloomf joins (~nbloomf@76.217.43.73)
23:39:48 rzmt joins (~rzmt@87-92-180-112.rev.dnainternet.fi)
23:42:33 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
23:43:57 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
23:44:25 × xff0x quits (~xff0x@dynamic-046-114-039-051.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
23:45:47 xff0x joins (~xff0x@2001:1a81:529e:7a00:7793:8daf:79fd:68db)
23:47:32 locrian9 joins (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net)
23:51:22 Wizek joins (uid191769@gateway/web/irccloud.com/x-npgducelboulpnpm)
23:52:39 notzmv joins (~zmv@unaffiliated/zmv)
23:54:28 × raistlin quits (~jmdurr@ool-182e0115.dyn.optonline.net) (Ping timeout: 252 seconds)
23:56:13 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
23:57:01 v01d4lph4 joins (~v01d4lph4@122.180.248.16)
23:59:44 × carlomagno1 quits (~cararell@148.87.23.11) (Remote host closed the connection)

All times are in UTC on 2021-03-27.