Home liberachat/#haskell: Logs Calendar

Logs on 2021-06-07 (liberachat/#haskell)

00:01:02 haskellGuestGuy joins (~haskellGu@81.96.113.213)
00:01:31 × ddellacosta quits (~ddellacos@89.45.224.248) (Ping timeout: 264 seconds)
00:01:36 <Flux> can i make it not recompile it every time i type stack repl hasktorch
00:02:42 × prite quits (~pritam@user/pritambaral) (Ping timeout: 264 seconds)
00:03:35 × xff0x quits (~xff0x@2001:1a81:53fc:900:3f16:186f:3986:9c65) (Ping timeout: 252 seconds)
00:04:08 xff0x joins (~xff0x@2001:1a81:53fc:900:d0f6:e7c5:21c7:3f71)
00:04:28 <Flux> what's the easiest way to install new version of ghci?
00:05:52 <haskellGuestGuy> anyone connecting to this server/channel via limeChat IRC?
00:06:19 <shapr> Flux: I use ghcup
00:06:20 <geekosaur> Flux, with stack you select a different resolver in stack.yaml
00:06:22 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
00:06:41 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
00:06:59 <geekosaur> consult stackage.org to see what resolvers come with what ghc(i) versions
00:08:25 <Flux> ghcup doesn't support 8.10.4? :0
00:08:42 <geekosaur> it does
00:08:55 <geekosaur> but stack won't use things you install with ghcup
00:09:12 <geekosaur> it uses things it installs based on the resolver you select
00:10:55 <Axman6> haskellGuestGuy: no, but if you ask your question we might be able to help anyway
00:11:07 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 264 seconds)
00:11:54 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:12:32 chris_ joins (~chris@81.96.113.213)
00:13:23 <Flux> when i type ghci --version i am getting "The Glorious Glasgow Haskell Compilation System, version 9.0.0.20210113"
00:13:25 <Flux> what is happening T_T
00:13:40 <Flux> i don't see this in my ~/.ghc
00:14:59 <geekosaur> o.O that is a beta release of what became 9.0.1
00:15:02 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
00:15:31 <Flux> how do i fix this LOL
00:15:33 <geekosaur> maerwald, any idea what's up here?
00:15:40 <yushyin> isn't it glorious? ;)
00:15:52 <shapr> Flux: how'd you get a beta release?
00:16:00 <Flux> no idea
00:16:47 × chris_ quits (~chris@81.96.113.213) ()
00:17:02 chris_ joins (~chris@81.96.113.213)
00:18:09 <yushyin> where did you get this ghci, where is the binary located? might give you a clue as to how it was installed.
00:18:11 <geekosaur> I'm going to guess you used ghcup to blindly install the latest ghc on or around 20210113, and got that prerelease
00:18:26 <geekosaur> like today there's a 20210422 prerelease of 9.2.0
00:18:33 <Flux> how do i find where the binary is located
00:18:52 × chris_ quits (~chris@81.96.113.213) (Client Quit)
00:18:55 <Flux> what should the binary be called
00:19:02 <Axman6> `which ghci`
00:19:08 <yushyin> try `which ghci' or `where ghci'
00:19:13 chris_ joins (~chris@81.96.113.213)
00:19:14 × eight quits (~eight@user/eight) (Read error: Connection reset by peer)
00:19:18 <Flux> oh it is just /usr/local/bin/ghci
00:19:18 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
00:19:24 eight joins (~eight@user/eight)
00:19:25 <chris_> l
00:19:33 × eight quits (~eight@user/eight) (Client Quit)
00:19:45 <chris_> axeman6 think i've managed to get limeChat working thx
00:19:47 <Axman6> what does `ls -l /usr/local/bin/ghci` say?
00:20:05 <Axman6> chris_: looks like it's working to me, welcome!
00:20:12 <Flux> lrwxrwxrwx 1 root root 19 Jan 16 23:04 /usr/local/bin/ghci -> ghci-9.0.0.20210113
00:20:23 <Flux> hmm i symlinked it somehow
00:20:24 <Flux> weird
00:20:46 <monochrom> "ghcup tui" exists.
00:21:00 <haskellGuestGuy> chris_ test
00:21:04 <monochrom> ghcup also makes those symlinks.
00:21:23 <haskellGuestGuy> chris_ test
00:21:41 <geekosaur> but ghcup's look like: lrwxrwxrwx 1 allbery allbery 22 Feb 7 12:42 /home/allbery/.ghcup/bin/ghci -> ../ghc/8.10.4/bin/ghci*
00:22:12 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
00:22:18 <monochrom> Ah, right.
00:23:00 <Axman6> I'm so glad ghcup exists, working with ghc versions was such a pain before it.
00:23:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
00:23:56 <yushyin> yeah, /usr/local/bin is not usually the path ghcup nor stack installs binaries to, right?
00:24:09 <monochrom> Right.
00:24:09 <geekosaur> neither one, yes
00:24:33 <geekosaur> nor post system package managers (aside from *bsd)
00:24:37 <geekosaur> *most
00:25:15 <geekosaur> that said there's also brew on macos
00:25:32 <yushyin> so check if the path is owned by your package manager and if not just rm it?
00:25:33 <geekosaur> but I'd expect that to use a cask, especially for a prerelease
00:25:35 <Flux> strange
00:26:37 <Flux> rm all 3 of these? ghc-9.0.0.20210113ghci-9.0.0.20210113ghc-pkg-9.0.0.20210113
00:27:00 <janus> Flux: you can use apt-file to check if your package manager installed those
00:27:12 <janus> if you are on a debian derivative
00:27:33 <Flux> did not know about apt-file
00:27:35 <Flux> but yes i am on ubuntu
00:27:52 <janus> but apt-file may not work well with third-party packages, i think
00:27:57 × chris_ quits (~chris@81.96.113.213) ()
00:28:03 <janus> so maybe better try with "dpkg -L ghc<tab>"
00:28:15 <janus> and you can use tab completion to try to find a package name
00:28:23 <Flux> tab completion only shows ghc and ghc-8.8.2
00:28:40 <janus> ok well then i guess it's not from the package manager
00:28:56 <janus> Flux: maybe reconsider how many sources you install ghc from
00:29:01 chris_ joins (~chris@81.96.113.213)
00:29:07 <Flux> whoops no idea
00:29:10 <Flux> now i know
00:29:12 <janus> because i find it confusing to have one from ghcup, one from the OS, one from stack
00:29:24 <Flux> yeah
00:29:31 <Flux> this is likely from when i had no idea what was happening
00:29:37 <Flux> should i just use cabal or something instead
00:29:55 <Flux> will that resolve my issues
00:30:10 ddellacosta joins (~ddellacos@89.46.62.43)
00:30:11 <janus> depends on the issue ;)
00:30:18 <sclv> cabal is a distinct tool from ghc installers
00:30:28 <sclv> you use it in conjunction with a ghc from ghcup or the os, not as opposed to
00:30:35 <Flux> yeah i meant
00:30:37 <Flux> cabal as opposed to stack
00:30:38 <Flux> :P
00:31:09 <sclv> well i tend to encourage people using cabal over stack, but i don't want to promise it has anything to do with this particular issue :-)
00:31:34 ddellaco_ joins (~ddellacos@89.46.62.157)
00:31:56 <janus> since you're working with a giant complicated project like hasktorch, maybe ask them what they use, and then use the same
00:31:59 <sclv> note that ghcup installs to .ghcup usually and you should make sure your .bashrc will source ~/.ghcup/env to automatically get its installed versions in scope
00:32:08 <Flux> cabal and stack options both exist
00:32:15 <Flux> for hasktorch
00:32:24 <Flux> i think i chose stack randomly
00:33:20 <sclv> if your ghc is coming from ghcup you can just run "ghcup" to get a nice help that explains how to pick and switch ghcs
00:34:05 <janus> Flux: try doing ls /usr/local/bin/*20210113 because i think there are more binaries than the ones you listed
00:34:13 chris_ is now known as teaSlurper
00:34:51 × ddellacosta quits (~ddellacos@89.46.62.43) (Ping timeout: 252 seconds)
00:35:32 <geekosaur> have they fixed the bit where hsc2hs and friends are only installed nonversioned yet? (hm, I should check that locally)
00:35:45 × ddellaco_ quits (~ddellacos@89.46.62.157) (Ping timeout: 245 seconds)
00:35:52 <geekosaur> ah, yes
00:36:09 <janus> ghcup versions all of them, iirc
00:36:49 <Flux> if i install a version of ghc with ghcup
00:36:53 <Flux> am i supposed to be able to run ghci
00:36:54 <yushyin> is this what happens if people randomly `curl ... | sh' from the internet? :)
00:38:34 <geekosaur> source ~/.ghcup/env
00:38:34 <geekosaur> and arrange for your shell to do that on startup, so it can find things installed via ghcup
00:38:34 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
00:38:35 <yushyin> Flux: if you selected a ghc version as your default in ghcup and set up your PATH correctly, yes.
00:38:36 <glguy> sclv, I stopped trying to figure out the command line (not that it was particularly complicated) and always use `ghcup tui` now
00:38:44 × softwarm quits (~softwarm@2600:8801:db01:8f0:60c3:f8d4:403b:5c34) (Quit: Client closed)
00:38:50 geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com)
00:39:00 <geekosaur> hm, I stand corrected, I see no env in there on my system. I just added ~/.ghcup/bin to $PATH locally but my $PATH management is somewhat complex
00:39:05 ddellacosta joins (~ddellacos@86.106.121.235)
00:40:17 <Flux> yushyin: how do i set a ghc version as default in ghcup
00:40:17 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
00:40:27 <Flux> is it just ghcup set
00:40:39 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
00:40:44 <geekosaur> or the equivalent using ghcup tui, yes
00:40:45 <yushyin> try `ghcup tui'
00:40:54 <Flux> oh nice
00:40:57 <Flux> looks nice
00:43:30 lavaman joins (~lavaman@98.38.249.169)
00:43:51 <Flux> hmm so if i want to use stack and ghcup how would that work
00:44:04 <Flux> + what are the things to be cautious about
00:44:53 <sclv> they're orthogonal
00:45:00 <sclv> stack manages ghcs in its own special way and ghcup in another
00:45:03 <sclv> the two never intersect
00:45:05 <hololeap> is there any big reason why type families cannot be partially applied, or is it just something that is in the process of being implemented?
00:45:31 <boxscape> hololeap there are reasons but it is in the process of being proposed https://github.com/ghc-proposals/ghc-proposals/pull/242
00:45:34 <sclv> so they don't work together, but they don't hurt one another (except you get even more ghc installs littering your system)
00:46:01 <hololeap> boxscape: cool thanks
00:46:31 <boxscape> hololeap the main reason is that when you know `f x ~ g y` you can usually deduce that `x ~ y` and `f ~ g`, but that's not true if f and g are type families, which makes things more complicated
00:46:44 <sclv> here's a direct link to the proposal: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0242-unsaturated-type-families.rst
00:47:22 <boxscape> hololeap oh whoops it was actually already accepted so I guess it is in the process of being implemented
00:48:39 × haskellGuestGuy quits (~haskellGu@81.96.113.213) (Quit: Client closed)
00:51:44 <Flux> are there nice resources to understand how stack works
00:51:57 <Flux> i feel like there are plenty of half-detailed tutorials
00:52:07 <Axman6> what about the stack documentation?
00:52:23 yd502 joins (~yd502@180.168.212.6)
00:52:32 <Flux> i am generally too lazy to read through documentation in full whoops
00:52:53 <Axman6> so the answer is yes, you just don't want to read it ;)
00:52:57 <yushyin> wow ...
00:53:13 <Flux> lmao
00:53:20 <Flux> you right
00:53:36 <Flux> sometimes i just want to absorb information effortlessly
00:53:36 yd502_ joins (~yd502@180.168.212.6)
00:53:36 <Flux> :)
00:53:43 × vicfred quits (~vicfred@user/vicfred) (Ping timeout: 264 seconds)
00:53:48 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:56:09 × dcompoze quits (~dcompoze@5E98D6D9.static.tld.pl) (Quit: WeeChat 3.1)
00:56:43 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 264 seconds)
01:02:07 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 264 seconds)
01:02:52 × ddellacosta quits (~ddellacos@86.106.121.235) (Remote host closed the connection)
01:09:20 ddellacosta joins (~ddellacos@86.106.143.144)
01:09:45 <Flux> is there a way to make ghci not show all the packages being loaded
01:09:57 <geekosaur> -v0, I think
01:10:45 <Flux> stack ghci -v0?
01:10:47 <Flux> didn't seem to work
01:11:00 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer)
01:11:28 <geekosaur> with stack you'd need: stack ghci --ghci-options=-v0 or something like that
01:12:10 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:12:12 <Flux> o
01:15:09 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
01:16:03 × xff0x quits (~xff0x@2001:1a81:53fc:900:d0f6:e7c5:21c7:3f71) (Ping timeout: 272 seconds)
01:17:19 xff0x joins (~xff0x@2001:1a81:5240:1700:ccf7:e726:9438:c4ca)
01:17:50 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
01:18:27 teaSlurper joins (~chris@81.96.113.213)
01:18:42 yd502_ joins (~yd502@180.168.212.6)
01:19:39 × Flux quits (~Flux@41337027.cst.lightpath.net) (Quit: Client closed)
01:23:02 teaSlurp_ joins (~chris@81.96.113.213)
01:23:07 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 268 seconds)
01:30:17 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Excess Flood)
01:30:27 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
01:30:39 × hololeap quits (hololeap@user/hololeap) (Read error: Connection reset by peer)
01:32:03 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
01:32:12 × gmc quits (sid58314@charlton.irccloud.com) (Ping timeout: 244 seconds)
01:32:21 gmc joins (sid58314@id-58314.charlton.irccloud.com)
01:32:43 × Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 244 seconds)
01:33:03 Katarushisu joins (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net)
01:33:09 × Square quits (~a@178.62.91.8) (Ping timeout: 272 seconds)
01:33:47 × jlamothe quits (~jlamothe@198.251.57.81) (Ping timeout: 272 seconds)
01:33:59 DontKnowWhatImDo joins (~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net)
01:34:01 jlamothe joins (~jlamothe@198.251.57.81)
01:34:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
01:34:56 Square joins (~a@178.62.91.8)
01:35:46 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
01:35:58 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
01:36:01 × ddellacosta quits (~ddellacos@86.106.143.144) (Remote host closed the connection)
01:36:20 × SeemedLikeAGoodI quits (~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net) (Ping timeout: 244 seconds)
01:39:03 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
01:39:26 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds)
01:39:35 <cdsmith> I want some kind of constraint that lets me access a type-level Symbol at runtime as a String. Does that sound like something that exists?
01:39:44 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
01:39:55 <Axman6> KnownSymbol?
01:39:56 <geekosaur> KnownSymbol?
01:40:03 <Axman6> @quote stereo
01:40:03 <lambdabot> monochrom says: Welcome to #haskell, where @remember's are in majestic stereo!
01:40:07 <cdsmith> Ah, sounds promising. Yes
01:42:45 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
01:43:57 × li quits (~li@libera/staff/li) (Read error: Connection reset by peer)
01:44:42 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
01:44:48 li joins (~li@libera/staff/li)
01:45:38 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
01:45:49 × noddy quits (~user@user/noddy) (Ping timeout: 272 seconds)
01:46:00 <int-e> @quote fugue
01:46:00 <lambdabot> monochrom says: Welcome to #haskell, where your questions are answered in contrapuntal fugues.
01:46:20 noddy joins (~user@user/noddy)
01:49:15 × whiteline quits (~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se) (Ping timeout: 244 seconds)
01:49:27 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
01:49:37 whiteline joins (~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se)
01:49:46 × matijja quits (~matijja@193.77.181.208) (Ping timeout: 244 seconds)
01:50:30 matijja joins (~matijja@193.77.181.208)
01:50:50 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
01:51:25 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
01:51:50 × ell quits (~ellie@user/ellie) (Ping timeout: 244 seconds)
01:52:03 ell joins (~ellie@user/ellie)
01:52:47 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
01:54:34 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
01:57:48 × polux quits (~polux@51.15.169.172) (Read error: Connection reset by peer)
01:57:53 polux0 joins (~polux@51.15.169.172)
01:58:52 × blizzard quits (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 272 seconds)
01:59:43 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 264 seconds)
02:00:19 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 264 seconds)
02:00:26 ddellacosta joins (~ddellacos@86.106.143.248)
02:00:55 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
02:00:58 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
02:01:08 × whiteline quits (~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se) (Ping timeout: 244 seconds)
02:01:25 jespada joins (~jespada@90.254.242.55)
02:01:27 × Adeon quits (sid418992@tooting.irccloud.com) (Ping timeout: 272 seconds)
02:01:27 × shachaf quits (~shachaf@user/shachaf) (Ping timeout: 272 seconds)
02:01:31 whiteline joins (~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se)
02:01:35 shachaf joins (~shachaf@user/shachaf)
02:01:37 Adeon joins (sid418992@id-418992.tooting.irccloud.com)
02:02:05 × teaSlurp_ quits (~chris@81.96.113.213) (Remote host closed the connection)
02:02:21 blizzard joins (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com)
02:02:42 teaSlurper joins (~chris@81.96.113.213)
02:05:24 yd502 joins (~yd502@180.168.212.6)
02:06:05 × tapas quits (sid467876@charlton.irccloud.com) (Ping timeout: 272 seconds)
02:06:07 yd502_ joins (~yd502@180.168.212.6)
02:06:14 tapas joins (sid467876@id-467876.charlton.irccloud.com)
02:07:23 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:07:23 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (strontium.libera.chat (Nickname regained by services)))
02:07:23 finn_elija is now known as FinnElija
02:07:59 yd502__ joins (~yd502@180.168.212.6)
02:08:25 × Ekho quits (~Ekho@user/ekho) (Ping timeout: 272 seconds)
02:08:25 × int-e quits (~noone@int-e.eu) (Ping timeout: 272 seconds)
02:08:43 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
02:09:15 × urdh quits (~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 272 seconds)
02:10:00 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
02:10:03 urdh joins (~urdh@h88-129-148-132.cust.a3fiber.se)
02:11:06 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
02:11:41 teaSlurper joins (~chris@81.96.113.213)
02:13:00 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
02:13:11 yd502_ joins (~yd502@180.168.212.6)
02:13:27 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
02:13:29 × hueso quits (~root@152.170.216.40) (Ping timeout: 272 seconds)
02:13:45 Ekho joins (~Ekho@user/ekho)
02:13:57 hueso joins (~root@152.170.216.40)
02:16:01 × thaumavorio quits (~thaumavor@thaumavor.io) (Ping timeout: 272 seconds)
02:16:19 int-e joins (~noone@int-e.eu)
02:16:51 × yd502__ quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
02:16:51 × meejah quits (~meejah@rutas.meejah.ca) (Ping timeout: 272 seconds)
02:16:59 meejah joins (~meejah@rutas.meejah.ca)
02:17:20 thaumavorio joins (~thaumavor@thaumavor.io)
02:18:36 eight joins (~eight@user/eight)
02:19:44 × wolfshappen quits (~waff@irc.furworks.de) (Ping timeout: 244 seconds)
02:20:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:20:17 × ddellacosta quits (~ddellacos@86.106.143.248) (Remote host closed the connection)
02:21:13 wolfshappen joins (~waff@irc.furworks.de)
02:24:46 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
02:26:06 × td_ quits (~td@muedsl-82-207-238-175.citykom.de) (Ping timeout: 264 seconds)
02:26:47 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 272 seconds)
02:26:55 hyiltiz joins (~quassel@31.220.5.250)
02:27:57 td_ joins (~td@muedsl-82-207-238-142.citykom.de)
02:28:03 × ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds)
02:28:07 yd502__ joins (~yd502@180.168.212.6)
02:28:09 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
02:28:17 ralu joins (~ralu@static.211.245.203.116.clients.your-server.de)
02:29:07 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
02:30:08 lavaman joins (~lavaman@98.38.249.169)
02:31:17 ddellacosta joins (~ddellacos@89.46.62.38)
02:32:07 × myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds)
02:33:19 × blizzard quits (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 272 seconds)
02:33:39 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
02:35:43 × ddellacosta quits (~ddellacos@89.46.62.38) (Ping timeout: 264 seconds)
02:35:51 × yd502__ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
02:36:12 yd502 joins (~yd502@180.168.212.6)
02:36:19 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
02:37:02 blizzard joins (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com)
02:40:38 ephemient joins (uid407513@id-407513.tooting.irccloud.com)
02:42:47 wei2912 joins (~wei2912@112.199.250.21)
02:42:53 yd502_ joins (~yd502@180.168.212.6)
02:43:27 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
02:45:38 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
02:45:55 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
02:47:50 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
02:50:25 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
02:52:14 sh9 joins (~sh9@softbank060116136158.bbtec.net)
02:52:31 myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net)
02:53:35 <teaSlurper> how do you exit ghci repl
02:53:53 ddellacosta joins (~ddellacos@86.106.143.40)
02:54:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
02:54:47 <teaSlurper> got it ctrl + d
02:55:22 <Axman6> you can also use :quit (or just :q)
02:55:45 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
02:57:23 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
02:58:39 × ddellacosta quits (~ddellacos@86.106.143.40) (Ping timeout: 272 seconds)
03:01:47 ddellacosta joins (~ddellacos@86.106.143.196)
03:03:54 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
03:05:07 × boxscape quits (~boxscape@user/boxscape) (Ping timeout: 264 seconds)
03:05:16 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
03:09:24 ordinate joins (~ordinate@c-68-38-144-3.hsd1.in.comcast.net)
03:09:25 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
03:09:32 <ordinate> good evening everyone
03:11:18 thiross joins (~thiross@39.170.37.82)
03:15:25 × thiross quits (~thiross@39.170.37.82) (Remote host closed the connection)
03:17:21 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
03:17:39 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
03:21:03 lavaman joins (~lavaman@98.38.249.169)
03:21:25 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
03:23:40 vwork joins (~vwork@50-249-207-86-static.hfc.comcastbusiness.net)
03:23:55 <vwork> .
03:24:50 yd502 joins (~yd502@180.168.212.6)
03:25:31 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
03:25:37 on9er joins (~WebUser@2a04:92c7:e:64e::5438)
03:26:28 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
03:27:25 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
03:28:27 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
03:29:07 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
03:29:40 Lord_of_Life_ is now known as Lord_of_Life
03:32:13 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
03:32:19 ddellaco_ joins (~ddellacos@89.45.224.100)
03:33:32 <teaSlurper> in cabal if i want to export something i need to declare it in the exposed modules in .cabal file right?
03:34:17 × ddellaco_ quits (~ddellacos@89.45.224.100) (Remote host closed the connection)
03:34:25 yd502 joins (~yd502@180.168.212.6)
03:35:15 × ddellacosta quits (~ddellacos@86.106.143.196) (Ping timeout: 252 seconds)
03:35:25 Toast52_ joins (~Toast52@151.192.167.120)
03:35:39 otto_s_ joins (~user@p5de2f9fb.dip0.t-ipconnect.de)
03:36:51 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
03:39:34 × otto_s quits (~user@p4ff27879.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
03:40:08 noglog joins (~egigs@097-101-149-192.res.spectrum.com)
03:40:30 Abhoc joins (~Fred@107.126.47.49)
03:41:43 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 264 seconds)
03:45:48 a6a45081-2b83 joins (~aditya@223.235.239.159)
03:47:21 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
03:54:51 × alx741 quits (~alx741@181.196.69.96) (Quit: alx741)
03:56:27 lavaman joins (~lavaman@98.38.249.169)
03:56:54 × on9er quits (~WebUser@2a04:92c7:e:64e::5438) (Quit: Leaving)
03:57:40 <ordinate> yeah thats how it works
03:57:47 <ordinate> afaik
04:00:16 <teaSlurper> thx @ordinate
04:00:31 <ordinate> npnp! lemme kno if i got it wrong
04:00:48 <teaSlurper> i need to learn a bit of haskell for my dissertation project
04:00:54 <teaSlurper> for computer music
04:00:58 <teaSlurper> based thing
04:01:06 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
04:03:02 <ordinate> oh dang, computer music is literally my entire jam
04:03:13 <ordinate> pure data?
04:05:50 × sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1)
04:06:46 <teaSlurper> is pure data written in haskell? i'm going through a haskell based book called school of music
04:06:52 <teaSlurper> uses a haskell lib called euterpea
04:07:10 <teaSlurper> teaches u haskell and music concepts at same time
04:07:29 wishful-night joins (~wishful-n@2804:14c:c0:8dbb:3f6f:c291:c6bb:42f8)
04:09:08 <ordinate> nah pd is written in c, just the first thing that springs to mind when the phrase "computer music" is brought up
04:09:19 <ordinate> ill have to check out that book tho
04:11:07 <teaSlurper> cool
04:11:17 <teaSlurper> what are you using haskell for @ordinate?
04:11:37 <ordinate> surprisingly, also multimedia
04:12:14 <ordinate> im currently developing my first "real" haskell project which is a newgrounds game of all things
04:12:24 <ordinate> felt like that was funny enough to pursue for 3+ months so far
04:12:28 <teaSlurper> ohh, game development?
04:12:58 <teaSlurper> is the game playable?
04:13:20 <ordinate> yes! though not currently all there graphically
04:13:31 × myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds)
04:13:34 <teaSlurper> github or?
04:13:56 <ordinate> https://github.com/nikshalark/apl is what i have so far
04:14:11 <ordinate> i'm no professional, excuse the mess
04:14:21 <Toast52_> Isn't newgrounds flash games? Or are new games using html5
04:14:43 <ordinate> yeah newgrounds accepts html5 now
04:14:47 <ordinate> has for a few years
04:15:06 <ordinate> would be absolutely hilarious to use a haskell2as package
04:16:42 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
04:16:42 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
04:16:46 <teaSlurper> i followed you on there
04:16:57 <teaSlurper> i may try and run the project tomorrow
04:17:05 <teaSlurper> miso is like a gui haskell library is it?
04:17:10 <ordinate> thanks! i wouldnt advise that!
04:17:25 <ordinate> miso is a haskell library for frontend web development
04:17:33 <teaSlurper> i see
04:17:33 <wishful-night> chess in haskell is cool, I tried implementing vanilla chess in haskell but then when it came time to implement move generation and validation I realized my data structures sucked and I should've gone with a bitboard, ended up just getting lazy and moving on to another project
04:17:36 <ordinate> which, as far as i understand, is all the parts the user can look at
04:17:56 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:18:16 <ordinate> running the project as of right now will just give you the title screen, all the actual game code is written but not yet hooked onto miso
04:18:39 <teaSlurper> i see, so you have the game logic, but not the view/ui code linked up?
04:18:45 <ordinate> not in the slightest
04:19:08 <teaSlurper> are you going to use a design pattern of some sort to decouple the ui/view code from game logic code?
04:20:03 <teaSlurper> chess seems like quite a complex thing to implement
04:20:34 <ordinate> i agree chess is extremely fucking complicated, can attest as im rated a measly 600 on chess.com
04:22:12 <ordinate> i dropped out of college, i have no knowledge of "design patterns" tho they seem incredibly useful
04:23:17 <dibblego> this is good practice for implementing chess: https://github.com/system-f/fp-course/blob/master/projects/TicTacToe/TicTacToe.markdown
04:24:14 lavaman joins (~lavaman@98.38.249.169)
04:24:27 <ordinate> my method would be to have some function that takes my board representation and displays it as whatever canvas bullshit i need
04:25:16 <teaSlurper> yeah
04:25:33 <ordinate> augh the fp-course.... still have yet to start on it. i have so many THINGS to read
04:26:31 <ordinate> agon.pdf, simple ci server in haskell ebook, haskell in-depth, most of the stuff on stephen diehl's website
04:27:34 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds)
04:27:54 × a6a45081-2b83 quits (~aditya@223.235.239.159) (Quit: Konversation terminated!)
04:31:57 <ordinate> sorry for ramblin!!! talkin on irc is hard to keep terse
04:32:46 ddellacosta joins (~ddellacos@89.46.62.56)
04:32:53 vwork parts (~vwork@50-249-207-86-static.hfc.comcastbusiness.net) (Leaving)
04:33:10 a6a45081-2b83 joins (~aditya@223.235.239.159)
04:33:41 × a6a45081-2b83 quits (~aditya@223.235.239.159) (Client Quit)
04:34:13 × hmmmas quits (~chenqisu1@183.217.201.236) (Quit: Leaving.)
04:36:10 ddellaco_ joins (~ddellacos@89.45.224.230)
04:37:24 × ddellacosta quits (~ddellacos@89.46.62.56) (Ping timeout: 252 seconds)
04:37:45 tose joins (~tose@ip-85-160-1-174.eurotel.cz)
04:40:54 × ddellaco_ quits (~ddellacos@89.45.224.230) (Ping timeout: 245 seconds)
04:41:03 × Toast52_ quits (~Toast52@151.192.167.120) (Quit: Leaving)
04:42:27 pe200012 joins (~pe200012@58.248.179.178)
04:42:28 × pe200012 quits (~pe200012@58.248.179.178) (Remote host closed the connection)
04:42:54 pe200012 joins (~pe200012@58.248.179.178)
04:44:20 eggplant_ joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
04:44:32 × ordinate quits (~ordinate@c-68-38-144-3.hsd1.in.comcast.net) (Quit: Leaving)
04:45:55 × Toast52 quits (~Toast52@151.192.167.120) (Ping timeout: 264 seconds)
04:46:04 schuelermine joins (~schuelerm@user/schuelermine)
04:46:34 SkamDart joins (~SkamDart@ip70-187-232-148.oc.oc.cox.net)
04:46:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d950:8679:5786:8899) (Ping timeout: 272 seconds)
04:48:27 × schuelermine quits (~schuelerm@user/schuelermine) (Client Quit)
04:50:17 × tose quits (~tose@ip-85-160-1-174.eurotel.cz) (Quit: WeeChat 3.0)
04:50:33 tose joins (~tose@ip-85-160-1-174.eurotel.cz)
04:51:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:55:32 <SkamDart> @help
04:55:32 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
04:55:38 <SkamDart> list
04:56:17 <SkamDart> @list
04:56:17 <lambdabot> What module? Try @listmodules for some ideas.
04:56:20 <SkamDart> @listmodules
04:56:21 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
04:56:21 <lambdabot> seen slap source spell system tell ticker todo topic type undo unlambda unmtl version where
04:56:31 <SkamDart> @hoogle
04:56:31 <lambdabot> package base
04:56:31 <lambdabot> package bytestring
04:56:31 <lambdabot> package containers
04:56:40 <SkamDart> @hoogle a -> a
04:56:40 <lambdabot> Prelude id :: a -> a
04:56:40 <lambdabot> Data.Function id :: a -> a
04:56:40 <lambdabot> GHC.Base breakpoint :: a -> a
04:58:16 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
04:59:24 <dminuoso> SkamDart: You can use a /query to play with lambdabot
05:08:19 ddellacosta joins (~ddellacos@86.106.143.100)
05:11:30 × noglog quits (~egigs@097-101-149-192.res.spectrum.com) (Quit: Reconnecting)
05:12:59 × ddellacosta quits (~ddellacos@86.106.143.100) (Ping timeout: 245 seconds)
05:15:42 noglog joins (~egigs@097-101-149-192.res.spectrum.com)
05:17:15 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
05:18:14 × nattiestnate quits (~nate@180.242.128.159) (Quit: WeeChat 3.1)
05:18:19 × tose quits (~tose@ip-85-160-1-174.eurotel.cz) (Ping timeout: 264 seconds)
05:23:22 jorjor joins (~jorgemene@85.251.190.6.dyn.user.ono.com)
05:25:16 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: node-irc says goodbye)
05:25:31 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
05:25:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
05:25:41 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Client Quit)
05:25:58 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
05:26:32 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
05:26:36 yd502_ joins (~yd502@180.168.212.6)
05:28:20 vaibhavsagar[m] parts (~vaibhavsa@2001:470:69fc:105::ffe) ()
05:28:28 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
05:28:47 lavaman joins (~lavaman@98.38.249.169)
05:29:39 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 245 seconds)
05:29:57 × pe200012 quits (~pe200012@58.248.179.178) (Remote host closed the connection)
05:30:22 pe200012 joins (~pe200012@58.248.179.178)
05:33:19 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
05:33:45 Pixi_ is now known as Pixi
05:35:43 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:36:44 tose joins (~tose@ip-85-160-1-174.eurotel.cz)
05:37:24 polux0 is now known as polux
05:37:25 × unyu quits (~pyon@user/pyon) (Ping timeout: 245 seconds)
05:37:51 vicfred joins (~vicfred@user/vicfred)
05:39:21 unyu joins (~pyon@user/pyon)
05:41:39 ddellacosta joins (~ddellacos@89.45.224.230)
05:41:58 Toast52 joins (~Toast52@151.192.167.120)
05:46:31 × ddellacosta quits (~ddellacos@89.45.224.230) (Ping timeout: 264 seconds)
05:46:45 × noglog quits (~egigs@097-101-149-192.res.spectrum.com) (Quit: Reconnecting)
05:46:57 noglog joins (~egigs@097-101-149-192.res.spectrum.com)
05:48:13 × noglog quits (~egigs@097-101-149-192.res.spectrum.com) (Client Quit)
05:48:20 noglog_ joins (~egigs@097-101-149-192.res.spectrum.com)
05:49:20 Bartosz joins (~textual@24.35.90.211)
05:50:11 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
05:53:49 × jorjor quits (~jorgemene@85.251.190.6.dyn.user.ono.com) (Ping timeout: 245 seconds)
05:54:57 × Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
05:55:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
06:01:28 × noglog_ quits (~egigs@097-101-149-192.res.spectrum.com) (Quit: .)
06:02:01 × Abhoc quits (~Fred@107.126.47.49) (Quit: Leaving)
06:02:48 lavaman joins (~lavaman@98.38.249.169)
06:02:59 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
06:04:06 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
06:06:49 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
06:07:00 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
06:11:19 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
06:12:02 dunkeln joins (~dunkeln@94.129.65.28)
06:13:06 imdoor joins (~imdoor@balticom-142-78-50.balticom.lv)
06:21:13 nschoe joins (~quassel@2a01:e0a:8e:a190:458d:db56:1c93:24ea)
06:22:04 ddellacosta joins (~ddellacos@86.106.143.87)
06:26:43 × ddellacosta quits (~ddellacos@86.106.143.87) (Ping timeout: 264 seconds)
06:28:28 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
06:28:50 img joins (~img@user/img)
06:31:34 × img quits (~img@user/img) (Client Quit)
06:32:13 img joins (~img@user/img)
06:33:12 chele joins (~chele@user/chele)
06:33:54 ddellacosta joins (~ddellacos@89.46.62.125)
06:34:02 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
06:34:55 × tose quits (~tose@ip-85-160-1-174.eurotel.cz) (Quit: WeeChat 3.0)
06:37:40 ThatsWhatIDo joins (~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net)
06:38:43 × ddellacosta quits (~ddellacos@89.46.62.125) (Ping timeout: 264 seconds)
06:39:30 × DontKnowWhatImDo quits (~whateverm@pool-108-54-183-148.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
06:42:08 gehmehgeh joins (~user@user/gehmehgeh)
06:42:35 lortabac joins (~lortabac@2a01:e0a:541:b8f0:8fa1:cc04:6abc:7131)
06:43:12 × aerona quits (~aerona@2600:6c54:4600:f300:1c:eb15:276e:4179) (Quit: Leaving)
06:43:53 hmmmas joins (~chenqisu1@183.217.201.236)
06:44:16 × wishful-night quits (~wishful-n@2804:14c:c0:8dbb:3f6f:c291:c6bb:42f8) (Quit: Client closed)
06:45:23 jorjor joins (~jorgemene@85.251.190.6.dyn.user.ono.com)
06:47:58 jakalx parts (~jakalx@base.jakalx.net) ()
06:51:51 jakalx joins (~jakalx@base.jakalx.net)
06:53:38 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
06:57:29 lavaman joins (~lavaman@98.38.249.169)
06:57:48 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
06:58:45 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
06:58:46 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Client Quit)
07:02:03 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
07:06:23 bfrk joins (~Thunderbi@200116b8451fe900af67d936efb17ea9.dip.versatel-1u1.de)
07:07:15 dunkeln joins (~dunkeln@94.129.65.28)
07:10:20 michalz joins (~user@185.246.204.43)
07:12:06 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
07:12:50 cfricke joins (~cfricke@user/cfricke)
07:16:08 × Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:16:26 × SkamDart quits (~SkamDart@ip70-187-232-148.oc.oc.cox.net) (Quit: Lost terminal)
07:16:33 benin03 joins (~benin@183.82.206.136)
07:17:05 × xff0x quits (~xff0x@2001:1a81:5240:1700:ccf7:e726:9438:c4ca) (Ping timeout: 268 seconds)
07:17:11 fabfianda joins (~fabfianda@net-93-148-121-206.cust.vodafonedsl.it)
07:17:28 xff0x joins (~xff0x@2001:1a81:5240:1700:e30e:a0ca:64b7:1a12)
07:21:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:26:09 hylisper joins (~ykm@111.119.208.67)
07:27:09 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 244 seconds)
07:27:22 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
07:28:24 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
07:29:05 × mnrmnaugh quits (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 245 seconds)
07:29:31 × gawen quits (~gawen@user/gawen) (Ping timeout: 272 seconds)
07:29:52 gawen joins (~gawen@user/gawen)
07:30:47 × emergence quits (~emergence@vm0.max-p.me) (Ping timeout: 272 seconds)
07:30:58 emergence joins (~emergence@vm0.max-p.me)
07:33:52 lavaman joins (~lavaman@98.38.249.169)
07:34:00 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
07:37:50 kuribas joins (~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be)
07:38:07 ddellacosta joins (~ddellacos@89.45.224.61)
07:38:43 × pavonia quits (~user@user/siracusa) (Ping timeout: 264 seconds)
07:39:18 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
07:39:53 <kuribas> I have DuplicateRecordFields in my project.cabal, but still flycheck is complaining about it...
07:42:32 × michalz quits (~user@185.246.204.43) (Read error: No route to host)
07:42:34 × ddellacosta quits (~ddellacos@89.45.224.61) (Ping timeout: 245 seconds)
07:42:58 mc47 joins (~yecinem@89.246.239.190)
07:42:59 × ell quits (~ellie@user/ellie) (Quit: The Lounge - https://thelounge.chat)
07:43:20 ell joins (~ellie@user/ellie)
07:43:24 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
07:46:42 agumonkey joins (~user@88.160.31.174)
07:51:14 × sm2n quits (~sm2n@user/sm2n) (Read error: Connection reset by peer)
07:51:28 sm2n joins (~sm2n@user/sm2n)
07:53:40 <kuribas> Multiple declarations of ‘id_field’
07:53:42 <kuribas> etc...
07:53:49 <kuribas> cabal new-build works just fine
07:55:03 × Guest5439 quits (~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com) (Ping timeout: 272 seconds)
07:55:16 ubuntu joins (~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com)
07:55:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
07:55:39 ubuntu is now known as Guest2041
07:55:49 yd502 joins (~yd502@180.168.212.6)
07:56:21 <kuribas> back to huge list in each file I guess, **sigh**
07:57:09 <kuribas> I don't even get why it's recompiling it...
07:57:16 <kuribas> Maybe because of the template haskell?
07:58:09 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
07:58:53 pavonia joins (~user@user/siracusa)
07:59:08 × imdoor quits (~imdoor@balticom-142-78-50.balticom.lv) (Quit: imdoor)
08:00:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:01:41 × kuribas quits (~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
08:01:57 kuribas joins (~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be)
08:02:21 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
08:02:31 <kuribas> haskell tooling gets in the way, once again...
08:03:09 zhe joins (~chatzilla@183.233.237.114)
08:04:20 pera joins (~pera@user/pera)
08:04:33 × edwtjo quits (~edwtjo@user/edwtjo) (Ping timeout: 272 seconds)
08:04:41 lavaman joins (~lavaman@98.38.249.169)
08:04:56 edwtjo joins (~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se)
08:04:56 × edwtjo quits (~edwtjo@h-79-136-7-145.A213.priv.bahnhof.se) (Changing host)
08:04:56 edwtjo joins (~edwtjo@user/edwtjo)
08:05:51 × agumonkey quits (~user@88.160.31.174) (Ping timeout: 252 seconds)
08:07:11 hendursa1 joins (~weechat@user/hendursaga)
08:09:09 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
08:10:37 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds)
08:13:20 dunkeln joins (~dunkeln@94.129.65.28)
08:18:16 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
08:18:18 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:18:29 × eldritch_ quits (~eldritch@134.209.221.71) (Ping timeout: 272 seconds)
08:18:43 eldritch_ joins (~eldritch@134.209.221.71)
08:19:45 agumonkey joins (~user@88.160.31.174)
08:20:49 × koolazer quits (~koo@user/koolazer) (Ping timeout: 272 seconds)
08:21:07 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:21:08 koolazer joins (~koo@user/koolazer)
08:21:12 lavaman joins (~lavaman@98.38.249.169)
08:22:25 × zhe quits (~chatzilla@183.233.237.114) (Quit: ChatZilla 0.9.96 [SeaMonkey 2.53.7.1/20210410170740])
08:23:10 × eggplant_ quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
08:23:14 mpt joins (~tom@2a02:908:1862:49e0::5)
08:25:01 × sshine quits (~simon@hubris.eta.solutions) (Ping timeout: 244 seconds)
08:25:09 sshine joins (~simon@hubris.eta.solutions)
08:25:29 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
08:25:32 × Eoco quits (~ian@x-160-94-179-157.acm.umn.edu) (Ping timeout: 244 seconds)
08:25:49 Eoco joins (~ian@x-160-94-179-157.acm.umn.edu)
08:28:58 <tomsmeding> kuribas: I think the default-extensions field in a .cabal file aren't read by ghci; perhaps via a roundabout way this is the same thing?
08:29:15 <kuribas> perhaps
08:29:30 <kuribas> I thought they *where* read by ghci?
08:30:18 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
08:31:56 <tomsmeding> kuribas: tbh I don't know, I'm only going off this comment here: https://github.com/AccelerateHS/accelerate/blob/master/accelerate.cabal#L562
08:34:04 <tomsmeding> kuribas: perhaps at some point we'll have -XGHC2021, maybe that will help your case :)
08:34:51 <kuribas> tomsmeding: I just don't feel like debugging and doing tooling stuff at this point.
08:35:57 agumonke` joins (~user@88.160.31.174)
08:37:34 × agumonkey quits (~user@88.160.31.174) (Ping timeout: 245 seconds)
08:38:13 <kuribas> tomsmeding: flycheck has worked for my thusfar.
08:38:46 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:39:00 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
08:39:23 <tomsmeding> kuribas: including default-extensions from the cabal file?
08:39:47 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
08:40:07 <kuribas> I never used that before
08:41:40 <tomsmeding> hm a 'cabal repl' in a random project does seem to pick up default-extensions
08:41:42 <tomsmeding> ¯\_(ツ)_/¯
08:42:07 <kuribas> maybe my ghc is too old?
08:42:38 <tomsmeding> wouldn't expect an issue like this to happen with old ghcs specifically, but how old? :p
08:43:59 <kuribas> 8.6.5
08:45:39 yd502_ joins (~yd502@180.168.212.6)
08:48:19 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 264 seconds)
08:49:30 <tomsmeding> kuribas: can you try to run 'cabal repl' and then ':set' inside this project? https://paste.tomsmeding.com/EfGGcx3C
08:49:40 <tomsmeding> (protip: there's the "Download paste" button at the bottom)
08:50:13 <kuribas> tomsmeding: I don't think flycheck uses the repl
08:51:39 <kuribas> :set to what?
08:52:28 <kuribas> options currently set: none. base language is: Haskell2010 with the following modifiers: -XExplicitForAll -XPatternSignatures -XScopedTypeVariables
08:52:28 <kuribas>
08:52:59 <kuribas> looks like it does set the extension in ghci
08:53:06 ddellacosta joins (~ddellacos@86.106.121.165)
08:53:10 <kuribas> so I don't think that's the problem
08:55:51 <tomsmeding> ah indeed it doesn't, it invokes ghc directly or via stack
08:56:14 <kuribas> tomsmeding: where are you from?
08:56:25 <tomsmeding> kuribas: and interestingly it sets the one from the cabal file, not the one from the LANGUAGE pragma in Main.hs
08:56:30 <kuribas> the netherlands?
08:56:35 <tomsmeding> kuribas: hollands mensje
08:56:39 <kuribas> ok :)
08:57:33 × ddellacosta quits (~ddellacos@86.106.121.165) (Ping timeout: 252 seconds)
08:58:01 <tomsmeding> maybe the flycheck haskell auto-detection magic isn't rerunning or something when you add an extension to the cabal file?
08:58:23 <tomsmeding> but anyway you said you didn't feel like debugging and now I'm asking you to do that anyway, so I'll stop :p
08:59:51 <kuribas> I did all that
08:59:59 <kuribas> recompile, restart emacs, etc...
09:00:16 <tomsmeding> rip
09:00:33 <maerwald> did you try to close all windows? xD
09:00:36 <kuribas> yeah, I'll send a message to the flycheck github.
09:01:03 <tomsmeding> "please close all other programs before running this installer"
09:01:42 <tomsmeding> (before proceeding to some hideous full-screen thing)
09:01:59 <kuribas> hmm, I could try removing .ghc.environment...
09:04:39 Haitang joins (~Taier@64-79-70-207.xlhdns.com)
09:04:48 <Haitang> hi
09:06:01 <kuribas> hey
09:06:21 Haitang parts (~Taier@64-79-70-207.xlhdns.com) ()
09:06:40 <tomsmeding> bye
09:06:52 dhil joins (~dhil@195.213.192.47)
09:07:22 <tomsmeding> kuribas: I forgot to say, that :set output is the same as what I get on ghc 8.10.4
09:07:27 <kuribas> tomsmeding: at this point I don't feel much about spending time in improving tooling. I would be more inclined to pay for it.
09:07:32 <kuribas> tomsmeding: right
09:08:43 × azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 264 seconds)
09:09:15 azeem joins (~azeem@176.200.235.0)
09:09:19 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
09:10:15 × azeem quits (~azeem@176.200.235.0) (Read error: Connection reset by peer)
09:10:20 prite joins (~pritam@user/pritambaral)
09:11:03 azeem joins (~azeem@176.200.235.0)
09:12:34 × agumonke` quits (~user@88.160.31.174) (Read error: Connection reset by peer)
09:13:09 agumonke` joins (~user@88.160.31.174)
09:14:37 × azeem quits (~azeem@176.200.235.0) (Read error: Connection reset by peer)
09:14:50 azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
09:19:17 × azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer)
09:23:32 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
09:24:58 yd502 joins (~yd502@180.168.212.6)
09:26:07 × yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 264 seconds)
09:26:38 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 272 seconds)
09:27:24 benin030 joins (~benin@183.82.206.136)
09:27:56 Maxdamantus joins (~Maxdamant@user/maxdamantus)
09:27:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
09:28:15 ddellacosta joins (~ddellacos@86.106.143.10)
09:29:14 × benin03 quits (~benin@183.82.206.136) (Ping timeout: 245 seconds)
09:29:26 benin030 is now known as benin03
09:29:27 azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
09:31:36 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
09:32:01 × prite quits (~pritam@user/pritambaral) (Quit: Konversation terminated!)
09:33:18 × ddellacosta quits (~ddellacos@86.106.143.10) (Ping timeout: 252 seconds)
09:34:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
09:34:29 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds)
09:36:36 × agumonke` quits (~user@88.160.31.174) (Ping timeout: 252 seconds)
09:37:03 Torro joins (Torro@gateway/vpn/protonvpn/torro)
09:39:24 <kuribas> is there a *good* way to add orphan instances?
09:39:54 <kuribas> when there is only one instance that really makes sense?
09:39:54 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
09:40:27 <Taneb> kuribas: I think it depends if you're writing a library that you're going to share with other people
09:41:11 <kuribas> For my current problem it is cassava FromNamedRecord/ToNamedRecord for Aeson Value.
09:41:24 <kuribas> I don't want to newtype it, because Value is the right datatype to use.
09:41:43 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
09:41:54 <Taneb> That feels like a weird instance?
09:42:26 <kuribas> I mean ToField/FromField, sorry :)
09:44:18 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
09:45:53 × mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds)
09:47:58 bfrk parts (~Thunderbi@200116b8451fe900af67d936efb17ea9.dip.versatel-1u1.de) ()
09:54:46 nkpart joins (uid3844@id-3844.highgate.irccloud.com)
09:55:05 × dunkeln quits (~dunkeln@94.129.65.28) (Quit: leaving)
09:56:14 boxscape joins (~boxscape@user/boxscape)
09:57:09 × azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 245 seconds)
09:58:40 × boxscape quits (~boxscape@user/boxscape) (Client Quit)
09:59:08 boxscape joins (~boxscape@user/boxscape)
10:01:33 azeem joins (~azeem@176.200.235.0)
10:02:27 ddellacosta joins (~ddellacos@86.106.143.74)
10:06:44 × ddellacosta quits (~ddellacos@86.106.143.74) (Ping timeout: 245 seconds)
10:09:30 × JimL quits (~quassel@ti0577q162-3381.bb.online.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
10:11:42 michalz joins (~user@185.246.204.107)
10:12:24 <boxscape> % const 4 (undefined :: Constraint)
10:12:24 <yahb> boxscape: 4
10:12:28 <boxscape> seems really strange that this works
10:12:36 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
10:12:40 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
10:12:41 <boxscape> I would neither expect undefined :: Constraint to be well-typed, nor const a b if b :: Constraint
10:13:24 <boxscape> oh but I guess it's because Constraint is a regular data type rather than just a kind
10:14:04 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
10:14:30 neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130)
10:17:59 <Taneb> :k Constraint
10:18:00 <lambdabot> *
10:18:14 <boxscape> % :i Constraint
10:18:15 <yahb> boxscape: type Constraint :: *; data Constraint; -- Defined in `GHC.Types'
10:18:49 <boxscape> doesn't look any different from Void, really
10:20:12 × GIANTWORLDKEEPER quits (~pjetcetal@2.95.204.25) (Ping timeout: 265 seconds)
10:23:00 larkfisherman joins (~larkfishe@217.75.204.126)
10:23:04 pasko__ joins (~larkfishe@217.75.204.126)
10:23:38 <vaibhavsagar[m]> how are people implementing timeouts when using the `websocket` library?
10:23:52 <vaibhavsagar[m]> System.Timeout or something else?
10:24:59 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
10:25:27 <vaibhavsagar[m]> I'm not seeing anything included by default and my first impulse was to use `race` from `async` but it seems like the `timeout` in `base` is simpler and better for my purposes
10:26:01 yd502 joins (~yd502@180.168.212.6)
10:26:24 × oxide quits (~lambda@user/oxide) (Ping timeout: 268 seconds)
10:28:05 oxide joins (~lambda@user/oxide)
10:29:14 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
10:29:25 <dminuoso> vaibhavsagar[m]: Hold on, what kind of timeouts are you talking about?
10:30:29 <vaibhavsagar[m]> when I am receiving a message over a websocket, and I want to wait no more than x seconds
10:31:08 <dminuoso> vaibhavsagar[m]: Keep in mind the subtle bound issue of `timeout`
10:31:15 <vaibhavsagar[m]> I think the library is pretty simple/barebones in that sense, since it doesn't seem to include any way of handling timeouts by default
10:31:38 <vaibhavsagar[m]> what issue?
10:31:41 <dminuoso> Int is only guaranteed to give you [-2^29..2^29-1]
10:31:45 <dminuoso> And timeout wants nanoseconds.
10:31:46 shryke joins (~shryke@91.103.43.254)
10:31:57 <vaibhavsagar[m]> oh yeah, I know timeout wants microseconds
10:32:08 <dminuoso> % 2^29 - 1
10:32:08 <yahb> dminuoso: 536870911
10:32:30 <vaibhavsagar[m]> that's not a problem for my use case I think
10:32:52 <vaibhavsagar[m]> I'm planning to wait maybe 5 minutes at most
10:32:52 <dminuoso> Well you asked for "n seconds"
10:33:02 <dminuoso> Oh sorry, its in microseconds.
10:33:19 <vaibhavsagar[m]> yeah, which is the same as n*10^6 microseconds
10:33:24 <vaibhavsagar[m]> I read the docs
10:33:26 <dminuoso> So anything up to 536 seconds will work, anything more is going to be implementation dependent
10:33:28 <dminuoso> Right
10:33:47 <vaibhavsagar[m]> you're not actually answering my question at all
10:33:57 <vaibhavsagar[m]> so `timeout` is fine then it sounds like
10:34:07 <dminuoso> timeout could work, just remember to send pings manually with `websockets`
10:34:37 <dminuoso> STM is probably a more robust choice
10:35:04 <dminuoso> websockets does not handle pings *or* answering to pings for you
10:35:09 <dminuoso> You gotta do that yourself :)
10:35:12 <vaibhavsagar[m]> I'm communicating with an external application over websockets
10:35:18 <vaibhavsagar[m]> I don't see how STM is better
10:35:54 <vaibhavsagar[m]> the external application is developed by a third party in a non-Haskell language
10:36:03 <dminuoso> ah wait, websockets comes with withPingThread, actually
10:36:07 ddellacosta joins (~ddellacos@89.46.62.115)
10:36:22 <vaibhavsagar[m]> yes, I did notice that
10:36:57 <dminuoso> vaibhavsagar[m]: depending on how you want to run things, you might have multiple threads, one of which responds to pings with pong
10:37:03 <dminuoso> so stm could be used to coordinate these threads
10:38:01 × chexum quits (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection)
10:38:55 ddellaco_ joins (~ddellacos@89.45.224.251)
10:41:19 × ddellacosta quits (~ddellacos@89.46.62.115) (Ping timeout: 245 seconds)
10:41:30 × xsperry quits (~as@user/xsperry) (Ping timeout: 252 seconds)
10:43:29 × ddellaco_ quits (~ddellacos@89.45.224.251) (Ping timeout: 244 seconds)
10:50:39 themc47 joins (~yecinem@89.246.239.190)
10:51:52 <vaibhavsagar[m]> hmm, I need to look into this, thanks
10:52:59 × mc47 quits (~yecinem@89.246.239.190) (Ping timeout: 245 seconds)
10:53:02 × larkfisherman quits (~larkfishe@217.75.204.126) (Quit: Leaving)
10:53:07 × pasko__ quits (~larkfishe@217.75.204.126) (Quit: Leaving)
10:53:16 <dminuoso> vaibhavsagar[m]: The thing is, websockets gives you two asynchronous channels (much like stdin/stdout). If you have just one message and you want to respond to it, websockets is just un-needed overkill
10:53:29 <dminuoso> Might as well just go play HTTP with say JSON ontop then
10:53:58 <vaibhavsagar[m]> I don't get to choose the communication channel
10:54:09 <vaibhavsagar[m]> that decision has already been made for me
10:54:16 <vaibhavsagar[m]> and there are multiple messages
10:54:25 <vaibhavsagar[m]> so websockets are not the worst idea
10:54:48 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.1)
10:56:03 <vaibhavsagar[m]> I already have a proof-of-concept working, we're not about to change it now :)
10:56:27 lavaman joins (~lavaman@98.38.249.169)
10:56:32 <dminuoso> websockets is really odd, it's almost as if people re-invented TCP..
10:56:41 <dminuoso> Ontop of HTTP.
10:57:15 <vaibhavsagar[m]> ¯_(ツ)_/¯
10:58:36 × themc47 quits (~yecinem@89.246.239.190) (Quit: Leaving)
10:58:52 mc47 joins (~yecinem@89.246.239.190)
11:00:45 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
11:01:00 <tdammers> case in point, you do get the entire HTTP stack below those websockets, so in practice that means you won't have to worry about encryption and authentication specifically for websockets, you can just piggy-back on whatever you already have in place for your other HTTP stuff
11:01:11 <tdammers> so yeah, it's a bit odd, but also quite helpful that way
11:02:22 <dminuoso> tdammers: TLS is really straight foward to add, so Im not convinced this is a good argument. But yeah, authentication sure.
11:02:34 × hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection)
11:02:38 <dminuoso> otoh HTTP is a deeply semantic protocol that is very often mistreated
11:02:57 hendursa1 joins (~weechat@user/hendursaga)
11:03:00 larkfisherman joins (~larkfishe@217.75.204.126)
11:04:45 <tdammers> true on both accounts
11:05:11 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
11:05:18 notzmv joins (~zmv@user/notzmv)
11:05:32 <tdammers> (also note that I didn't say it's correct or elegant in any way, just that it's helpful and that I understand why you'd want it)
11:05:51 <dminuoso> Mostly though, I think it's just a force of habit.
11:06:15 × yd502 quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds)
11:06:46 <dminuoso> And perhaps it integrates better with existing tooling. You want to log whats going on? No need to write a wireshark decoder, put it in HTTP with JSON, and you can decipher it straight from `tcpdump`
11:07:06 <dminuoso> And perhaps your fancy webserver already does this with fancy coloring and indention
11:09:39 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds)
11:14:27 <tdammers> exactly
11:14:49 <tdammers> you already have all the HTTP machinery in place
11:18:07 ddellacosta joins (~ddellacos@86.106.143.243)
11:19:52 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
11:20:35 teaSlurper joins (~chris@81.96.113.213)
11:22:39 × hmmmas quits (~chenqisu1@183.217.201.236) (Quit: Leaving.)
11:22:45 × ddellacosta quits (~ddellacos@86.106.143.243) (Ping timeout: 252 seconds)
11:24:55 × Toast52 quits (~Toast52@151.192.167.120) (Ping timeout: 264 seconds)
11:25:31 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
11:26:30 xsperry joins (~as@user/xsperry)
11:26:44 × pe200012 quits (~pe200012@58.248.179.178) (Ping timeout: 245 seconds)
11:28:07 pe200012 joins (~pe200012@58.248.179.178)
11:28:31 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 264 seconds)
11:29:13 Kaivo parts (~Kaivo@user/kaivo) (WeeChat 3.0.1)
11:29:46 × fendor quits (~fendor@178.115.130.234.wireless.dyn.drei.com) (Read error: Connection reset by peer)
11:30:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:34:37 pe200012_ joins (~pe200012@58.248.179.178)
11:34:51 × pe200012 quits (~pe200012@58.248.179.178) (Ping timeout: 252 seconds)
11:35:08 Toast52 joins (~Toast52@151.192.167.120)
11:35:36 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
11:39:20 × involans quits (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
11:39:42 involans joins (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
11:40:04 × benin03 quits (~benin@183.82.206.136) (Ping timeout: 245 seconds)
11:40:21 × azeem quits (~azeem@176.200.235.0) (Ping timeout: 252 seconds)
11:41:48 dunkeln joins (~dunkeln@94.129.65.28)
11:44:06 × malvo quits (~malvo@malvo.org) (Ping timeout: 268 seconds)
11:45:22 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
11:49:09 × pera quits (~pera@user/pera) (Ping timeout: 252 seconds)
11:52:04 argento joins (~argent0@168-227-96-51.ptr.westnet.com.ar)
11:55:17 pera joins (~pera@204.red-79-159-199.dynamicip.rima-tde.net)
11:55:41 pera is now known as Guest9847
11:58:19 ddellacosta joins (~ddellacos@86.106.143.217)
11:58:19 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
11:58:30 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
11:58:38 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
12:00:28 × blizzard quits (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 244 seconds)
12:01:26 azeem joins (~azeem@176.201.37.236)
12:01:48 × involans quits (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 252 seconds)
12:02:10 ubert joins (~Thunderbi@p200300ecdf259d3dfcd415488b1ba362.dip0.t-ipconnect.de)
12:02:59 × ddellacosta quits (~ddellacos@86.106.143.217) (Ping timeout: 245 seconds)
12:04:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
12:05:54 × nschoe quits (~quassel@2a01:e0a:8e:a190:458d:db56:1c93:24ea) (Ping timeout: 245 seconds)
12:06:05 nattiestnate joins (~nate@180.242.128.159)
12:06:09 × srk quits (~sorki@user/srk) (Ping timeout: 244 seconds)
12:06:26 danidiaz joins (~ESDPC@47.61.17.254)
12:06:56 fendor joins (~fendor@178.115.130.234.wireless.dyn.drei.com)
12:08:30 involans joins (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net)
12:09:04 srk joins (~sorki@user/srk)
12:12:59 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
12:15:27 × unyu quits (~pyon@user/pyon) (Ping timeout: 244 seconds)
12:16:13 × fendor quits (~fendor@178.115.130.234.wireless.dyn.drei.com) (Remote host closed the connection)
12:18:00 unyu joins (~pyon@user/pyon)
12:18:19 fendor joins (~fendor@178.115.130.234.wireless.dyn.drei.com)
12:19:28 × Toast52 quits (~Toast52@151.192.167.120) (Quit: Leaving)
12:21:48 <janus> dminuoso: websockets provide message framing. a big plus imho
12:22:09 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 245 seconds)
12:23:09 chaosite joins (~chaosite@user/chaosite)
12:26:24 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
12:27:04 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
12:28:59 <dminuoso> janus: "message framing" is just a fancy way of saying "adding a length header"
12:29:14 <dminuoso> Writing wire protocols is not hard.
12:30:54 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
12:31:29 <janus> not so hard if you have coroutines and stuff ;) harder if you have only BSD sockets and threads and you want DDoS protection and such :P
12:33:33 × nkpart quits (uid3844@id-3844.highgate.irccloud.com) (Quit: Connection closed for inactivity)
12:33:43 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds)
12:33:55 × jorjor quits (~jorgemene@85.251.190.6.dyn.user.ono.com) (Ping timeout: 264 seconds)
12:34:04 <guest61> does if then else have a scope?
12:35:03 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
12:35:26 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
12:35:39 <guest61> binding declared inside if then else , can't be found outside if then else
12:36:40 <guest61> I'd like to say variable, but haskell variable can't be reassigned
12:39:02 <dminuoso> guest61: Correct!
12:39:27 <dminuoso> guest61: So first thing to realize, is that expression evaluation is not even defined in Haskell.
12:39:50 <ski> having conditional declarations could be useful
12:40:31 <dminuoso> guest61: So what does "outside" even mean?
12:41:37 <ski> (also conditional commands, hmm)
12:41:48 <dminuoso> If inside do-notation, you can either use an IORef (an manipulate it branch expressions), or you can feed values back out
12:42:20 <dminuoso> do { f <- if foo then ([1,2,3] <$ someThing) else getList; ... }
12:42:21 pbrisbin joins (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net)
12:43:45 <ski> guest61 : by "have a scope", for a construct, presumably you mean it interacting non-trivially with scoping, in some way ?
12:44:35 ddellacosta joins (~ddellacos@86.106.121.24)
12:44:54 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
12:44:57 × larkfisherman quits (~larkfishe@217.75.204.126) (Remote host closed the connection)
12:45:42 <ski> in any case .. `if'-`then'-`else' (expressions) doesn't introduce a new scope, nor interact in some other unusual way with scoping .. iow, what is in scope of the whole expression is also what is in scope in the three subexpressions
12:46:27 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:46:56 <ski> guest61 : however, you said "binding declared inside if then else", but that's (perhaps unfortunately) simply not a thing, in Haskell, since there are no conditional declarations (nor commands), just conditional expressions
12:46:59 <Athas> What's the most efficient way to construct large Text values? E.g. for serialisation.
12:47:08 <Athas> Or imagine a prettyprinter that doesn't have to be "pretty".
12:47:23 <ski> you can't e.g. say
12:47:27 <ski> if ...
12:47:39 <ski> then x:xs = ...
12:47:47 <ski> y = ...
12:47:56 <ski> else (x,y) = ...
12:48:06 <ski> xs = ...
12:48:49 × ddellacosta quits (~ddellacos@86.106.121.24) (Ping timeout: 245 seconds)
12:49:32 <ski> guest61 : did you have a particular situation, or example, of something you wanted to do ?
12:49:44 larkfisherman joins (~larkfishe@217.75.204.126)
12:50:14 teaSlurper joins (~chris@81.96.113.213)
12:51:50 × jakzale quits (uid499518@id-499518.charlton.irccloud.com) (Quit: Connection closed for inactivity)
12:53:47 dunkeln joins (~dunkeln@94.129.65.28)
12:54:46 david__ joins (~david@77-171-152-62.fixed.kpn.net)
12:55:28 <ski> guest61 : if you're talking about using `let'-`in' expressions, inside a conditional (`if'-`then'-`else'), then this is not in any way different from using a `let'-`in' inside any other construct -- the bindings declared between `let' and `in' are only in scope in the portion after the `in', never in scope anywhere else (such as outside your `if'-`then'-`else' expression, that wrapped the `let'-`in'
12:55:34 <ski> expression)
12:56:03 shapr joins (~user@108.28.144.11)
12:56:28 jippiedoe joins (~david@77-171-152-62.fixed.kpn.net)
12:56:31 david__ parts (~david@77-171-152-62.fixed.kpn.net) ()
12:58:28 <ski> .. being able to say things like `do {if foo then {f <- [1,2,3] <$ someThing)} else {f <- getList}; ...}' could be quite useful, at times
13:01:10 <tomsmeding> Athas: what about Data.Text.Lazy.Builder ?
13:01:16 alx741 joins (~alx741@181.196.69.96)
13:01:44 <Athas> tomsmeding: ah, yes. Is it much faster than just consing up Texts and mappending them?
13:02:17 <tomsmeding> don't know, to be honest; but if it weren't, it wouldn't exist, I'd think
13:06:19 × nattiestnate quits (~nate@180.242.128.159) (Quit: WeeChat 3.1)
13:06:22 <gentauro> Athas: https://hackage.haskell.org/package/bytestring-0.11.1.0/docs/Data-ByteString-Lazy-Char8.html#v:fromChunks
13:06:26 <gentauro> ?
13:06:50 nschoe joins (~quassel@2a01:e0a:8e:a190:5a3:b172:cf1b:f959)
13:08:26 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
13:08:58 <ski> a more general thing would be to allow something like `do { foo do {x <- ...; y <- ...}; ..x..y.. }', where `foo :: forall a. m a -> n a', `m' and `n' being the two monads in question
13:08:59 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
13:09:29 notzmv joins (~zmv@user/notzmv)
13:10:40 × Guest9847 quits (~pera@204.red-79-159-199.dynamicip.rima-tde.net) (Quit: leaving)
13:12:17 × jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
13:12:45 × danidiaz quits (~ESDPC@47.61.17.254) (Ping timeout: 252 seconds)
13:13:18 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 252 seconds)
13:13:21 safinaskar joins (~user@109.252.90.89)
13:13:28 <safinaskar> hi! do you want a quiz?
13:13:45 <safinaskar> what does this expression do: s == s?
13:13:59 <safinaskar> this is code from my real program and i put it there for reason
13:14:00 ddellacosta joins (~ddellacos@86.106.121.204)
13:14:07 <safinaskar> why i put it there? what this code does?
13:14:12 <shryke> seq?
13:14:32 <safinaskar> shryke: you are very close :)
13:14:53 <tomsmeding> assuming nothing shadows (==) from base, that runs the (==) method of the Eq instance of the type of `s`, assuming it has any
13:15:12 <tomsmeding> for any _decent_ Eq instance it will indeed amount to deepseq :p
13:15:23 <safinaskar> tomsmeding: yes, you are right!
13:15:49 <safinaskar> tomsmeding: i use it as (s `deepseq` True) replacement without dependency on deepseq!
13:16:12 <tomsmeding> quite neat
13:16:20 kenran joins (~kenran@b2b-37-24-119-190.unitymedia.biz)
13:16:37 <maralorn> tomsmeding: Wasn‘t there some magic for "Seq" that it keeps thunks even when you access all entries?
13:17:14 <tomsmeding> maralorn: you mean lowercase 'seq'?
13:17:22 <maralorn> No, uppercase.
13:17:30 <dminuoso> tomsmeding: Why would (==) amount to deepseq?
13:17:37 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:17:53 <kenran> Can I re-export instances that I've imported somehow? I'm doing `import Test.QuickCheck.Instances.ByteString as Bla` and at the top `module Foo (module Bla) where` but I'm getting "the export item Bla exports nothing"
13:17:54 <tomsmeding> dminuoso: to establish structural equality, you have to evaluate the whole structure, assuming a normal ADT
13:18:04 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
13:18:11 <boxscape> tomsmeding not if the first element of the structure you check is already not equal
13:18:19 <tomsmeding> maralorn: which Seq do you mean? I know Data.Sequence, but that's probably not what you mean here
13:18:27 <tomsmeding> boxscape: `s == s`
13:18:31 <boxscape> oh whoops
13:18:33 <maralorn> I think fingertrees are constructed in a way that they contain some internal thunks even when they look completely evaluated to the user.
13:18:34 <dminuoso> tomsmeding: Not trying to be picky, but you'd have to do more than just evaluate..
13:18:36 <maralorn> Yeah, I mean Data.Sequence
13:18:45 <boxscape> tomsmeding wait was that what we were talking about?
13:18:55 <int-e> maralorn: you can have such magic for Eq too... newtype Indifferent a = Indifferent a; instance Eq (Indifferent a) where _ == _ = True
13:19:14 <boxscape> tomsmeding ah yes, I see it now
13:19:19 × ddellacosta quits (~ddellacos@86.106.121.204) (Ping timeout: 272 seconds)
13:20:00 <tomsmeding> maralorn: no idea, but a functional pearl I read recently about the finger tree data structure suggested it's just a normal (though non-uniformly recursive) ADT
13:20:33 <tomsmeding> dminuoso: fair point, it does more computation, but semantically that shouldn't matter (for structural equality on ADTs)
13:21:14 <dminuoso> tomsmeding: Oh it just clicked. I didn't understand the presented riddle.
13:21:31 <dminuoso> It's not about Eq instances, its rather why would `s == s` ever be a useful thing to write.
13:21:46 <int-e> testing for NaN
13:21:51 <dminuoso> heh
13:22:13 <int-e> but I like "poor people's deepSeq"
13:22:14 <tomsmeding> my trick was always 'length (show s) `seq` ()', but perhaps this one is nicer
13:22:19 <boxscape> % isNaN s = s /= s
13:22:19 <yahb> boxscape:
13:22:23 <tomsmeding> indeed except if you have NaNs...
13:23:29 ddellacosta joins (~ddellacos@86.106.121.74)
13:23:35 <dminuoso> Im curious why deepseq would be a good default for Eq though
13:23:42 <kenran> Oh, it seems like the instances I import are automatically reexported?!
13:23:53 <dminuoso> kenran: Yes.
13:23:57 <dminuoso> You cannot not export an instance
13:24:01 <dminuoso> Open world assumption.
13:24:06 <kenran> TIL, thanks.
13:25:06 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
13:27:33 <tomsmeding> dminuoso: (==) only becomes deepseq when it's called on two equal arguments
13:27:40 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
13:28:37 × siraben quits (~siraben@user/siraben) (Quit: node-irc says goodbye)
13:28:37 × kadoban quits (~kadoban@user/kadoban) (Quit: node-irc says goodbye)
13:28:37 × MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Quit: node-irc says goodbye)
13:28:37 × psydroid quits (~psydroidm@user/psydroid) (Quit: node-irc says goodbye)
13:28:37 × sm[m] quits (~sm@plaintextaccounting/sm) (Quit: node-irc says goodbye)
13:28:37 × peddie quits (~peddie@2001:470:69fc:105::25d) (Quit: node-irc says goodbye)
13:28:37 × ac quits (~aloiscoch@2001:470:69fc:105::65) (Quit: node-irc says goodbye)
13:28:37 × maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Quit: node-irc says goodbye)
13:28:37 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Quit: node-irc says goodbye)
13:28:37 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Quit: node-irc says goodbye)
13:28:37 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Quit: node-irc says goodbye)
13:28:37 × fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Quit: node-irc says goodbye)
13:28:37 × the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Quit: node-irc says goodbye)
13:28:37 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Quit: node-irc says goodbye)
13:28:37 × hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Quit: node-irc says goodbye)
13:28:37 × srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Quit: node-irc says goodbye)
13:28:37 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Quit: node-irc says goodbye)
13:28:37 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (Quit: node-irc says goodbye)
13:28:37 × adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Quit: node-irc says goodbye)
13:28:37 × tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Quit: node-irc says goodbye)
13:28:37 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Quit: node-irc says goodbye)
13:28:37 × bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Quit: node-irc says goodbye)
13:28:37 × Drezil quits (~drezilkif@2001:470:69fc:105::7f8) (Quit: node-irc says goodbye)
13:28:37 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Quit: node-irc says goodbye)
13:28:38 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Quit: node-irc says goodbye)
13:28:38 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Quit: node-irc says goodbye)
13:28:38 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Quit: node-irc says goodbye)
13:28:38 × cdepillabout[m] quits (~cdepillab@2001:470:69fc:105::3d3) (Quit: node-irc says goodbye)
13:28:38 × amesgen[m] quits (~amesgenam@2001:470:69fc:105::82b) (Quit: node-irc says goodbye)
13:28:38 × kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Quit: node-irc says goodbye)
13:28:38 × Soft quits (~soft-matr@2001:470:69fc:105::c75) (Quit: node-irc says goodbye)
13:28:38 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Quit: node-irc says goodbye)
13:28:39 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: node-irc says goodbye)
13:28:39 × eddiemundo quits (~eddiemund@2001:470:69fc:105::a9c) (Quit: node-irc says goodbye)
13:28:46 safinaskar2 joins (~safinaska@109-252-90-89.nat.spd-mgts.ru)
13:28:52 <tomsmeding> % :t (deepseq, join (==) `seq` (), \a -> length (show a) `seq` ())
13:28:52 <yahb> tomsmeding: ; <interactive>:1:2: error: Variable not in scope: deepseq
13:29:03 <tomsmeding> :t (deepseq, join (==) `seq` (), \a -> length (show a) `seq` ())
13:29:04 <lambdabot> error: Variable not in scope: deepseq
13:29:26 <dminuoso> tomsmeding: as in, `s == s` is a poor-mans deepseq without NFData?
13:29:38 <dminuoso> assuming a sensible Eq instance?
13:29:53 <tomsmeding> yeah
13:30:08 <tomsmeding> and an ADT structure
13:30:44 <dminuoso> What does "an ADT structure" mean? Is there a precise definition? Sorry to ask this many questions, Im just a bit clueless. :)
13:32:09 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Ping timeout: 245 seconds)
13:32:31 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
13:32:58 × ddellacosta quits (~ddellacos@86.106.121.74) (Remote host closed the connection)
13:33:26 ddellacosta joins (~ddellacos@86.106.121.74)
13:34:24 ddellaco_ joins (~ddellacos@89.46.62.69)
13:34:45 <guest61> dminuoso ski, https://paste.ubuntu.com/p/MGC3RvDPY9/
13:35:07 × hylisper quits (~ykm@111.119.208.67) (Ping timeout: 264 seconds)
13:35:09 × shryke quits (~shryke@91.103.43.254) (Quit: WeeChat 3.1)
13:35:19 <dminuoso> This looks ripe for improvements.
13:35:24 GIANTWORLDKEEPER joins (~pjetcetal@2.95.204.25)
13:35:34 <dminuoso> Packet with error bombs. :)
13:35:36 <guest61> trying to create a bunch of variables
13:35:51 hylisper joins (~ykm@111.119.208.67)
13:36:26 <guest61> how you call creat a variable?
13:36:32 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
13:36:49 <guest61> bind something? identity?
13:36:57 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
13:36:58 <guest61> declare a variable?
13:37:13 safinaskar parts (~user@109.252.90.89) ()
13:37:20 ikex joins (~ash@user/ikex)
13:37:26 safinaskar2 is now known as safinaskar
13:37:53 <dminuoso> guest61: In Haskell, a variable is not a mutable store/reference
13:38:02 <dminuoso> Perhaps, think of it as a name for an expression.
13:38:03 × ddellacosta quits (~ddellacos@86.106.121.74) (Ping timeout: 252 seconds)
13:38:40 <guest61> why expression? could not be a statement?
13:38:46 <dminuoso> We dont have statements in the language
13:39:03 <guest61> an IO action is not a statement?
13:40:05 <guest61> the code I paste, how to change it?
13:40:18 <safinaskar> is there pointer equality in Haskell, which fail backs to normal equality? is it okey to use (reallyUnsafePtrEquality# a b == 1# || a == b)? (this code looks scary)
13:41:00 <dminuoso> guest61: IO actions model statements, but they are not part of the syntax.
13:41:09 <dminuoso> Or rather, >>=/>> for IO models statements.
13:41:13 Topsi joins (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
13:41:32 <dminuoso> guest61: So there's a number of things to improve in your code. Would you like to hear about them?
13:41:41 <guest61> yes
13:41:59 <dminuoso> Then let's go through them all, alongside we will find a more elegant solution for your problem,
13:42:21 <guest61> ok
13:42:25 __monty__ joins (~toonn@user/toonn)
13:42:26 <dminuoso> First off, you make use of functions dubbed "unsafe". Namely `fromJust` and (!!). Both you should really forget about.,
13:42:51 <dminuoso> Part of the reason is, they have a failure mode that you cannot sensibly recover from.
13:43:04 <dminuoso> % n :: Maybe Int
13:43:04 <yahb> dminuoso: ; <interactive>:89:1: error: Variable not in scope: n :: Maybe Int
13:43:07 <dminuoso> % n :: Maybe Int; n = Nothing
13:43:07 <yahb> dminuoso:
13:43:09 <safinaskar> guest61: it seems you don't know basic things. i suggest reading http://learnyouahaskell.com/
13:43:09 <guest61> but I already check Nothing first
13:43:29 <dminuoso> guest61: Great, but you threw this knowledge away.
13:44:10 <guest61> checkParameters :: [Maybe a]
13:44:38 <guest61> the first line, I use elemIndices to check if there is Nothing in it
13:44:43 <guest61> then I use fromJust
13:44:51 <guest61> so its safe I think
13:44:58 × Sose quits (~username@mobile-access-6df047-172.dhcp.inet.fi) (Ping timeout: 268 seconds)
13:45:05 <dminuoso> guest61: Probably, until you restructure your code slightly - then the type system cannot warn you.
13:45:21 <dminuoso> It's highly idiomatic and brittle to write code in this style
13:45:25 <dminuoso> *unidiomatic
13:45:37 <guest61> also that checkParameters length is fixed, so !! won't out of the index, that's safe too
13:46:06 <dminuoso> guest61: Perhaps, but you are in IO. So we can still error out with a better diagnostic.
13:46:38 <dminuoso> guest61: Im guessing the data comes from a file, right?
13:46:41 <guest61> wait a sec, I can paste the code old way, more ugly
13:46:54 <dminuoso> Presumably something you grab from `lines <$> readLines`?
13:47:02 <dminuoso> err `lines <$> readFile path`
13:47:27 fluffyballoon joins (~fluffybal@2620:72:0:6480::e5)
13:47:40 <dminuoso> guest61: So lets ignore the (!!) right now. What you could do is this:
13:48:19 <guest61> https://paste.ubuntu.com/p/GPGT3VWZcH/
13:48:58 <guest61> see that's more ugly...
13:49:21 <guest61> yes, read data from a file and parse
13:49:50 <dminuoso> getParam :: Int -> [Maybe a] -> IO a; getParam p xs = maybe (fail ("Missing parameter " <> show p)) pure (xs !! p)
13:49:59 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.7.1 - https://znc.in)
13:50:09 <dminuoso> guest61: ^- this is not an elegant final solution, but this little combinator will let you avoid a lot of pain here.
13:50:11 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
13:50:13 × safinaskar quits (~safinaska@109-252-90-89.nat.spd-mgts.ru) (Quit: Client closed)
13:50:16 <dminuoso> Then you can write code in this style:
13:50:41 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
13:51:19 hendursaga joins (~weechat@user/hendursaga)
13:51:41 <guest61> but those variables are need in the rest code, they can't be IO a, They need to be Text
13:51:56 <dminuoso> do { let param p = getParam p checkParameters; mode <- param 0; server <- param 1; ... password <- maybe (pure "") pure (checkParameters !! 4); ... }
13:51:56 ddellacosta joins (~ddellacos@86.106.143.61)
13:51:58 <guest61> otherwise I need to change a lot functions
13:51:58 <dminuoso> guest61: ^-
13:52:59 × pe200012_ quits (~pe200012@58.248.179.178) (Ping timeout: 245 seconds)
13:53:19 pe200012_ joins (~pe200012@120.236.162.3)
13:53:21 <dminuoso> guest61: This has the added benefit of giving a graceful error, if due to some unforseen circumstance (perhaps you missed a Nothing, or a parameter got removed/added) there's suddenly an unexpected Nothing.
13:53:27 × oxide quits (~lambda@user/oxide) (Ping timeout: 252 seconds)
13:53:48 <ski> let password = fromMaybe ""(checkParameters !! 4)
13:54:13 <dminuoso> ^- this is more a drop-in replacement for what you have, without addressing the rest.
13:54:19 <dminuoso> Oh, I guess I should have written:
13:54:27 <dminuoso> do { let param p = getParam p checkParameters; mode <- param 0; server <- param 1; ... password <- fromMaybe "" pure (checkParameters !! 4); ... }
13:54:29 geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com)
13:54:29 <dminuoso> Thanks, ski.
13:54:31 <guest61> fromMaybe is better
13:54:37 <guest61> than my fromJust
13:55:14 <guest61> what's this do ? Maybe or IO?
13:55:37 <dminuoso> % :t fromMaybe
13:55:37 <yahb> dminuoso: a -> Maybe a -> a
13:55:38 <guest61> oh IO
13:55:49 <dminuoso> oh hah wait
13:55:57 <dminuoso> do { let param p = getParam p checkParameters; mode <- param 0; server <- param 1; ... password <- fromMaybe (pure "") pure (checkParameters !! 4); ... }
13:55:59 <dminuoso> Here we go.
13:56:19 <dminuoso> You could do other tricks too, like stay in Either String and collect the error there
13:56:43 × neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 244 seconds)
13:57:04 × ddellacosta quits (~ddellacos@86.106.143.61) (Ping timeout: 272 seconds)
13:57:13 <guest61> no need, just simple Text is what other functions need, no more wrapped
13:57:40 <guest61> otherwise I need to change a lot of functions
13:59:02 <ski> better with `let' than `<-' and `pure', for `password'
14:00:46 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
14:01:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
14:01:54 <guest61> if there's Nothing in thst list, so it would return "missing parameter"?
14:02:38 <guest61> But there's another questions, see my second paste, the missing msg is different
14:03:06 <guest61> missing different variables, show different msg
14:03:39 <guest61> oh you did
14:03:54 <guest61> I forgot <> p
14:04:18 <guest61> that's more elegant
14:05:04 <guest61> I will try it later, thanks, dminuoso, ski
14:06:35 <ski> guest61 : what's the length of `checkParameters' ?
14:06:35 × o1lo01ol1o quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Ping timeout: 245 seconds)
14:07:08 <guest61> 8
14:08:17 yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se)
14:08:24 × azeem quits (~azeem@176.201.37.236) (Ping timeout: 245 seconds)
14:09:45 <guest61> ghc tells me <|> is ambitious, there are Control.Applicative and Text.ParserComBinators.Parsec.<|>, but I don't want to qualified Control.Applivative neither Parsec
14:09:58 <guest61> any suggestions?
14:10:43 <guest61> why <|> could be like id?
14:10:46 azeem joins (~azeem@176.201.16.12)
14:10:50 <guest61> id is so arbi
14:10:52 <guest61> arbitrary
14:10:58 o1lo01ol1o joins (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
14:11:24 <guest61> not
14:14:44 Sgeo joins (~Sgeo@user/sgeo)
14:15:27 <yushyin> guest61: usually import the <|> from control.applicative unqualified and others qualified but with a shorter renamed namespace
14:16:05 <guest61> yeah, I hate that
14:16:28 <yushyin> you can also hide the other <|> and not import it at all
14:17:11 <guest61> but <|> from Control and Text both are used
14:18:52 <Lycurgus> ambitious
14:19:04 <Lycurgus> hubristic even
14:23:14 fizbin joins (~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc)
14:24:13 × ddellaco_ quits (~ddellacos@89.46.62.69) (Remote host closed the connection)
14:24:41 ddellacosta joins (~ddellacos@89.46.62.69)
14:26:25 oxide joins (~lambda@user/oxide)
14:26:57 jneira joins (~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
14:28:19 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:28:29 <yushyin> You could define another operator as an alias to one of the others.
14:28:54 <DigitalKiwi> <|> voted most likely to succeed in the year book
14:29:22 × ddellacosta quits (~ddellacos@89.46.62.69) (Ping timeout: 272 seconds)
14:29:46 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
14:30:10 ukari joins (~ukari@user/ukari)
14:30:41 <boxscape> Guest2041 you should be able to use Control.Applicative's for both, I think? There is an `Alternative` instance for Parsec
14:30:48 zeenk joins (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41)
14:30:49 <boxscape> uhh, wrong guest, sorry
14:30:52 <boxscape> guest61
14:33:16 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Remote host closed the connection)
14:33:19 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 264 seconds)
14:33:38 ddellacosta joins (~ddellacos@89.46.62.86)
14:35:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
14:37:01 <yushyin> if that's the case, it's very likely the same implementation, yup.
14:37:15 × ddellacosta quits (~ddellacos@89.46.62.86) (Remote host closed the connection)
14:37:43 ddellacosta joins (~ddellacos@89.46.62.86)
14:37:52 <boxscape> yeah I checked, they're both implemented as mplus
14:37:57 <geekosaur> I* was under the (possibly incorrect) impression the Parsec one is monadic, for performance reasons
14:37:59 <geekosaur> ah
14:42:24 × ddellacosta quits (~ddellacos@89.46.62.86) (Ping timeout: 252 seconds)
14:42:50 ddellacosta joins (~ddellacos@89.46.62.34)
14:43:10 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
14:43:30 × azeem quits (~azeem@176.201.16.12) (Ping timeout: 252 seconds)
14:45:19 × fluffyballoon quits (~fluffybal@2620:72:0:6480::e5) (Quit: Client closed)
14:47:40 azeem joins (~azeem@176.201.16.12)
14:48:03 ddellaco_ joins (~ddellacos@89.46.62.34)
14:48:14 hiptobecubic joins (~john@c-73-55-99-95.hsd1.fl.comcast.net)
14:48:53 awth13 joins (~user@193.27.14.133)
14:49:56 × ddellacosta quits (~ddellacos@89.46.62.34) (Ping timeout: 244 seconds)
14:50:02 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
14:50:25 ukari joins (~ukari@user/ukari)
14:54:16 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
14:54:20 dunkeln joins (~dunkeln@94.129.65.28)
14:54:30 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
14:54:35 ddellacosta joins (~ddellacos@86.106.121.23)
14:54:49 noglog joins (~egigs@097-101-149-192.res.spectrum.com)
14:54:57 <noglog> is there a way to turn -Wmissing-methods into an error?
14:57:01 <noglog> hm, manual says -Werror=missing-methods should work. Thanks
14:57:17 × ddellaco_ quits (~ddellacos@89.46.62.34) (Ping timeout: 272 seconds)
14:57:46 lavaman joins (~lavaman@98.38.249.169)
14:59:28 ddellaco_ joins (~ddellacos@89.45.224.178)
15:01:14 × o1lo01ol1o quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
15:01:45 nattiestnate joins (~nate@180.242.128.159)
15:01:54 × ddellacosta quits (~ddellacos@86.106.121.23) (Remote host closed the connection)
15:02:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:02:56 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
15:03:00 infandum joins (~user@207.44.105.67.res-cmts.all2.ptd.net)
15:03:48 o1lo01ol1o joins (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
15:03:49 × ddellaco_ quits (~ddellacos@89.45.224.178) (Ping timeout: 245 seconds)
15:04:25 <infandum> I am using optparse-generic. My program has different commands, each sharing some arguments. One set of arguments in particular are shared across many commands. Is it possible to have a set of value constructors copied over the "or"s in the data keyword?
15:05:34 <infandum> Like, Options1 { arg1, arg2, arg3} | Options2 { arg1, arg2, arg4 } | etc. -> Options1 { argSet, arg3 } | Options2 { argSet, arg4 } | etc.
15:06:01 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
15:07:08 wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com)
15:07:09 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds)
15:07:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
15:07:30 ddellacosta joins (~ddellacos@86.106.121.47)
15:07:34 × argento quits (~argent0@168-227-96-51.ptr.westnet.com.ar) (Ping timeout: 245 seconds)
15:08:00 × ikex quits (~ash@user/ikex) (Ping timeout: 272 seconds)
15:11:33 × kenran quits (~kenran@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 252 seconds)
15:12:12 ddellaco_ joins (~ddellacos@86.106.121.89)
15:12:46 blizzard joins (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com)
15:13:20 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
15:13:42 × ddellacosta quits (~ddellacos@86.106.121.47) (Ping timeout: 244 seconds)
15:14:01 ac joins (~aloiscoch@2001:470:69fc:105::65)
15:14:01 sm[m] joins (~sm@plaintextaccounting/sm)
15:14:01 MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22)
15:14:01 maralorn joins (~maralorn@2001:470:69fc:105::251)
15:14:01 fgaz joins (~fgaz@2001:470:69fc:105::842)
15:14:02 peddie joins (~peddie@2001:470:69fc:105::25d)
15:14:02 psydroid joins (~psydroidm@2001:470:69fc:105::165)
15:14:02 siraben joins (~siraben@user/siraben)
15:14:02 fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db)
15:14:02 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
15:14:02 the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f)
15:14:02 kadoban joins (~kadoban@user/kadoban)
15:14:05 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
15:14:07 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
15:14:13 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
15:14:13 hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd)
15:14:13 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
15:14:13 srid[m] joins (~sridmatri@2001:470:69fc:105::1c2)
15:14:14 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
15:14:14 Drezil joins (~drezilkif@2001:470:69fc:105::7f8)
15:14:14 cdepillabout[m] joins (~cdepillab@2001:470:69fc:105::3d3)
15:14:14 kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d)
15:14:14 bb010g joins (~bb010gmat@2001:470:69fc:105::9a5)
15:14:14 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
15:14:14 amesgen[m] joins (~amesgenam@2001:470:69fc:105::82b)
15:14:14 tomferon[m] joins (~tomferon@2001:470:69fc:105::268)
15:14:14 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
15:14:14 eddiemundo joins (~eddiemund@2001:470:69fc:105::a9c)
15:14:14 Soft joins (~soft-matr@2001:470:69fc:105::c75)
15:14:14 adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d)
15:14:15 jaror[m] joins (~jaror@2001:470:69fc:105::265)
15:14:15 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
15:14:16 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
15:15:16 × fizbin quits (~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc) (Remote host closed the connection)
15:15:58 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
15:18:18 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection)
15:18:52 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 244 seconds)
15:18:56 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
15:19:56 × o1lo01ol1o quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
15:20:11 o1lo01ol1o joins (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
15:21:27 × Cajun quits (~Cajun@ip98-163-211-112.no.no.cox.net) (Quit: Client closed)
15:21:44 × jippiedoe quits (~david@77-171-152-62.fixed.kpn.net) (Ping timeout: 245 seconds)
15:24:55 myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net)
15:25:20 <ski> guest61 : <https://paste.tomsmeding.com/6uIVuqff>
15:26:22 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
15:27:41 × azeem quits (~azeem@176.201.16.12) (Ping timeout: 272 seconds)
15:28:19 ddellacosta joins (~ddellacos@89.46.62.48)
15:30:00 <ski> guest61 : would you still like to output a message, in case of missing password (even while chosing empty string as default) ?
15:30:28 argento joins (~argent0@168-227-96-51.ptr.westnet.com.ar)
15:30:51 × ddellaco_ quits (~ddellacos@86.106.121.89) (Ping timeout: 272 seconds)
15:30:55 azeem joins (~azeem@176.201.16.12)
15:31:59 × azeem quits (~azeem@176.201.16.12) (Read error: Connection reset by peer)
15:32:15 azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
15:32:19 × xff0x quits (~xff0x@2001:1a81:5240:1700:e30e:a0ca:64b7:1a12) (Ping timeout: 272 seconds)
15:32:41 xff0x joins (~xff0x@2001:1a81:5240:1700:9a39:76e8:fdb4:2fab)
15:33:59 × larkfisherman quits (~larkfishe@217.75.204.126) (Remote host closed the connection)
15:34:58 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
15:37:17 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:8fa1:cc04:6abc:7131) (Quit: WeeChat 2.8)
15:42:21 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
15:43:27 × argento quits (~argent0@168-227-96-51.ptr.westnet.com.ar) (Ping timeout: 252 seconds)
15:45:04 × geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 245 seconds)
15:45:11 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan)
15:45:40 geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com)
15:46:31 × MQ-17J quits (~MQ-17J@8.21.10.116) (Ping timeout: 264 seconds)
15:46:46 × xsperry quits (~as@user/xsperry) (Ping timeout: 244 seconds)
15:47:51 koishi_ joins (~koishi_@67.209.186.120.16clouds.com)
15:48:48 pe200012 joins (~pe200012@58.248.179.178)
15:49:13 × pe200012_ quits (~pe200012@120.236.162.3) (Ping timeout: 272 seconds)
15:49:22 fizbin joins (~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc)
15:50:45 malvo joins (~malvo@malvo.org)
15:50:58 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:52:16 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:52:34 × ddellacosta quits (~ddellacos@89.46.62.48) (Ping timeout: 245 seconds)
15:53:34 × koishi_ quits (~koishi_@67.209.186.120.16clouds.com) (Remote host closed the connection)
15:54:14 × fizbin quits (~fizbin@2600:1002:b128:230e:1cbd:13c5:3322:f6cc) (Ping timeout: 272 seconds)
15:56:19 ddellacosta joins (~ddellacos@89.46.62.125)
15:57:05 o1lo01ol_ joins (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
15:57:05 × o1lo01ol1o quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
15:58:51 × pe200012 quits (~pe200012@58.248.179.178) (Remote host closed the connection)
15:59:17 pe200012 joins (~pe200012@119.145.72.136)
16:00:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:01:08 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
16:01:46 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
16:04:56 ddellaco_ joins (~ddellacos@86.106.121.178)
16:05:23 × hylisper quits (~ykm@111.119.208.67) (Quit: Lost terminal)
16:05:25 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
16:09:33 mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
16:10:04 × ddellaco_ quits (~ddellacos@86.106.121.178) (Ping timeout: 272 seconds)
16:10:56 × noglog quits (~egigs@097-101-149-192.res.spectrum.com) (Quit: leaving)
16:12:50 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
16:13:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
16:14:49 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
16:15:46 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds)
16:17:09 cfricke joins (~cfricke@user/cfricke)
16:18:43 tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl)
16:19:33 × platz quits (~platz@user/platz) (Quit: leaving)
16:20:44 × vgtw quits (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in)
16:20:45 × o1lo01ol_ quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
16:21:09 o1lo01ol1o joins (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
16:21:45 × boxscape quits (~boxscape@user/boxscape) (Quit: Connection closed)
16:22:20 boxscape joins (~boxscape@user/boxscape)
16:22:59 × nschoe quits (~quassel@2a01:e0a:8e:a190:5a3:b172:cf1b:f959) (Ping timeout: 245 seconds)
16:24:59 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
16:25:35 benin03 joins (~benin@183.82.206.136)
16:26:01 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
16:28:17 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
16:28:27 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
16:29:42 nschoe joins (~quassel@2a01:e0a:8e:a190:90ee:6146:8033:6016)
16:31:56 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 252 seconds)
16:31:58 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:32:36 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
16:33:30 × mnrmnaugh quits (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net) (Ping timeout: 272 seconds)
16:34:25 jespada joins (~jespada@90.254.242.55)
16:35:19 teaSlurper joins (~chris@81.96.113.213)
16:36:16 benin034 joins (benin@gateway/vpn/protonvpn/benin)
16:36:48 × benin03 quits (~benin@183.82.206.136) (Ping timeout: 252 seconds)
16:36:49 benin034 is now known as benin03
16:38:15 <dminuoso> infandum: Yes.
16:40:03 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
16:40:33 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
16:40:43 <dminuoso> infandum: Because the parser is a permutation parser, you can just glue them together in any way you like
16:40:54 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
16:40:56 <dminuoso> Roughly what you'd do is this: data COpts = COpts { num :: Int, path :: String }; data Commands = Command1 COpts ... | Command2 COpts ...; And then you can write a parser for `commonOpts :: Parser COpts`, such that you can wrie
16:40:56 vicfred joins (~vicfred@user/vicfred)
16:41:25 <dminuoso> `Command1 <$> commonOpts <*> ...` and `Command2 <$> commonOpts <*>...`
16:42:20 <dminuoso> And because its a permutation parser, you can also change the applicative order in any way you like
16:42:34 <dminuoso> Such as `Command1 <$> fooStuff <*> commonOpts <*> ...`
16:43:00 ddellaco_ joins (~ddellacos@86.106.121.178)
16:43:11 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:43:52 <dminuoso> Oh heh. wait. optparse-generic haha. my pattern detection just read this as optparse-applicative.
16:44:04 <dminuoso> But I suppose the same still holds true.
16:46:08 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
16:46:58 <guest61> ski, I'd like it output which parameters is missing
16:46:59 mnrmnaugh joins (~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net)
16:47:03 ukari joins (~ukari@user/ukari)
16:47:30 Topsi1 joins (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
16:47:42 benin030 joins (~benin@183.82.206.136)
16:47:48 × ddellaco_ quits (~ddellacos@86.106.121.178) (Ping timeout: 252 seconds)
16:48:00 Topsi2 joins (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
16:48:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
16:48:32 <guest61> dminuoso, could fmap ap apply on parsers? what's the meaning?
16:49:27 × Topsi quits (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de) (Ping timeout: 252 seconds)
16:49:36 <dminuoso> guest61: Imagine you have some function taking 3 arguments, and you want to run three parsers each of which yields some result that would into that function
16:49:38 × amk quits (~amk@176.61.106.150) (Read error: Connection reset by peer)
16:49:39 <guest61> <$> <*> ... is liftA2
16:49:58 × benin03 quits (benin@gateway/vpn/protonvpn/benin) (Ping timeout: 272 seconds)
16:49:58 benin030 is now known as benin03
16:50:16 amk joins (~amk@176.61.106.150)
16:52:11 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
16:52:20 × spatchkaa_ quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Leaving)
16:52:30 × Topsi1 quits (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de) (Ping timeout: 272 seconds)
16:52:33 spatchkaa_ joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
16:52:36 spatchkaa_ is now known as spatchkaa
16:52:52 × o1lo01ol1o quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
16:53:09 vgtw joins (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se)
16:53:13 o1lo01ol1o joins (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net)
16:53:18 × spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Client Quit)
16:53:40 <ski> guest61 : `fmap f someParser' is a parser that will attempt to parse according to `someParser', and if that succeeds, it'll post-process the result by passing it to `f'
16:53:56 × Topsi2 quits (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de) (Quit: Leaving.)
16:54:02 spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
16:54:55 <dminuoso> guest61: Imagine you wanted to parse `foo123bar` into a 3-tuple containing a word, number and a word, then you could write `let word = satisfy isLetter in (,,) <$> word <*> number <*> word`
16:55:45 × bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 245 seconds)
16:56:09 Topsi joins (~Tobias@dyndsl-095-033-093-145.ewe-ip-backbone.de)
16:57:10 <kuribas> is there a way to stop TH from recompiling a module, if it is pure code?
16:57:44 <dminuoso> kuribas: manually splice? Ive been pondering for a while how to engineer this into GHC as a feature
16:58:31 <kuribas> I don't have side effects in my slices...
16:58:38 <kuribas> but GHC probably doesn't know that
16:58:48 <kuribas> dminuoso: even a pragma would be nice
16:58:54 <guest61> ok
16:59:24 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
16:59:59 <ski> guest61 : in general, `f <$> actA <*> actB <*> actC <*> actD' always has the same meaning : an action that will first execute `actA' (call the result `a'), then `actB' (call the result `b'), then `actC' (call the result `c'), then `actD' (call the result `d'), finally deliver as overall result `f a b c d'
17:00:05 teaSlurper joins (~chris@81.96.113.213)
17:00:10 <dminuoso> for some value of "first"
17:00:20 <ski> (and this would be the same as `liftA4 f actA actB actC actD')
17:00:21 <dminuoso> And "then" :-)
17:00:30 <ski> yes
17:00:58 <dminuoso> In the above case of permutation parsers like optparse-applicative, there's no particular order
17:01:27 <ski> the particularities of what "execute" (including the significance (if any) of the execution order) means, depends on the idiom in question. in your case, it was parsing
17:01:29 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
17:01:37 emliunix_ joins (~emliunix@103.138.74.69)
17:02:10 teaSlurper joins (~chris@81.96.113.213)
17:02:40 <ski> (still, `Command1 <$> fooStuff <*> commonOpts <*> ...' is not the same as `Command1 <$> commonOpts <*> fooStuff <*> ...', since these pass the results as different arguments to `Command1')
17:02:52 agumonke` joins (~user@88.160.31.174)
17:02:53 × emliunix quits (~emliunix@103.138.74.59) (Remote host closed the connection)
17:03:11 <ski> guest61 : any questions about the paste ?
17:03:40 <guest61> ski, not yet, I will try it tomorrow
17:04:42 roconnor_ joins (~roconnor@host-45-58-218-136.dyn.295.ca)
17:05:09 emliunix__ joins (~emliunix@218.190.244.125)
17:05:18 × roconnor_ quits (~roconnor@host-45-58-218-136.dyn.295.ca) (Client Quit)
17:05:39 <ski> (i took the liberty of removing all your `$'s, in addition to some other changes, like changing `print' to `putStrLn' to `hPutStrLn stderr', changing `read' to `readIO', using `catMaybes' instead of `filter (/= Nothing)' and subsequent `fmap fromJust', various matching with `case'-`of', rather than using `if'-`then'-`else', some alignment to more easily see the general structure, ..)
17:06:00 × emliunix_ quits (~emliunix@103.138.74.69) (Remote host closed the connection)
17:06:01 × nattiestnate quits (~nate@180.242.128.159) (Quit: WeeChat 3.1)
17:06:30 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 252 seconds)
17:06:33 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
17:07:10 <sclv> kuribas: ping
17:07:37 <kuribas> sclv: pong
17:07:54 <ski> guest61 : er, sorry. just noticed i had forgotten to remove some left-over code. try <https://paste.tomsmeding.com/1AU9FcLc> instead
17:07:59 × nschoe quits (~quassel@2a01:e0a:8e:a190:90ee:6146:8033:6016) (Ping timeout: 245 seconds)
17:08:13 <sclv> i noticed you made a bunch of hasqlator-msyql uploads in quick succession
17:08:28 <kuribas> sclv: yeah, I should test a bit better, sorry
17:08:54 <sclv> ok, just wanted to check in and discourage that (i only noticed because i'm working on the docbuilder so the new packages feed is relevant at this moment)
17:09:05 × Torro quits (Torro@gateway/vpn/protonvpn/torro) (Quit: leaving)
17:09:45 notzmv joins (~zmv@user/notzmv)
17:10:18 × ddellacosta quits (~ddellacos@89.46.62.125) (Remote host closed the connection)
17:10:46 ddellacosta joins (~ddellacos@89.46.62.125)
17:11:22 <kuribas> sclv: understood
17:11:41 <dminuoso> • No instance for (ParseFields (Nested Common))
17:11:43 <dminuoso> instance ParseField (Nested Common) where
17:11:55 dunkeln joins (~dunkeln@94.129.65.28)
17:11:56 <dminuoso> Sometimes I feel like GHC is playing pranks on me
17:12:05 teaSlurper joins (~chris@81.96.113.213)
17:12:14 <dminuoso> This is so subtle to spot..
17:12:45 lbseale joins (~lbseale@ip72-194-54-201.sb.sd.cox.net)
17:12:46 <monochrom> Oh heh
17:13:17 <monochrom> See, if names were in Chinese, you wouldn't have this problem. :)
17:14:38 ddellaco_ joins (~ddellacos@89.46.62.217)
17:15:36 <kuribas> dminuoso: I don't even see the problem...
17:15:41 <guest61> ok
17:15:45 <ski> numerus
17:15:51 <monochrom> plural vs singular in ParseField(s)
17:16:15 <kuribas> ah right :)
17:16:40 <kuribas> in clojure, such errors just lead to problems in an unrelated part of the code.
17:17:07 <kuribas> often the database. honeysql has no problem with generating garbage queries.
17:17:19 <kuribas> even though it could do better validation.
17:17:42 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
17:18:45 <boxscape> Does ghcup for WSL2 build ghc or install a binary?
17:18:49 × ddellaco_ quits (~ddellacos@89.46.62.217) (Ping timeout: 245 seconds)
17:19:02 <maerwald> boxscape: depends what you ask it to
17:19:06 <maerwald> default binary
17:19:06 <boxscape> ah
17:19:08 <boxscape> ok, thanks
17:19:23 × ddellacosta quits (~ddellacos@89.46.62.125) (Remote host closed the connection)
17:19:32 ddellacosta joins (~ddellacos@89.46.62.125)
17:20:02 <dminuoso> kuribas: Neither did I. Out of disbelief, I started throwing all extensions and type level creativities at it, and the type error just wouldn't change..
17:20:46 × o1lo01ol1o quits (~o1lo01ol1@c-73-10-81-85.hsd1.nj.comcast.net) (Remote host closed the connection)
17:21:13 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
17:21:50 teaSlurper joins (~chris@81.96.113.213)
17:22:48 × kuribas quits (~user@ptr-25vy0i8kfrck8zt2w0u.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
17:23:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:23:53 Deide joins (~Deide@wire.desu.ga)
17:23:53 × Deide quits (~Deide@wire.desu.ga) (Changing host)
17:23:53 Deide joins (~Deide@user/deide)
17:24:56 × agumonke` quits (~user@88.160.31.174) (Read error: Connection reset by peer)
17:25:04 <boxscape> just use -fdefer-type-errors and all your problems will disappear
17:26:18 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 252 seconds)
17:26:51 teaSlurper joins (~chris@81.96.113.213)
17:28:24 × chaosite quits (~chaosite@user/chaosite) (Ping timeout: 245 seconds)
17:29:22 lbseale_ joins (~lbseale@ip72-194-54-201.sb.sd.cox.net)
17:29:36 ddellaco_ joins (~ddellacos@86.106.121.44)
17:30:04 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds)
17:30:45 benin031 joins (~benin@106.198.85.3)
17:30:54 × ddellacosta quits (~ddellacos@89.46.62.125) (Ping timeout: 245 seconds)
17:31:13 × Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Quit: ran away)
17:31:46 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds)
17:32:21 × lbseale quits (~lbseale@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 252 seconds)
17:33:02 × benin03 quits (~benin@183.82.206.136) (Ping timeout: 272 seconds)
17:33:02 benin031 is now known as benin03
17:33:40 × xff0x quits (~xff0x@2001:1a81:5240:1700:9a39:76e8:fdb4:2fab) (Ping timeout: 272 seconds)
17:33:45 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 268 seconds)
17:34:53 xff0x joins (~xff0x@185.65.135.235)
17:35:33 <dminuoso> @tell infandum Here, you can use this simple newtype wrapped to bury common options like Common in multiple commands. https://gist.github.com/dminuoso/d68598ffb112cbe61c3759a530e2d837
17:35:33 <lambdabot> Consider it noted.
17:36:52 teaSlurper joins (~chris@81.96.113.213)
17:37:30 × phma quits (phma@2001:5b0:211f:f668:98fc:87:ee60:b793) (Read error: Connection reset by peer)
17:37:43 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:37:47 stefan-_ joins (~cri@42dots.de)
17:40:36 × myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds)
17:43:11 agumonke` joins (~user@88.160.31.174)
17:43:21 × xff0x quits (~xff0x@185.65.135.235) (Ping timeout: 252 seconds)
17:45:03 xff0x joins (~xff0x@2001:1a81:5240:1700:9a39:76e8:fdb4:2fab)
17:45:19 × jespada quits (~jespada@90.254.242.55) (Ping timeout: 264 seconds)
17:46:56 jespada joins (~jespada@90.254.242.55)
17:46:58 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds)
17:47:22 myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net)
17:49:42 ddellacosta joins (~ddellacos@89.45.224.178)
17:54:21 × ddellacosta quits (~ddellacos@89.45.224.178) (Ping timeout: 252 seconds)
17:54:59 jippiedoe joins (~david@77-171-152-62.fixed.kpn.net)
17:55:37 phma joins (phma@2001:5b0:211f:5688:a0:2a2f:464e:6b06)
17:57:09 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
17:57:44 JimL joins (~quassel@ti0577q162-3381.bb.online.no)
17:59:00 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 272 seconds)
17:59:34 safinaskar joins (~user@109-252-90-89.nat.spd-mgts.ru)
17:59:50 <tomsmeding> dminuoso: that error is sneaky as hell
17:59:54 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:dc63:473e:1d9e:8708)
17:59:59 <safinaskar> is there a way to make this code compile? f :: a -> a; f x = (x :: a)
18:00:20 <dminuoso> safinaskar: -fdefer-type-errors
18:00:23 dminuoso chuckles
18:00:31 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
18:00:42 <boxscape> f :: forall a . a -> a; f x = (x :: a)
18:00:46 <boxscape> with -XScopedTypeVariables
18:01:11 <boxscape> % f :: forall a . a -> a; f x = (x :: a)
18:01:11 <yahb> boxscape:
18:01:13 <dminuoso> Do we have `f :: a -> a; f @b x = (x :: b)` already?
18:01:23 <dminuoso> Buried in some extension perhaps?
18:01:38 <boxscape> dminuoso I've opened a ticket about implementing it but the -XTypeAbstractions proposal needs to be sorted out first
18:01:50 <boxscape> https://github.com/ghc-proposals/ghc-proposals/pull/238/
18:03:11 × ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Ping timeout: 244 seconds)
18:03:11 × hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Ping timeout: 244 seconds)
18:03:11 × fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Ping timeout: 244 seconds)
18:03:11 × the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Ping timeout: 244 seconds)
18:03:11 × psydroid quits (~psydroidm@2001:470:69fc:105::165) (Ping timeout: 244 seconds)
18:03:11 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Ping timeout: 244 seconds)
18:03:11 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 244 seconds)
18:03:11 × sm[m] quits (~sm@plaintextaccounting/sm) (Ping timeout: 244 seconds)
18:03:11 × siraben quits (~siraben@user/siraben) (Ping timeout: 244 seconds)
18:03:30 × cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 272 seconds)
18:03:30 × eddiemundo quits (~eddiemund@2001:470:69fc:105::a9c) (Ping timeout: 272 seconds)
18:03:30 × vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 272 seconds)
18:03:31 × peddie quits (~peddie@2001:470:69fc:105::25d) (Ping timeout: 272 seconds)
18:03:31 × ac quits (~aloiscoch@2001:470:69fc:105::65) (Ping timeout: 272 seconds)
18:03:31 × MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Ping timeout: 272 seconds)
18:03:41 × Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Ping timeout: 244 seconds)
18:03:41 × Drezil quits (~drezilkif@2001:470:69fc:105::7f8) (Ping timeout: 244 seconds)
18:03:41 × cdepillabout[m] quits (~cdepillab@2001:470:69fc:105::3d3) (Ping timeout: 244 seconds)
18:03:41 × kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Ping timeout: 244 seconds)
18:03:41 × zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 244 seconds)
18:03:41 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 244 seconds)
18:03:41 × maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Ping timeout: 244 seconds)
18:04:07 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (Ping timeout: 272 seconds)
18:04:07 × bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Ping timeout: 272 seconds)
18:04:07 × oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 272 seconds)
18:04:07 × amesgen[m] quits (~amesgenam@2001:470:69fc:105::82b) (Ping timeout: 272 seconds)
18:04:07 × tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Ping timeout: 272 seconds)
18:04:07 × marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Ping timeout: 272 seconds)
18:04:07 × Soft quits (~soft-matr@2001:470:69fc:105::c75) (Ping timeout: 272 seconds)
18:04:07 × adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Ping timeout: 272 seconds)
18:04:07 × srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 272 seconds)
18:05:42 × benin03 quits (~benin@106.198.85.3) (Read error: Connection reset by peer)
18:06:54 benin03 joins (~benin@183.82.206.233)
18:08:49 cfricke joins (~cfricke@user/cfricke)
18:09:57 × ddellaco_ quits (~ddellacos@86.106.121.44) (Read error: Connection reset by peer)
18:10:28 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
18:11:10 teaSlurper joins (~chris@81.96.113.213)
18:11:30 ddellacosta joins (~ddellacos@86.106.121.44)
18:12:32 argento joins (~argent0@168-227-96-51.ptr.westnet.com.ar)
18:15:28 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 272 seconds)
18:19:39 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 245 seconds)
18:20:38 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:25:59 ddellaco_ joins (~ddellacos@86.106.121.165)
18:26:04 × ddellaco_ quits (~ddellacos@86.106.121.165) (Remote host closed the connection)
18:27:48 × jippiedoe quits (~david@77-171-152-62.fixed.kpn.net) (Quit: Leaving)
18:30:20 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
18:32:53 × ddellacosta quits (~ddellacos@86.106.121.44) (Remote host closed the connection)
18:33:21 ddellacosta joins (~ddellacos@86.106.121.44)
18:33:44 × JimL quits (~quassel@ti0577q162-3381.bb.online.no) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:35:43 Guest68 joins (~Guest68@82.40.121.143)
18:35:54 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
18:37:08 <Guest68> I'm trying to optimise some code. I've noticed that if I copy the contents of a module into Main.hs (and don't import the module), I get a ~2x speedup. What could be causing this?
18:37:29 dunkeln joins (~dunkeln@94.129.65.28)
18:39:21 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
18:39:34 Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr)
18:42:01 <Ariakenom> Guest68: Are you using all the -O (Optimization) flags?
18:42:11 <Guest68> Ariakenom: Yes
18:43:12 × ystael quits (~ystael@user/ystael) (Quit: Lost terminal)
18:43:30 <Ariakenom> and not ghci?
18:44:03 <safinaskar> boxscape: thanks
18:44:27 <Guest68> Ariakenom: No, I'm compiling with ghc and running the resulting executable.
18:46:15 <tput> try adding INLINE or INLINABLE pragmas. afaik GHC doesn't inline across module boundaries unless hinted at to do so
18:46:24 <dminuoso> It does
18:46:33 <dminuoso> Just not with a guarantee
18:46:45 <dminuoso> For relatively small code GHC will by default include unfoldings in interface files
18:47:24 <dminuoso> Think its even that without INLINABLE, you'd get optimized unfoldings, but with INLINABLE it would give you unoptimized unfoldings
18:47:59 <Ariakenom> my thoughts also went towards inlining. (and yes GHC does inline, but it is affected by module boundaries. getting inlining right is sibtle)
18:48:27 <dminuoso> Guest68: Lack of specialization can also be part of it.
18:48:46 <dminuoso> This is especially noticable in mtl-polymorphic code
18:49:14 <Guest68> I've tried SPECIALIZE-ing everything in the module, but it made no difference. Are there any heuristics on what to INLINE?
18:49:45 <dminuoso> INLINE, not generally as a rule of thumb
18:49:52 <dminuoso> That one is an arcane art.. :-)
18:50:10 <dminuoso> INLINABLE as a default however is fairly fine.
18:52:04 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
18:54:27 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
18:54:50 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:55:57 × benin03 quits (~benin@183.82.206.233) (Quit: The Lounge - https://thelounge.chat)
18:57:13 ddellaco_ joins (~ddellacos@89.45.224.126)
18:59:29 lavaman joins (~lavaman@98.38.249.169)
18:59:34 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
18:59:35 <Guest68> Adding INLINABLE everywhere hasn't made any difference :(
19:00:52 <maerwald> is there a high-level library for lzip?
19:01:25 a6a45081-2b83 joins (~aditya@223.235.239.159)
19:03:55 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 264 seconds)
19:04:51 bontaq` joins (~user@ool-18e47f8d.dyn.optonline.net)
19:07:58 × ddellacosta quits (~ddellacos@86.106.121.44) (Remote host closed the connection)
19:08:07 ddellacosta joins (~ddellacos@86.106.121.44)
19:09:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:11:04 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
19:13:43 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:19:19 <dminuoso> Guest68: Can you share the code?
19:19:26 <dminuoso> It's very hard to give qualified advice without even seeing it.
19:19:30 × azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer)
19:19:40 azeem joins (~azeem@176.200.249.52)
19:19:54 × mc47 quits (~yecinem@89.246.239.190) (Remote host closed the connection)
19:20:00 × azeem quits (~azeem@176.200.249.52) (Read error: Connection reset by peer)
19:20:02 × agumonke` quits (~user@88.160.31.174) (Read error: Connection reset by peer)
19:20:14 azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it)
19:22:24 econo joins (uid147250@user/econo)
19:23:57 f33f046c-a02e joins (~aditya@223.178.225.24)
19:24:39 × a6a45081-2b83 quits (~aditya@223.235.239.159) (Ping timeout: 245 seconds)
19:24:42 ystael joins (~ystael@user/ystael)
19:26:23 × ddellacosta quits (~ddellacos@86.106.121.44) (Remote host closed the connection)
19:26:23 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
19:26:50 <Guest68> dminuoso: https://paste.tomsmeding.com/Vj1sJXL5
19:26:51 ddellacosta joins (~ddellacos@86.106.121.44)
19:28:14 <dminuoso> Guest68: Mmm. Try -fexpose-all-unfoldings in addition to INLINABLE
19:28:41 <dminuoso> The monad polymorphism could prevent inlining from occuring
19:29:00 × berberman quits (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
19:29:11 xsperry joins (~as@user/xsperry)
19:29:48 × forell_ quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Quit: ZNC - https://znc.in)
19:30:16 <dminuoso> What is ListOnionT?
19:32:14 × ddellacosta quits (~ddellacos@86.106.121.44) (Remote host closed the connection)
19:32:28 ddellacosta joins (~ddellacos@86.106.121.44)
19:32:35 × xprlgjf quits (~gavin@60.27.93.209.dyn.plus.net) (Remote host closed the connection)
19:33:19 × Guest68 quits (~Guest68@82.40.121.143) (Quit: Ping timeout (120 seconds))
19:33:49 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds)
19:34:10 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:35:29 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 245 seconds)
19:35:45 Guest68 joins (~Guest68@82.40.121.143)
19:36:07 <Guest68> -fexpose-all-unfoldings and INLINABLE was much much slower
19:36:10 forell joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
19:36:31 × favonia quits (~favonia@user/favonia) (Remote host closed the connection)
19:36:36 <Guest68> data ListOnionT c m a = ListOnionT {getNil :: m a, getCons :: c -> m (Either a (ListOnionT c m a))}
19:37:09 <Guest68> It's supposed to be list ReaderT [c] m a, but you can read the list one element at a time. i.e. unwrapping like an onion
19:37:55 favonia joins (~favonia@user/favonia)
19:38:14 × ubert quits (~Thunderbi@p200300ecdf259d3dfcd415488b1ba362.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
19:38:18 ub joins (~Thunderbi@p200300ecdf259d2d3d1bf7f6f1f48366.dip0.t-ipconnect.de)
19:39:02 <dminuoso> Well, rather `ReaderT [c] (ExceptT a) m`, no?
19:39:18 <dminuoso> (Or maybe flipped around, cant focus right now)
19:40:06 <Guest68> The 'Either a' part is for shortcutting, so that you don't have to read the entire list.
19:40:29 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds)
19:40:36 ub is now known as ubert
19:40:55 <Guest68> pureListOnionT a = ListOnionT (pure a) (const $ pure $ Left a)
19:40:57 <dminuoso> So this is a sort of streaming parser?
19:41:01 <Guest68> Yes, exactly.
19:43:01 <dminuoso> Is the intend to write a streaming parser library, or is this just an immediate solution to another problem?
19:43:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
19:43:34 <Guest68> It's just for a personal project.
19:44:50 <dminuoso> Guest68: Things that come to mind that could help: INLINE pragmas on some of those combinators (megaparsec for example simply INLINEs... everything - quite possibly not the best choice)
19:45:14 <dminuoso> And turning those either effects into continuations
19:46:04 <dminuoso> You should also use Writer from Control.Monad.Trans.Writer.CPS, the one you imported behaves very poorly
19:46:46 <Guest68> So, replace 'Either l r' with 'forall a. (l -> a) -> (r -> a) -> a'?
19:47:09 × favonia quits (~favonia@user/favonia) (Ping timeout: 245 seconds)
19:47:16 <dminuoso> I think I would handroll the entire parser stack with continuations
19:47:22 <dminuoso> Rather than using monad transformers
19:47:27 chexum joins (~chexum@gateway/tor-sasl/chexum)
19:47:33 favonia joins (~favonia@user/favonia)
19:48:19 <dminuoso> Otherwise you will rely on deforestation to obtain any agreeable performance
19:48:35 nschoe joins (~quassel@2a01:e0a:8e:a190:29db:2818:25aa:c67e)
19:50:09 <Guest68> Could you point me toward anything I could read about that?
19:51:32 <dminuoso> Guest68: Not sure. The rationale is quite easy, when you produce a Right constantly, and subsequently pattern match on it, it impedes further fusion/inlining
19:52:25 <dminuoso> Perhaps someone else in this channel has good resources on this
19:53:38 <dminuoso> Guest68: In many cases, GHC can apply optimization tricks to make the intermediate constructor disappear, until it cant.
19:54:03 berberman joins (~berberman@user/berberman)
19:54:41 dunkeln joins (~dunkeln@94.129.65.28)
19:55:17 <monochrom> However, if the issue is that import vs #include causes an efficiency difference, then the issue is how many more pragmas to bark to ghc.
19:56:00 <dminuoso> Guest68: Here's one example that GHC does to make working with intermediate lists often invisible:
19:56:17 <dminuoso> https://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Base.html#v:build
19:56:45 <dminuoso> (The surrounding optimization is called foldr/build fusion)
19:56:52 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:57:16 <Guest68> That looks promising.
19:57:18 × f33f046c-a02e quits (~aditya@223.178.225.24) (Quit: Konversation terminated!)
19:57:29 <Guest68> I'll look into it.
19:57:34 <Guest68> Thanks a lot for the help!
19:57:36 <dminuoso> Guest68: also take a look at the megaparsec implementation
19:57:45 <dminuoso> It should give you an idea how a continuation based parser could look like
19:57:58 × kadoban quits (~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM)
19:57:58 × ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Quit: Bridge terminating on SIGTERM)
19:57:58 × Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Quit: Bridge terminating on SIGTERM)
19:58:26 <dminuoso> ttps://hackage.haskell.org/package/base-4.15.0.0/docs/GHC-Base.html#v:build
19:58:28 <dminuoso> https://hackage.haskell.org/package/megaparsec-9.0.1/docs/src/Text.Megaparsec.Internal.html#ParsecT
19:58:39 maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee)
19:59:19 siraben joins (~siraben@user/siraben)
19:59:20 ac joins (~aloiscoch@2001:470:69fc:105::65)
19:59:20 sm[m] joins (~sm@plaintextaccounting/sm)
19:59:20 maralorn joins (~maralorn@2001:470:69fc:105::251)
19:59:20 MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22)
19:59:20 fgaz joins (~fgaz@2001:470:69fc:105::842)
19:59:20 peddie joins (~peddie@2001:470:69fc:105::25d)
19:59:20 psydroid joins (~psydroidm@2001:470:69fc:105::165)
19:59:20 fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db)
19:59:20 ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a)
19:59:20 the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f)
19:59:21 kadoban joins (~kadoban@user/kadoban)
19:59:23 Las[m] joins (~lasmatrix@2001:470:69fc:105::74e)
19:59:23 ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2)
19:59:25 vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe)
19:59:32 zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4)
19:59:32 eddiemundo joins (~eddiemund@2001:470:69fc:105::a9c)
19:59:32 srid[m] joins (~sridmatri@2001:470:69fc:105::1c2)
19:59:32 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
19:59:32 bb010g joins (~bb010gmat@2001:470:69fc:105::9a5)
19:59:32 Artem[m] joins (~artemtype@2001:470:69fc:105::75b)
19:59:32 marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8)
19:59:32 Drezil joins (~drezilkif@2001:470:69fc:105::7f8)
19:59:32 adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d)
19:59:32 hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd)
19:59:32 tomferon[m] joins (~tomferon@2001:470:69fc:105::268)
19:59:32 cdepillabout[m] joins (~cdepillab@2001:470:69fc:105::3d3)
19:59:32 oak- joins (~oakuniver@2001:470:69fc:105::fcd)
19:59:32 amesgen[m] joins (~amesgenam@2001:470:69fc:105::82b)
19:59:32 kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d)
19:59:32 Soft joins (~soft-matr@2001:470:69fc:105::c75)
19:59:34 cdsmith joins (~cdsmithma@2001:470:69fc:105::284)
19:59:34 jaror[m] joins (~jaror@2001:470:69fc:105::265)
20:00:11 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
20:00:29 × ddellaco_ quits (~ddellacos@89.45.224.126) (Ping timeout: 245 seconds)
20:01:13 <dminuoso> Guest68: Some further reading material on the correctness of foldr/build fusion https://wiki.haskell.org/Correctness_of_short_cut_fusion
20:02:30 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
20:02:30 × psydroid quits (~psydroidm@2001:470:69fc:105::165) (Changing host)
20:02:30 psydroid joins (~psydroidm@user/psydroid)
20:03:55 <Guest68> Thanks.
20:04:04 bruceleewees joins (~bruceleew@83.24.248.233.ipv4.supernova.orange.pl)
20:04:20 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
20:05:20 × juhp quits (~juhp@128.106.188.199) (Ping timeout: 245 seconds)
20:07:23 <maerwald> I wonder what happens if I mix CPP and quasi-quotes
20:07:58 <dminuoso> maerwald: You give up any hopes of ever being friends with HLS.
20:08:02 juhp joins (~juhp@128.106.188.199)
20:08:02 <tomsmeding> breaking of the fourth wall
20:08:18 <maerwald> :>
20:08:50 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
20:09:08 <dminuoso> Or actually, I think HLS should be fine
20:09:27 <tomsmeding> as long as you don't work in that particular module I think
20:09:38 <maerwald> another way would be... can I extend the Paths_pkg with my own symbols?
20:09:56 <maerwald> like... have some custom variables in .cabal
20:10:00 × emliunix__ quits (~emliunix@218.190.244.125) (Remote host closed the connection)
20:10:05 <maerwald> similar to version
20:10:17 emliunix__ joins (~emliunix@103.138.74.59)
20:10:29 × favonia quits (~favonia@user/favonia) (Ping timeout: 245 seconds)
20:10:50 <maerwald> don't want to turn this into an autoconf package
20:11:18 favonia joins (~favonia@user/favonia)
20:11:38 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:11:44 <tomsmeding> I assume you're not looking for cabal flags?
20:11:54 <maerwald> nope... it's statically set on release
20:11:56 hexfive joins (~eric@50.35.83.177)
20:12:03 × hexfive quits (~eric@50.35.83.177) (Client Quit)
20:12:16 <maerwald> but it's nice to have it in .cabal file
20:12:25 <dminuoso> maerwald: You're just missing typechecker plugins now.
20:12:43 <maerwald> cpp-options: -DMYVAR=1.0.0
20:12:45 <maerwald> but then yeah
20:14:18 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:14:55 ordinate joins (~ordinate@c-68-38-144-3.hsd1.in.comcast.net)
20:14:57 <maerwald> https://cabal.readthedocs.io/en/3.4/cabal-package.html?highlight=getSysconfDir#accessing-data-files-from-package-code this could be a cooler API
20:15:10 <ordinate> good afternoon
20:15:18 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:15:20 drownbes joins (~drownbes@193-31-46-176.dyn.estpak.ee)
20:15:32 <tomsmeding> good evening :)
20:17:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
20:18:31 <ordinate> my quest to make myself an electronic drum machine for under $20 might accidentally spawn a haskell library
20:19:06 <maerwald> sounds like you want to get into 3d printing too
20:19:10 × Guest68 quits (~Guest68@82.40.121.143) (Quit: Client closed)
20:21:08 <tput> for no good reason, I keep thinking about writing a slicer
20:22:09 <ordinate> why 3d print when i have tin foil and batteries?
20:22:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:24:37 × drownbes quits (~drownbes@193-31-46-176.dyn.estpak.ee) (Quit: Leaving)
20:24:38 jkoshy` joins (~user@2001:8b0:a67e:ab40:b9c8:b2ad:c22c:d22a)
20:27:25 × jkoshy` quits (~user@2001:8b0:a67e:ab40:b9c8:b2ad:c22c:d22a) (Client Quit)
20:27:53 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
20:28:18 _73 joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
20:28:47 <maerwald> tput: oh god... you know how much work that is?
20:28:57 bontaq` is now known as bontaq
20:29:43 × ddellacosta quits (~ddellacos@86.106.121.44) (Ping timeout: 264 seconds)
20:30:04 × Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:dc63:473e:1d9e:8708) (Quit: Leaving)
20:30:24 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.1)
20:30:43 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:31:18 <_73> I have many functions that may fail. Some of these functions return Maybes, while others return `Either String a`. These functions will only be called from within a State monad. Will I be able to get everything to compose under a Monad transformer?
20:31:29 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
20:31:52 <_73> or should I change the maybes to eithers as well?
20:31:59 lavaman joins (~lavaman@98.38.249.169)
20:33:18 × bruceleewees quits (~bruceleew@83.24.248.233.ipv4.supernova.orange.pl) (Ping timeout: 252 seconds)
20:33:51 <dminuoso> _73: I recommend massage functions `hush :: Either a b -> Maybe b` and `note :: a -> Maybe b -> Either a b`
20:34:34 <tput> maerwald: yes, that's why there are no good reasons! it would never be anywhere near the established slicers, just a useless toy
20:34:35 <dminuoso> Or perhaps a flavor polymorphic over monad transformers, like `noteM :: MonadError e m => e -> Maybe b -> m b`
20:35:05 <dminuoso> _73: Whether you tie these into a monad transformer depends on whether you wish to have shortcircuiting behavior
20:36:26 ddellacosta joins (~ddellacos@89.46.62.127)
20:36:34 <_73> dminuoso: I see what you mean with note and hush. I do wish to have a shortcircuting behavior. In the end I want my program to return `Either Error FinalState`
20:36:42 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
20:38:09 <dminuoso> _73: Next decide how you want to layer state and either then. Try and think what difference it makes how they are ordered.
20:38:44 <dminuoso> (i.e. whether to use `StateT S (Except Error)` or `ExceptT Error (State S)`
20:39:26 <dminuoso> @until StateT S (Except Error)
20:39:26 <lambdabot> Maybe you meant: unpl unmtl
20:39:28 <dminuoso> @unmtl StateT S (Except Error)
20:39:28 <lambdabot> err: `StateT S (Except Error)' is not applied to enough arguments, giving `/\A. S -> Except Error (A, S)'
20:39:34 <dminuoso> @unmtl StateT S (Except Error) M
20:39:34 <lambdabot> S -> Except Error (M, S)
20:39:42 × AgentM quits (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
20:39:43 <dminuoso> @unmtl ExceptT Error (State S) M
20:39:43 <lambdabot> S -> (Either Error M, S)
20:39:55 epolanski joins (uid312403@id-312403.brockwell.irccloud.com)
20:40:39 <_73> I see. I believe I want `ExceptT Error (State S)`. This is gonna work though thanks
20:41:48 <dminuoso> _73: You can write `type M = ExceptT Error (State S); hushT :: Either Error b -> M b; note :: Error -> Maybe a -> M a`
20:41:54 <dminuoso> Or maybe noteT for consistency
20:42:42 <dminuoso> or heh, the hushT is silly. It should be called `liftEither` rather
20:43:59 ddellaco_ joins (~ddellacos@89.46.62.40)
20:44:05 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:45:23 Codaraxis joins (~Codaraxis@89.45.7.142)
20:45:34 × _73 quits (~user@pool-96-252-123-136.bstnma.fios.verizon.net) (Ping timeout: 272 seconds)
20:45:47 _73`` joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
20:45:54 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
20:45:55 Cajun joins (~Cajun@ip98-163-211-112.no.no.cox.net)
20:46:03 <safinaskar> @unpl
20:46:03 <lambdabot> Error: expected a Haskell expression or declaration
20:46:08 <safinaskar> @help
20:46:08 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
20:46:54 _73`` parts (~user@pool-96-252-123-136.bstnma.fios.verizon.net) ()
20:47:12 safinaskar parts (~user@109-252-90-89.nat.spd-mgts.ru) ()
20:47:24 space-shell joins (~space-she@88.98.247.38)
20:47:28 × Codaraxis quits (~Codaraxis@89.45.7.142) (Client Quit)
20:47:28 × ddellacosta quits (~ddellacos@89.46.62.127) (Ping timeout: 272 seconds)
20:47:59 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
20:48:03 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
20:48:24 Codaraxis joins (~Codaraxis@89.45.7.142)
20:48:45 _73 joins (~user@pool-96-252-123-136.bstnma.fios.verizon.net)
20:49:53 Erutuon joins (~Erutuon@user/erutuon)
20:52:34 × pe200012 quits (~pe200012@119.145.72.136) (Ping timeout: 245 seconds)
20:52:38 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
20:52:53 pe200012 joins (~pe200012@58.248.179.178)
20:53:59 × hiruji quits (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Read error: Connection reset by peer)
20:54:12 hiruji joins (~hiruji@user/hiruji)
20:55:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:02:37 × ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer)
21:04:31 × xsperry quits (~as@user/xsperry) (Ping timeout: 264 seconds)
21:04:57 × favonia quits (~favonia@user/favonia) (Remote host closed the connection)
21:06:06 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:08:42 benin03 joins (~benin@183.82.206.233)
21:09:38 × ddellaco_ quits (~ddellacos@89.46.62.40) (Ping timeout: 272 seconds)
21:09:53 <boxscape> hmm <> for Map is union, I wonder if unionWith (<>) would be useful more often
21:09:57 <boxscape> it's what I need at the moment
21:11:45 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
21:12:34 <tomsmeding> a certain merijn has often complained about this exact thing
21:12:42 <monochrom> { union, intersect, unionWith (<>), intersectWith (<>) }
21:12:46 <boxscape> ah
21:13:28 <monochrom> I propose setting up an AOE2 tournament of 4 sides to determine which one wins.
21:13:50 <boxscape> that sounds like a great idea
21:14:26 <monochrom> But I belong to the 5th side that has the wisdom to refrain from picking any side for <> for Bool in the first place.
21:15:07 <tomsmeding> monochrom: isn't that saying that <> should be unionWith (<>) ?
21:15:42 <monochrom> I am fine with unionWith (<>) if you are also fine with intersectWith (<>).
21:15:58 ddellacosta joins (~ddellacos@86.106.121.118)
21:16:12 xsperry joins (~as@user/xsperry)
21:16:27 <monochrom> Hell, there are a 6th side I forgot. symmetric difference.
21:16:50 <tomsmeding> name me a data structure that chose to have a<>b be smaller than a and b
21:17:07 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
21:18:55 <monochrom> longest common subsequence
21:19:30 <tomsmeding> it's ultimately all arbitrary but I do think that there is a good case to be made for union rather than intersect; the case for unionWith (<>) rather than union is weaker but still present
21:20:00 <tput> wrapper types like Product and Sum?
21:20:14 <boxscape> I suppose if we had a commonly used commutative monoid class that would settle it
21:20:21 <boxscape> but yeah wrapper types would be one solution
21:20:21 × infandum quits (~user@207.44.105.67.res-cmts.all2.ptd.net) (Read error: Connection reset by peer)
21:20:34 <monochrom> I'm OK with giving some sides a bit more resources at the beginning of the tournament so they have a bit higher chance to win. :)
21:21:04 <dminuoso> Is there a way to annotate an attoparsec parser to guarantee it will not consume more than X tokens?
21:21:17 <monochrom> But time to promote my crazy idea again :) https://mail.haskell.org/pipermail/haskell-cafe/2010-November/086220.html
21:21:28 <monochrom> Err no wrong one.
21:21:39 <monochrom> This one: https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html
21:23:27 <boxscape> neat
21:26:44 favonia joins (~favonia@user/favonia)
21:27:46 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
21:28:00 × jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 272 seconds)
21:29:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
21:29:42 × wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:32:32 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1)
21:34:21 notzmv joins (~zmv@user/notzmv)
21:34:26 Heffalump joins (~ganesh@urchin.earth.li)
21:34:34 Heffalump parts (~ganesh@urchin.earth.li) ()
21:39:13 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
21:40:11 ystael joins (~ystael@user/ystael)
21:40:37 × ddellacosta quits (~ddellacos@86.106.121.118) (Remote host closed the connection)
21:41:12 ddellacosta joins (~ddellacos@89.46.62.86)
21:42:26 ddellaco_ joins (~ddellacos@86.106.121.62)
21:43:00 ddellac__ joins (~ddellacos@86.106.121.65)
21:44:50 × michalz quits (~user@185.246.204.107) (Remote host closed the connection)
21:45:54 × ddellacosta quits (~ddellacos@89.46.62.86) (Ping timeout: 252 seconds)
21:47:00 × ddellaco_ quits (~ddellacos@86.106.121.62) (Ping timeout: 252 seconds)
21:50:29 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 245 seconds)
21:50:40 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:51:01 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 244 seconds)
21:52:15 jneira joins (~jneira@166.red-81-39-172.dynamicip.rima-tde.net)
21:53:20 × nschoe quits (~quassel@2a01:e0a:8e:a190:29db:2818:25aa:c67e) (Ping timeout: 272 seconds)
21:55:29 × involans quits (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) (Ping timeout: 245 seconds)
21:56:12 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
21:57:03 aerona joins (~aerona@2600:6c54:4600:f300:90f0:5e8d:1f86:bfa1)
21:57:15 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
21:58:47 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:02:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:03:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0) (Remote host closed the connection)
22:04:37 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:06:16 × tremon quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
22:07:36 × ddellac__ quits (~ddellacos@86.106.121.65) (Ping timeout: 250 seconds)
22:08:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
22:11:31 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
22:12:18 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
22:13:33 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
22:16:10 HotblackDesiato_ joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
22:17:48 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
22:18:27 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
22:22:09 niko is now known as o
22:28:00 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
22:28:34 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:90fb:e693:9986:91e0)
22:32:25 <janus> is there a way to negate MIN_PACKAGE_base ?
22:32:37 <janus> i tried with "!", and that didn't seem to work
22:33:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:34:07 <janus> MIN_VERSION, i meant
22:35:48 <janus> oooh it dooooes work :), just got a similar error from another file :P
22:36:39 <juri_> stan is unforgiving. i've been working for weeks to get my code from 500 stan warnings down to 330... and i've improved my project health from 59.09% to 61.36%.
22:37:02 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
22:37:31 × yoctocell quits (~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 264 seconds)
22:44:08 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
22:46:24 × dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
22:46:34 <janus> where do i ask trustees to make revisions bumping base bounds?
22:48:03 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 252 seconds)
22:48:30 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
22:53:41 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
22:53:47 <janus> the packages cryptohash-md5 and cryptohash-sha1 both work fine with bumped base bounds, but they havn't been revision bumped. and hvr is missing so that's why i am counting on the trustees
22:55:12 × myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds)
22:56:09 <sm[m]> janus: the hackage front page links to a Hackage trustees wiki page which looks informative
22:56:27 <sm[m]> you could also try #hackage
22:56:46 <janus> all right, thanks, i'll try #hackage
23:04:54 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:04:54 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds)
23:05:13 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1)
23:08:00 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
23:10:05 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
23:10:36 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds)
23:11:14 × space-shell quits (~space-she@88.98.247.38) (Quit: Connection closed)
23:14:10 motherfsck joins (~motherfsc@user/motherfsck)
23:18:09 smitop2 joins (uid328768@id-328768.tinside.irccloud.com)
23:18:12 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds)
23:18:40 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 250 seconds)
23:18:59 motherfsck joins (~motherfsc@user/motherfsck)
23:19:10 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
23:19:23 × zeenk quits (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!)
23:19:36 × Cale quits (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection)
23:23:46 Cale joins (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com)
23:24:07 pe200012_ joins (~pe200012@119.145.72.136)
23:24:35 × pe200012 quits (~pe200012@58.248.179.178) (Ping timeout: 272 seconds)
23:24:49 lavaman joins (~lavaman@98.38.249.169)
23:25:36 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
23:26:11 myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net)
23:26:53 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
23:28:32 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
23:29:53 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
23:30:49 hmmmas joins (~chenqisu1@183.217.201.236)
23:31:28 BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com)
23:31:35 × hmmmas quits (~chenqisu1@183.217.201.236) (Client Quit)
23:31:52 hmmmas joins (~chenqisu1@183.217.201.236)
23:31:56 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
23:34:23 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
23:36:00 × BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 250 seconds)
23:38:07 notzmv joins (~zmv@user/notzmv)
23:42:01 fendor_ joins (~fendor@178.115.41.96.wireless.dyn.drei.com)
23:42:30 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds)
23:44:43 × fendor quits (~fendor@178.115.130.234.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
23:45:43 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
23:47:05 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
23:47:27 × bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Remote host closed the connection)
23:51:11 × ordinate quits (~ordinate@c-68-38-144-3.hsd1.in.comcast.net) (Quit: Leaving)
23:54:18 nosewings joins (~ncoltharp@2603-8081-3e05-e2d0-0000-0000-0000-1aef.res6.spectrum.com)
23:55:36 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
23:56:15 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
23:57:20 Guest75 joins (~Guest75@adsl-72-50-4-188.prtc.net)
23:57:27 × Guest75 quits (~Guest75@adsl-72-50-4-188.prtc.net) (Client Quit)
23:58:00 minare_window joins (~minare_wi@adsl-72-50-4-120.prtc.net)

All times are in UTC on 2021-06-07.