2021/12/02

2021-12-02 00:00:00 +0100 <int-e> monochrom: oh but a triple fault gets you out of protected mode and back into real mode on 80286 :P
2021-12-02 00:00:25 +0100 <monochrom> That's very Inception-like...
2021-12-02 00:00:41 +0100 <hpc> i choose to believe the opposite of real mode is integer mode
2021-12-02 00:00:47 +0100 <monochrom> haha
2021-12-02 00:02:34 +0100 <davean> monochrom: a triple fault is how you reboot, right?
2021-12-02 00:03:14 +0100 <int-e> monochrom: To be clear, it is a CPU reset. But PC BIOSes allowed you to hook into the initialization procedure and take over, so you could recover from that without destroying data or resetting the rest of the hardware.
2021-12-02 00:03:17 +0100 <hpc> just fault one more time while the computer is off?
2021-12-02 00:04:13 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-12-02 00:04:18 +0100 <monochrom> The Fault In Wordstar
2021-12-02 00:05:04 +0100 <hpc> sometimes when i finally get all my tests to pass i think "finally everything words perfectly"
2021-12-02 00:05:18 +0100 <monochrom> hahaha
2021-12-02 00:05:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 00:05:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 00:10:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 00:14:44 +0100mikail(~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Ping timeout: 252 seconds)
2021-12-02 00:14:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 00:17:53 +0100kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-02 00:18:27 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-12-02 00:19:16 +0100nvmd(~nvmd@user/nvmd) (Quit: Later, nerds.)
2021-12-02 00:22:54 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 265 seconds)
2021-12-02 00:24:30 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2021-12-02 00:25:35 +0100Flonk(~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds))
2021-12-02 00:25:40 +0100renzhi(~xp@2607:fa49:6500:b100::5cef)
2021-12-02 00:25:40 +0100kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-12-02 00:25:56 +0100Flonk(~Flonk@vps-zap441517-1.zap-srv.com)
2021-12-02 00:27:11 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
2021-12-02 00:27:56 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-02 00:28:25 +0100_bo(~bo@217.18.216.247) (Quit: Leaving)
2021-12-02 00:28:27 +0100Codaraxis__(~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2021-12-02 00:29:32 +0100kritzefitz_(~kritzefit@debian/kritzefitz)
2021-12-02 00:31:47 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
2021-12-02 00:32:30 +0100ph88(~ph88@2a02:8109:9e00:71d0:54ac:14f0:5fcb:286d) (Quit: Leaving)
2021-12-02 00:34:29 +0100 <hololeap> f [1,2,3,4] [1,2,6,7,8] === ([1,2], ([3,4],[6,7,8]))
2021-12-02 00:34:38 +0100 <hololeap> is there a name for this, or something similar?
2021-12-02 00:34:56 +0100 <Axman6> that looks very not total
2021-12-02 00:34:59 +0100 <Axman6> f [] [] = ?
2021-12-02 00:35:19 +0100kritzefitz_kritzefitz
2021-12-02 00:35:21 +0100 <hololeap> f [] [] == ([], ([], [])) ?
2021-12-02 00:35:30 +0100 <Axman6> hmm, yes
2021-12-02 00:35:37 +0100 <geekosaur> and do you expect it to nest more tuples in some cases?
2021-12-02 00:35:56 +0100 <geekosaur> oh, I see
2021-12-02 00:36:13 +0100mestre(~mestre@191.177.175.57) (Quit: Lost terminal)
2021-12-02 00:36:30 +0100 <hololeap> no, I just want to find a common prefix and return it plus the different suffixes of the two lists
2021-12-02 00:37:17 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-02 00:37:23 +0100 <boxscape> I suppose you're making a trie
2021-12-02 00:37:26 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-02 00:37:48 +0100 <hololeap> no, not a trie
2021-12-02 00:38:02 +0100 <Axman6> it's literally just collecting the headfs and tails right?
2021-12-02 00:38:22 +0100 <hololeap> let me see if I can hammer it out real quick
2021-12-02 00:38:33 +0100 <hololeap> I'm trying to recreate this: https://hackage.haskell.org/package/system-filepath-0.4.14/docs/Filesystem-Path.html#v:stripPrefix
2021-12-02 00:39:20 +0100 <monochrom> Data.List.stripPrefix
2021-12-02 00:39:34 +0100 <monochrom> Err I guess not exactly.
2021-12-02 00:39:44 +0100 <jackdk> what about https://hackage.haskell.org/package/monoid-subclasses-1.1.2/docs/Data-Monoid-GCD.html#v:stripCommo… ?
2021-12-02 00:40:07 +0100 <Axman6> oh, it's the common prefix, right, I understand now
2021-12-02 00:40:15 +0100 <jackdk> and then some swizzling to turn the 3-tuple into the shape you actually want
2021-12-02 00:40:16 +0100 <Axman6> that does look useful (particularly for tries)
2021-12-02 00:40:45 +0100 <jackdk> yeah hololeap pretty sure you want stripCommonPrefix from monoid-subclasses
2021-12-02 00:42:41 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection)
2021-12-02 00:42:48 +0100 <monochrom> Go through System.FilePath.splitPath then Data.List.stripPrefix then System.FilePath.joinPath
2021-12-02 00:42:58 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-02 00:45:17 +0100 <hololeap> monochrom: wait, why not just use Data.List.stripPrefix?
2021-12-02 00:46:02 +0100 <monochrom> > stripPrefix "/myd" "/mydir/m.mov"
2021-12-02 00:46:03 +0100 <lambdabot> Just "ir/m.mov"
2021-12-02 00:46:11 +0100 <hololeap> oh, good point
2021-12-02 00:46:18 +0100 <awpr> > stripPrefix "/tmp/" "/tmp//file.txt"
2021-12-02 00:46:19 +0100 <lambdabot> Just "/file.txt"
2021-12-02 00:46:31 +0100kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds)
2021-12-02 00:46:39 +0100 <Axman6> > stripPrefix "1234" "1256"
2021-12-02 00:46:40 +0100 <lambdabot> Nothing
2021-12-02 00:46:49 +0100 <Axman6> I would guess that's why
2021-12-02 00:47:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 00:47:14 +0100vysn(~vysn@user/vysn)
2021-12-02 00:48:47 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds)
2021-12-02 00:49:30 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 00:51:10 +0100jeffz(~user@lambda.xen.prgmr.com) (Remote host closed the connection)
2021-12-02 00:51:17 +0100jeffz(~user@lambda.xen.prgmr.com)
2021-12-02 00:56:19 +0100zer0bitz(~zer0bitz@dsl-hkibng32-54fbfb-173.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-02 00:57:12 +0100kritzefitz(~kritzefit@debian/kritzefitz)
2021-12-02 00:58:01 +0100 <jackdk> % import Data.Monoid.GCD
2021-12-02 00:58:02 +0100 <yahb> jackdk: ; <no location info>: error:; Could not find module `Data.Monoid.GCD'; Perhaps you meant Data.Monoid (from base-4.15.0.0)
2021-12-02 00:58:07 +0100 <jackdk> ah well
2021-12-02 00:59:29 +0100 <jackdk> Prelude Data.Monoid.GCD> stripCommonPrefix [1, 2, 3, 4] [1, 2, 6, 7, 8] -- => ([1,2],[3,4],[6,7,8])
2021-12-02 00:59:52 +0100max22-(~maxime@2a01cb08833598008751b1889105ced7.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-12-02 01:00:07 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2021-12-02 01:01:39 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-12-02 01:03:23 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-02 01:05:02 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 01:09:33 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-12-02 01:21:07 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-12-02 01:25:00 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 01:30:13 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 01:33:16 +0100acidjnk_new(~acidjnk@p200300d0c7271e31dccc5136b6b31647.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-02 01:36:41 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2021-12-02 01:39:53 +0100Cajun(~Cajun@user/cajun)
2021-12-02 01:43:50 +0100vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2021-12-02 01:45:28 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-12-02 01:46:24 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-12-02 01:47:52 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Quit: leaving)
2021-12-02 01:47:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-12-02 01:47:59 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-12-02 01:47:59 +0100wroathe(~wroathe@user/wroathe)
2021-12-02 01:48:47 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-12-02 01:50:36 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2021-12-02 02:10:48 +0100slack1256(~slack1256@191.126.227.74)
2021-12-02 02:10:52 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-02 02:13:17 +0100mmhat(~mmh@55d4c042.access.ecotel.net) (Ping timeout: 256 seconds)
2021-12-02 02:16:59 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-02 02:19:51 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 02:19:58 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: gone to sleep. ZZZzzz…)
2021-12-02 02:21:13 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 02:21:48 +0100yushyinyushying
2021-12-02 02:22:07 +0100yushyingyushyin
2021-12-02 02:23:03 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a)
2021-12-02 02:23:30 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-02 02:25:31 +0100mmhat(~mmh@55d4726e.access.ecotel.net)
2021-12-02 02:29:14 +0100mmhat(~mmh@55d4726e.access.ecotel.net) (Client Quit)
2021-12-02 02:44:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 02:44:23 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-12-02 02:44:25 +0100slack1256(~slack1256@191.126.227.74) (Remote host closed the connection)
2021-12-02 02:49:29 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
2021-12-02 02:54:14 +0100 <boxscape> % Prelude...
2021-12-02 02:54:14 +0100 <yahb> boxscape: ; <interactive>:66:1: error: parse error on input `Prelude...'
2021-12-02 02:54:19 +0100 <boxscape> hmm
2021-12-02 02:54:23 +0100 <boxscape> didn't get a parse error in ghci
2021-12-02 02:54:36 +0100 <boxscape> ah
2021-12-02 02:54:40 +0100 <boxscape> % (Prelude...)
2021-12-02 02:54:41 +0100 <yahb> boxscape: ; <interactive>:67:1: error:; Not in scope: `Prelude...'; Perhaps you meant one of these: `Prelude..' (imported from Prelude), `Prelude.+' (imported from Prelude), `Prelude.*' (imported from Prelude)
2021-12-02 02:54:57 +0100 <boxscape> I'm somewhat surprised that this isn't a parse error, considering .. is reserved
2021-12-02 02:55:36 +0100 <boxscape> (So (ModuleName...) is an identifier you can refer to but never define)
2021-12-02 02:55:48 +0100 <boxscape> except possibly with template haskell...
2021-12-02 02:56:59 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds)
2021-12-02 03:03:33 +0100 <shapr> Is there any way to save debug/crash info if GHC segfaults?
2021-12-02 03:03:35 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-12-02 03:03:40 +0100Typedfern(~Typedfern@75.red-88-22-25.staticip.rima-tde.net)
2021-12-02 03:07:46 +0100 <Axman6> oh no
2021-12-02 03:12:41 +0100 <dmj`> "Print Screen"
2021-12-02 03:13:01 +0100 <EvanR> quick get a screenshot
2021-12-02 03:13:57 +0100 <boxscape> (nope, can't do it with TH)
2021-12-02 03:14:02 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-12-02 03:14:16 +0100 <c_wraith> configure your OS to allow core files?
2021-12-02 03:18:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 03:24:15 +0100 <shapr> c_wraith: do you know if Windows does that?
2021-12-02 03:24:27 +0100 <c_wraith> oh. windows? unlikely.
2021-12-02 03:28:13 +0100 <hololeap> does (..) live in Prelude? I thought it was syntactic sugar
2021-12-02 03:29:00 +0100 <EvanR> anyone heard of `basement' and `foundation'... seems like it would be a totally different language using these xD
2021-12-02 03:29:12 +0100 <hololeap> the only place I've seen it is ['a'..'z']
2021-12-02 03:29:29 +0100 <EvanR> import A (A(..))
2021-12-02 03:30:43 +0100xff0x(~xff0x@2001:1a81:5339:b000:22b1:7654:f125:7b04) (Ping timeout: 252 seconds)
2021-12-02 03:30:46 +0100 <hololeap> EvanR: what are you supposed to import when you use basement?
2021-12-02 03:31:25 +0100 <iqubic> How does one use basement and foundation? Are those like, replacement preludes.
2021-12-02 03:31:46 +0100 <EvanR> disable prelude, import Foundation
2021-12-02 03:31:48 +0100 <boxscape> hololeap: you're right, I thought it was that you can refer to Prelude... *because* it's not defined in the Prelude
2021-12-02 03:32:01 +0100 <boxscape> s/it was/ it was odd
2021-12-02 03:32:45 +0100xff0x(~xff0x@2001:1a81:5351:7200:ec14:1667:941b:a8bf)
2021-12-02 03:33:15 +0100 <boxscape> I would have expected to see something like "illegal variable name"
2021-12-02 03:33:56 +0100 <EvanR> ok basement is behind the scenes of foundation. I wonder if it's "yet another alternative prelude"
2021-12-02 03:34:21 +0100 <EvanR> but e.g. the Num class is gone, String is a newtype over packed UTF8 bytes
2021-12-02 03:34:45 +0100 <EvanR> arrays are just there
2021-12-02 03:35:23 +0100 <hololeap> it seems very opinionated, which isn't to say it isn't good or you shouldn't use it
2021-12-02 03:35:46 +0100 <boxscape> I guess the one thing that might be annoying is interfacing with other libraries
2021-12-02 03:35:47 +0100 <EvanR> yeah I looked through the basement and didn't see anything too questionable
2021-12-02 03:36:07 +0100 <hololeap> it seems to have a special use case, probably for making network backends
2021-12-02 03:36:09 +0100 <EvanR> Subtractive class uses an associated type synonym for the return type xD
2021-12-02 03:36:41 +0100 <EvanR> so you can do Int -> Int -> Int, but Natural -> Natural -> Maybe Natural, or Date -> Date -> Integer
2021-12-02 03:37:24 +0100 <EvanR> oh yeah I wonder how you use other libraries at the same time
2021-12-02 03:37:40 +0100 <EvanR> well why did I even look at it, it's a transitive dependence for wreq xD
2021-12-02 03:37:56 +0100 <jackdk> My personal rule is to never use an altprelude in library code
2021-12-02 03:38:27 +0100 <hololeap> is there one that just removes partial functions? I would use that
2021-12-02 03:39:12 +0100 <EvanR> the conversion class is split between always works and Maybe works
2021-12-02 03:39:19 +0100 <EvanR> From, TryFrom
2021-12-02 03:39:24 +0100 <EvanR> Into, TryInto
2021-12-02 03:39:26 +0100 <jackdk> I've been pretty happy building on Relude at work, but I just don't think that the risk of the maintainer going AWOL and jamming the update of some library you care about isn't worth it for libs
2021-12-02 03:39:53 +0100 <dsal> jackdk: the obvious solution is to make your own prelude.
2021-12-02 03:40:08 +0100 <hololeap> jackdk: that's fair, although in a way this is a common problem
2021-12-02 03:41:02 +0100 <jackdk> for a larger lib an internal prelude could help with organisation, sure
2021-12-02 03:41:37 +0100 <jackdk> and yeah the problem is that Prelude tries to do too many things at once, so it simultaneously feels too big and too small
2021-12-02 03:42:01 +0100 <EvanR> if the library only exports new types and doesn't mention any altered base types... seems like the client code would not notice?
2021-12-02 03:42:31 +0100 <EvanR> i.e. only use altprelude in secret
2021-12-02 03:42:45 +0100 <EvanR> don't ask don't tell
2021-12-02 03:42:53 +0100 <hololeap> jackdk: I agree, actually. you can import from libraries that have a specific use. Prelude is basically a meta-import at that point
2021-12-02 03:43:19 +0100 <hololeap> which I guess it is already XD
2021-12-02 03:43:37 +0100 <jackdk> EvanR: until your altprelude turns out to be maintained by someone who falls behind on maintenance, and then everyone who depends on you is sad
2021-12-02 03:43:54 +0100 <EvanR> isn't that an issue with any library you use ever?
2021-12-02 03:43:57 +0100 <hololeap> but you get a ton of dependencies and someone has to go through and bump them constantly
2021-12-02 03:45:33 +0100 <boxscape> EvanR: I suppose with alt-preludes in particular, it's only a nice-to-have rather than a library you really need to depend on
2021-12-02 03:45:49 +0100 <boxscape> so the risk/benefit ratio is different
2021-12-02 03:46:03 +0100 <EvanR> the brochure for foundation mentions the changing landscape of GHC base, hence basement that doesn't change. But then this raises the exact issue of who continues to make basement compatible with GHC base as it (supposedly) changes
2021-12-02 03:46:15 +0100 <jackdk> EvanR: yes. But altpreludes seem to involve a) a lot of catherding because they often collate stuff from a bunch of libraries, b) by definition provide almost no additional features
2021-12-02 03:46:33 +0100unyu(~pyon@user/pyon) (Quit: WeeChat 3.3)
2021-12-02 03:46:57 +0100 <EvanR> this one doesn't have any dependencies and has a lot of features
2021-12-02 03:47:03 +0100 <jackdk> Re: "(supposedly) changes" - I keep bumping into libs that claim `build-depends: base >=4.x && <5` but break on GHC9
2021-12-02 03:47:45 +0100 <EvanR> so <5 is BS
2021-12-02 03:48:04 +0100 <hololeap> I saw <666 once
2021-12-02 03:48:13 +0100 <jackdk> at least you know that's evil
2021-12-02 03:48:20 +0100 <hololeap> haha
2021-12-02 03:48:40 +0100 <jackdk> EvanR: and yet, https://github.com/haskell-foundation/foundation/pull/555#issuecomment-983107899
2021-12-02 03:48:45 +0100 <EvanR> "If we all put <5 they can't possibly break all of us"
2021-12-02 03:49:00 +0100 <jackdk> (going back to the basement discussion rather than the bounds discussion)
2021-12-02 03:49:22 +0100 <jackdk> the low-dependencies altprelude that's actually holding up a bunch of stuff and doesn't work on ghcjs
2021-12-02 03:49:44 +0100 <EvanR> that github issue explains a lot
2021-12-02 03:50:11 +0100 <EvanR> in particular, the answer to my question "has anyone heard of this" xD
2021-12-02 03:50:28 +0100 <EvanR> apparently everyones on board with it, with consequences
2021-12-02 03:50:37 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-12-02 03:50:57 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving)
2021-12-02 03:52:07 +0100 <EvanR> so base in 9.2 has changed significantly?
2021-12-02 03:52:18 +0100 <EvanR> or this is like, a change the version bounds game
2021-12-02 03:52:34 +0100tito(tito@tilde.team) (Ping timeout: 260 seconds)
2021-12-02 03:53:11 +0100 <hololeap> is MonadThrow a good choice if you need to be able to throw Exceptions but not any of the regular IO stuff? I haven't see it used a lot
2021-12-02 03:54:07 +0100tito(tito@tilde.team)
2021-12-02 03:54:56 +0100ubert1(~Thunderbi@p200300ecdf0ba290e6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-02 03:55:06 +0100ub(~Thunderbi@p200300ecdf0ba2be089e3f14725e8432.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-02 03:55:06 +0100ubert(~Thunderbi@p200300ecdf0ba2bee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-12-02 03:55:07 +0100ubert1ubert
2021-12-02 03:55:12 +0100 <jackdk> The diff in the PR is at least a partial answer to that question, but I think the further you are off the ground the less the GHC changes will affect you, as the libraries you depend on will maintain APIs
2021-12-02 03:55:24 +0100ub(~Thunderbi@p200300ecdf0ba2909868c7bbf0c5b488.dip0.t-ipconnect.de)
2021-12-02 03:55:57 +0100 <jackdk> hololeap: I think so? I see a lot of stuff goes straight to MonadCatch so I think throw-but-not-catch is relatively rare but you're in a compatible ecosystem
2021-12-02 03:57:23 +0100 <EvanR> word8ToWordCompat#
2021-12-02 03:57:28 +0100 <EvanR> :S
2021-12-02 03:58:39 +0100 <EvanR> ok, to be clear, actually using any of this in production is another universe away from my original comment that it was like "very different looking", i.e. String isn't even compatible anymore
2021-12-02 03:59:08 +0100 <EvanR> so I'm not even sure it's usable for not-production xD
2021-12-02 03:59:17 +0100 <EvanR> unless you're in total isolation
2021-12-02 04:00:00 +0100 <hololeap> should there be a IsString instance for SomeException? you could pack some string exception in there
2021-12-02 04:02:00 +0100 <hololeap> jackdk: the idea is to have throwM but nothing else so you limit the scope of the function. it also lets me use Either or IO
2021-12-02 04:02:54 +0100 <jackdk> hololeap: yeah I think I understand what you're doing, and I think that class gets used a lot
2021-12-02 04:04:31 +0100 <hololeap> ok
2021-12-02 04:05:10 +0100 <EvanR> is there a difference between throw and throwIO for m=IO
2021-12-02 04:05:42 +0100yauhsien(~yauhsien@2402:7500:5e7:7cb:2978:bff0:cda7:8559)
2021-12-02 04:05:54 +0100 <EvanR> oh throwM
2021-12-02 04:06:23 +0100 <jackdk> https://hackage.haskell.org/package/exceptions-0.10.4/docs/src/Control.Monad.Catch.html#line-330
2021-12-02 04:06:46 +0100 <jackdk> (I found this by going to the "Source" link of the MonadThrow instance for IO)
2021-12-02 04:07:41 +0100 <EvanR> yeah nvm
2021-12-02 04:09:02 +0100 <EvanR> I like how MonadThrow has a law xD
2021-12-02 04:09:21 +0100 <dsal> I feel like it should have throw'M
2021-12-02 04:09:41 +0100 <boxscape> somewhat confusing that the haskell-foundation github account doesn't belong to the haskell foundation
2021-12-02 04:10:24 +0100 <hololeap> boxscape: I think they meant it as a pun, along the same lines as basement. it's something "underneath" your code
2021-12-02 04:10:42 +0100 <boxscape> yeah, they also came along long before the haskell foundation existed
2021-12-02 04:11:24 +0100 <EvanR> I was wondering if they had anything to do with haskell foundation
2021-12-02 04:11:50 +0100 <EvanR> kind of like w3schools xD
2021-12-02 04:12:38 +0100 <EvanR> s/confusing/potential trademark infringement/
2021-12-02 04:15:38 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-02 04:16:33 +0100 <hololeap> I like this idea, but where should I put it? http://sprunge.us/xglu0G?haskell
2021-12-02 04:17:39 +0100xkuru(~xkuru@user/xkuru)
2021-12-02 04:18:59 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-12-02 04:20:15 +0100 <dsal> Put in a module called Old.Python.Bugs
2021-12-02 04:21:06 +0100 <hololeap> I don't understand the sass
2021-12-02 04:21:44 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 04:22:50 +0100 <EvanR> shouldn't your IsString instance be on StringException
2021-12-02 04:23:01 +0100 <dsal> SomeException itself shouldn't be thrown. This effectively gets rid of all of the exception hierarchy in a way that'll be very confusing.
2021-12-02 04:23:03 +0100 <hololeap> yes, that too
2021-12-02 04:23:20 +0100 <dsal> Python used to let you do that, but even in python2, they tell you not to:
2021-12-02 04:23:22 +0100 <dsal> TypeError: exceptions must be old-style classes or derived from BaseException, not str
2021-12-02 04:23:56 +0100 <dsal> Because using a string instead of a type makes all the things harder.
2021-12-02 04:23:57 +0100 <hololeap> dsal: I haven't had a need for the exception heirarchy beyond SomeException. how will this make things confusing?
2021-12-02 04:24:24 +0100 <dsal> Catching SomeException is almost always a very bad idea.
2021-12-02 04:25:06 +0100 <EvanR> if I was using StringException... I'd throw or catch StringException
2021-12-02 04:25:16 +0100 <hololeap> I tried using ExceptT ExceptionA (ExceptT ExceptionB (..)) but this was annoying
2021-12-02 04:25:21 +0100 <EvanR> if you put IsString on both, now throwing is ambiguous
2021-12-02 04:25:35 +0100 <hololeap> it seems better just to catch SomeException and know what exceptions you're looking for
2021-12-02 04:25:44 +0100 <EvanR> that sounds so wrong
2021-12-02 04:25:55 +0100 <dsal> The documentation describes this better than I can here: https://hackage.haskell.org/package/base-4.16.0.0/docs/Control-Exception.html#g:4
2021-12-02 04:26:16 +0100 <EvanR> catches can let you catch multiple types of exceptions
2021-12-02 04:26:33 +0100 <EvanR> and if you don't know what you're trying to catch you're SOL anyway
2021-12-02 04:26:59 +0100gehmehgeh_(~user@user/gehmehgeh)
2021-12-02 04:27:06 +0100 <hololeap> that's always the case, though. there's no way you're going to account for every single IO exception
2021-12-02 04:27:11 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-12-02 04:27:16 +0100 <EvanR> traditionally I just hate having my exception handling code running when the exception is god knows what unknown thing I never heard of
2021-12-02 04:27:42 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-12-02 04:27:47 +0100 <EvanR> no, no one should be accounting for every IO exception
2021-12-02 04:27:57 +0100 <EvanR> you can use finally or a bracket to clean up and rethrow
2021-12-02 04:28:01 +0100 <boxscape> If I have `data Foo a b = Foo a b`, I can write `Foo Int String` and `Foo' Int String` at the type level to differentiate them. But Int `Foo` String will always refer to the type constructor. Is there a way to use the data constructor as infix on the type level?
2021-12-02 04:28:23 +0100 <hololeap> how is that any different from using SomeException?
2021-12-02 04:28:42 +0100 <EvanR> I assumed you were trying to catch an exception (and not crash)
2021-12-02 04:28:45 +0100 <dsal> This is a thing I noticed in java: Almost every time someone did a `try` they just wanted `finally` (or had to do dumb wrapper stuff for an API). `catch` leads to bugs.
2021-12-02 04:29:05 +0100 <hololeap> EvanR: you can catch exceptions from SomeException if you tell it what you're looking for
2021-12-02 04:29:26 +0100 <boxscape> (pretty sure the answer is no but I want to make sure)
2021-12-02 04:29:26 +0100 <hololeap> so how is this any different from IO?
2021-12-02 04:29:26 +0100 <dsal> What are you doing when you catch the exception?
2021-12-02 04:29:40 +0100 <EvanR> SomeException is always used behind the scenes using dynamic types and the Typable instance for.. what you're looking for. No need to mess with SomeException directly
2021-12-02 04:29:42 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-02 04:30:14 +0100 <EvanR> if it's a finally type pattern I'd just use finally
2021-12-02 04:30:23 +0100 <hololeap> ok, well maybe I should bypass SomeException then
2021-12-02 04:30:40 +0100 <hololeap> I thought it was just a convenient wrapper
2021-12-02 04:30:49 +0100 <dsal> bracket is almost always what you need.
2021-12-02 04:31:04 +0100 <dsal> If you need to continue after exceptions, you need to enumerate the specific conditions you want to continue.
2021-12-02 04:31:05 +0100 <EvanR> well unless you're trying to catch a specific exception xD
2021-12-02 04:31:12 +0100 <dsal> SomeException includes thread killed, control-c, etc...
2021-12-02 04:31:22 +0100 <dsal> Then you end up with programs that you can't stop.
2021-12-02 04:32:29 +0100 <EvanR> bracket also deals with async exception masking on your behalf so you don't mess that up
2021-12-02 04:32:38 +0100 <EvanR> you don't want an async exception during the exception handler
2021-12-02 04:32:48 +0100 <hololeap> EvanR: can't you do the same thing with SomeException as they are doing here with catching MismatchedParenthesis? https://hackage.haskell.org/package/base-4.16.0.0/docs/Control-Exception.html#t:Exception
2021-12-02 04:33:34 +0100 <EvanR> they throw and catch specific exceptions there
2021-12-02 04:33:38 +0100 <dsal> Yeah, you can catch specific exceptions. I catch application specific exceptions.
2021-12-02 04:33:53 +0100pfurla(~pfurla@2804:14d:5c81:4104:1d11:e285:317e:6a2a) (Quit: Textual IRC Client: www.textualapp.com)
2021-12-02 04:34:22 +0100 <EvanR> and in the example, not crash but continue, another difference
2021-12-02 04:35:22 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 04:35:36 +0100 <hololeap> my point is that there is an assumption that you are catching a subset of exceptions that could be thrown, whether you are talking about IOException or more broadly SomeException
2021-12-02 04:36:10 +0100 <hololeap> so what is the problem with using SomeException directly?
2021-12-02 04:36:33 +0100 <dsal> What are you doing to do when you catch the thread killed or control-c or whatever?
2021-12-02 04:36:34 +0100 <EvanR> What are you trying to do again? Catch a specific exception and continue?
2021-12-02 04:36:44 +0100 <EvanR> and not catch others
2021-12-02 04:36:53 +0100 <hololeap> dsal: nothing if I don't have a catch for it
2021-12-02 04:37:02 +0100 <dsal> SomeException *does* catch it.
2021-12-02 04:37:29 +0100 <EvanR> catching SomeException and continuing is very bad
2021-12-02 04:37:32 +0100 <dsal> That is, catching SomeException does catch it.
2021-12-02 04:37:44 +0100 <EvanR> it nullifies all exceptions
2021-12-02 04:37:53 +0100 <EvanR> you're program is unkillable xD
2021-12-02 04:38:11 +0100 <dsal> It's the secret to making your program live forever.
2021-12-02 04:38:16 +0100 <hololeap> I would re-throw it if nothing in the `case` block matched
2021-12-02 04:38:17 +0100td_(~td@94.134.91.22) (Ping timeout: 256 seconds)
2021-12-02 04:38:21 +0100 <EvanR> I haven't see a use case for doing it in any language
2021-12-02 04:38:42 +0100 <dsal> Wait, are you reinventing catch / catches?
2021-12-02 04:39:04 +0100 <EvanR> catches and bracket etc will handle async masking for you, at least there's that benefit
2021-12-02 04:39:30 +0100 <hololeap> the original point was having an IsString instance for SomeException using StringException as the intermediary
2021-12-02 04:39:41 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-02 04:39:55 +0100 <EvanR> I like the idea of having IsString for StringException
2021-12-02 04:40:00 +0100 <EvanR> then you can even catch it
2021-12-02 04:40:04 +0100td_(~td@muedsl-82-207-238-002.citykom.de)
2021-12-02 04:40:08 +0100 <dsal> Having a StringException as a different thing isn't terrible. It just means you have an application-specific exception you can't distinguish sub-values of quite as much.
2021-12-02 04:40:16 +0100 <EvanR> (without touching SomeException radioactive waste xD)
2021-12-02 04:40:28 +0100 <hololeap> you couldn't catch it if you packed it in SomeException?
2021-12-02 04:40:29 +0100 <EvanR> StringException is from UnliftIO
2021-12-02 04:40:42 +0100gehmehgeh_(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-12-02 04:40:44 +0100 <EvanR> it's not as easily caught and you are messing with fire
2021-12-02 04:40:55 +0100 <hololeap> that's a fair point
2021-12-02 04:40:56 +0100 <dsal> You just want to basically forget SomeException exists. :)
2021-12-02 04:40:58 +0100 <EvanR> but do it xD
2021-12-02 04:41:20 +0100 <dsal> stringException :: HasCallStack => String -> StringException
2021-12-02 04:42:16 +0100 <EvanR> I'm always scared of accidentally catching and ignoring stuff like undefined and error
2021-12-02 04:42:32 +0100 <EvanR> which I don't even know how to catch and don't want to know
2021-12-02 04:42:44 +0100 <hololeap> you are both helping figure this out, so thanks!
2021-12-02 04:42:46 +0100 <dsal> The closest I get to that is running code in an async and then reporting what happened.
2021-12-02 04:43:02 +0100 <dsal> hololeap: Yeah, sorry if it sounds harsh. Just avoid SomeException. It's tempting, but painful. :)
2021-12-02 04:43:11 +0100 <hololeap> no, I appreciate the feedback
2021-12-02 04:43:34 +0100 <dsal> async can blow up with any type of exception and then you can just ask how it was.
2021-12-02 04:44:26 +0100 <dsal> I wrote a thing that did this and a bunch of tests to make sure various types of runtime and IO exceptions and stuff were handled nicely. The neat thing is that the supervisor (I used to write a lot of erlang) doesn't actually catch any exceptions.
2021-12-02 04:44:35 +0100 <EvanR> actually you can assume async don't throw, and use normal exception handling around the await call xD
2021-12-02 04:44:58 +0100 <EvanR> even then you don't have to deal with SomeException
2021-12-02 04:45:05 +0100 <hololeap> what monad should be used to catch in? always IO? I find it painful to string together ExceptTs if I need to compose functions that throw different exceptions
2021-12-02 04:45:21 +0100 <EvanR> I never thought of trying to catch in anything but IO
2021-12-02 04:45:48 +0100 <EvanR> usually failing monads can be handled at the runcall
2021-12-02 04:45:56 +0100 <hololeap> I liked the idea of making explicit in the type what kind of exceptions it could throw
2021-12-02 04:46:11 +0100 <EvanR> oh god, checked exceptions xD
2021-12-02 04:46:27 +0100 <EvanR> java tried that no one liked it
2021-12-02 04:47:36 +0100 <EvanR> I feel like the original idea of exceptions was to deal with the fact that usually you don't want to know/deal with all the ways things could fail rarely
2021-12-02 04:47:52 +0100 <EvanR> it was too annoying
2021-12-02 04:48:22 +0100 <EvanR> but knowing that something MAY throw SOMETHING being in the type is great
2021-12-02 04:48:26 +0100 <dsal> I'd think it was a good idea if I never programmed in Java.
2021-12-02 04:48:28 +0100 <hololeap> it could be helpful because you can just visually enumerate what you need to catch by reading the file
2021-12-02 04:48:41 +0100 <EvanR> wait... that still doesn't sound right
2021-12-02 04:48:45 +0100 <dsal> In java, it was like, "Can throw X, Y, Z, or like, anything else."
2021-12-02 04:48:53 +0100 <hololeap> not every exception, obviously
2021-12-02 04:49:02 +0100 <EvanR> ok yeah
2021-12-02 04:49:10 +0100 <Adeon> I've been trying zig for past few days
2021-12-02 04:49:12 +0100 <Adeon> it does not have exceptions
2021-12-02 04:49:16 +0100 <Adeon> but it does have a nice error system
2021-12-02 04:49:18 +0100 <Adeon> "error sets"
2021-12-02 04:49:25 +0100 <Adeon> has a similar vibe to checked exceptions
2021-12-02 04:49:27 +0100 <EvanR> it would be theoretically nice to see all the possible things something could throw
2021-12-02 04:49:48 +0100 <EvanR> but for most of the IO section of the stdlib, that's like ... a lot
2021-12-02 04:49:48 +0100 <Adeon> but it tries to make it very frictionless to combine error types etc. so it's very much out of the way
2021-12-02 04:50:07 +0100 <hololeap> if it doesn't mention IO except as a black box, that would be helpful
2021-12-02 04:50:45 +0100 <hololeap> maybe throw in other large classes of exceptions, like pure exceptions and STM exceptions
2021-12-02 04:50:59 +0100 <EvanR> hold on, so we're really talking about application specific "exceptions" defined for use in pure code?
2021-12-02 04:51:07 +0100 <hololeap> correct
2021-12-02 04:51:10 +0100 <EvanR> like Either on steroids
2021-12-02 04:51:42 +0100 <EvanR> now we can get even more thereoretical. Have you heard of extensible variants? xD
2021-12-02 04:51:59 +0100 <EvanR> might achieve what Adeon was talking about, if it existed
2021-12-02 04:52:02 +0100 <hololeap> I'm somewhat familiar with the concept. extensible sum types, right?
2021-12-02 04:52:19 +0100 <Adeon> I think you can do what zig does in haskell but it's probably not nice
2021-12-02 04:52:27 +0100 <EvanR> yeah instead of SomeException or defining a lot of exception types, you throw extensible variants
2021-12-02 04:53:07 +0100 <hololeap> isn't polysemy supposed to do this? I haven't looked at it yet
2021-12-02 04:53:53 +0100 <EvanR> that looks like a free monads lib
2021-12-02 04:54:08 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-12-02 04:55:18 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-12-02 04:55:18 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-12-02 04:55:18 +0100finn_elijaFinnElija
2021-12-02 04:56:04 +0100 <hololeap> I read this: https://haskell-explained.gitlab.io/blog/posts/2019/07/28/polysemy-is-cool-part-1/
2021-12-02 04:57:07 +0100 <dsal> I've still never found that to improve anything.
2021-12-02 04:57:52 +0100 <hololeap> dsal: what do you do when it comes to exceptions?
2021-12-02 04:58:08 +0100 <EvanR> "let it crash" philosophy xD
2021-12-02 04:58:15 +0100 <dsal> I've never even considered polysemy related to exceptions. :)
2021-12-02 04:58:34 +0100 <EvanR> but this doesn't apply to pure code that uses exceptions for fun and profit, which seems beyond me
2021-12-02 04:58:35 +0100 <dsal> "let it crash" is pretty good, though. I had pretty good uptimes in all my erlang code.
2021-12-02 04:58:40 +0100 <Adeon> I pretend exceptions don't exist except to make my code work correctly if someone `throwTo` into my code
2021-12-02 04:58:43 +0100 <dsal> But erlang is crash-oriented
2021-12-02 04:58:43 +0100 <Adeon> I think that's "let it crash"
2021-12-02 04:58:59 +0100 <dsal> Yeah, that's basically right.
2021-12-02 04:59:05 +0100 <hololeap> I thought that since Either was an "effect" of sorts, you could stack them a little bit less painfuly
2021-12-02 04:59:18 +0100 <EvanR> async haskell library gives you similar to erlang stuff, but that's IO oriented
2021-12-02 04:59:54 +0100 <dsal> Yeah, you can sneak an async exception across an Asycn boundary.
2021-12-02 05:00:10 +0100 <Axman6> I'm not sure I agree Async gives you that. cloud haskell aimed to give you that, but async is quite a different paraidgm from Erlang
2021-12-02 05:00:21 +0100 <hololeap> and compose things so that you could combine (Either e a) and (Either f b) into (Either' '[e,f] (a,b)), at least that's what I hoped :)
2021-12-02 05:00:29 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-12-02 05:00:49 +0100 <EvanR> I'm sure were talking about two different things now with cloud haskell
2021-12-02 05:01:16 +0100 <Axman6> I probably need to read more of the discussion
2021-12-02 05:01:25 +0100 <EvanR> this is the exceptions discussion xD
2021-12-02 05:01:30 +0100 <dsal> Axman6: I used async that way in a limited fashion. Run an effect with this input and give me a constrained result. If you crash then I record that. If *I* crash dealing with you, then I record that as well.
2021-12-02 05:01:30 +0100 <EvanR> and how to or not to deal with them
2021-12-02 05:07:18 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2021-12-02 05:07:37 +0100on^(~on@68.101.58.90)
2021-12-02 05:07:46 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2021-12-02 05:11:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 05:13:38 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 05:14:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 05:23:53 +0100gehmehgeh_(~user@user/gehmehgeh)
2021-12-02 05:25:33 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-12-02 05:29:25 +0100yauhsien(~yauhsien@2402:7500:5e7:7cb:2978:bff0:cda7:8559) (Remote host closed the connection)
2021-12-02 05:30:22 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 05:31:23 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 05:33:00 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 05:33:33 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 05:35:37 +0100renzhi(~xp@2607:fa49:6500:b100::5cef) (Ping timeout: 268 seconds)
2021-12-02 05:37:13 +0100yauhsien(~yauhsien@2402:7500:5e7:7cb:b0e6:1646:3027:d258)
2021-12-02 05:40:01 +0100n8ess163(~b@pool-72-80-171-162.nycmny.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-02 05:40:40 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-12-02 05:45:44 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-02 05:48:24 +0100 <EvanR> wait is this an ultimate irony
2021-12-02 05:48:27 +0100 <EvanR> No instance for (PrintfArg Foreign.C.Types.CInt)
2021-12-02 05:48:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-02 05:48:48 +0100 <EvanR> arising from printf "whatever = %d\n" myCInt
2021-12-02 05:54:09 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-12-02 05:55:30 +0100 <monochrom> Oh haha I see.
2021-12-02 05:55:45 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 265 seconds)
2021-12-02 05:55:46 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 05:56:30 +0100Bitters(~Bitters@37.19.211.58)
2021-12-02 05:57:38 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 05:57:54 +0100 <Bitters> not too alive for 705
2021-12-02 05:58:24 +0100Bitters(~Bitters@37.19.211.58) ()
2021-12-02 06:02:31 +0100yauhsien(~yauhsien@2402:7500:5e7:7cb:b0e6:1646:3027:d258) (Ping timeout: 252 seconds)
2021-12-02 06:04:52 +0100lambdabot(~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
2021-12-02 06:05:04 +0100 <Axman6> omg, where did lambdabot go D:
2021-12-02 06:05:26 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2021-12-02 06:05:32 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
2021-12-02 06:06:17 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-12-02 06:06:44 +0100lambdabot(~lambdabot@silicon.int-e.eu)
2021-12-02 06:06:44 +0100lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-12-02 06:06:44 +0100lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-12-02 06:08:19 +0100on^(~on@68.101.58.90) (Remote host closed the connection)
2021-12-02 06:10:07 +0100 <jackdk> @botsnack welcome back
2021-12-02 06:10:07 +0100 <lambdabot> :)
2021-12-02 06:13:08 +0100dispater(~dispater@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-12-02 06:13:14 +0100dlew^(~dlew@68.101.58.90)
2021-12-02 06:13:26 +0100dispater(~dispater@user/brprice)
2021-12-02 06:13:46 +0100yauhsien(~yauhsien@2402:7500:5e7:7cb:e5c8:bb31:7afd:efa5)
2021-12-02 06:14:50 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2021-12-02 06:15:11 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2021-12-02 06:17:55 +0100dispater(~dispater@user/brprice) (Ping timeout: 252 seconds)
2021-12-02 06:19:59 +0100pyook(~puke@user/puke)
2021-12-02 06:19:59 +0100pukeGuest8593
2021-12-02 06:19:59 +0100Guest8593(~puke@user/puke) (Killed (strontium.libera.chat (Nickname regained by services)))
2021-12-02 06:19:59 +0100pyookpuke
2021-12-02 06:21:25 +0100lambdabot(~lambdabot@haskell/bot/lambdabot) (Ping timeout: 256 seconds)
2021-12-02 06:21:47 +0100Jing_(~hedgehog@2604:a840:3::1061)
2021-12-02 06:22:41 +0100Jing(~hedgehog@115.207.46.97) (Ping timeout: 252 seconds)
2021-12-02 06:22:45 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-12-02 06:22:47 +0100lambdabot(~lambdabot@silicon.int-e.eu)
2021-12-02 06:22:47 +0100lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-12-02 06:22:47 +0100lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-12-02 06:23:52 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2021-12-02 06:24:03 +0100dispater(~dispater@user/brprice)
2021-12-02 06:25:14 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-02 06:28:13 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-12-02 06:31:06 +0100mario(~mario@31.147.205.13)
2021-12-02 06:31:31 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 265 seconds)
2021-12-02 06:32:06 +0100mario(~mario@31.147.205.13) (Remote host closed the connection)
2021-12-02 06:32:21 +0100orcus(~orcus@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-12-02 06:33:08 +0100dispater(~dispater@user/brprice) (Ping timeout: 252 seconds)
2021-12-02 06:33:10 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2021-12-02 06:33:57 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-12-02 06:34:58 +0100TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-12-02 06:35:42 +0100dispater(~dispater@user/brprice)
2021-12-02 06:36:02 +0100orcus(~orcus@user/brprice)
2021-12-02 06:40:11 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 06:42:59 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-12-02 06:45:27 +0100random-jellyfish(~random-je@user/random-jellyfish)
2021-12-02 06:47:33 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 256 seconds)
2021-12-02 06:49:51 +0100gehmehgeh_gehmehgeh
2021-12-02 06:54:41 +0100 <EvanR> oh wow
2021-12-02 06:55:24 +0100 <EvanR> I got screwed on AoC by getting foldr and foldl backwards, it doesn't make a difference on the first part, but does on the second part and I was very confused
2021-12-02 06:56:16 +0100 <dsal> Yeah, that does sound confusing.
2021-12-02 06:56:41 +0100 <dsal> I like foldr in general, but I don't think about order much.
2021-12-02 06:58:39 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 06:58:49 +0100 <EvanR> years of people in this channel challenging every possible interpretation of foldl and foldr xD
2021-12-02 07:00:20 +0100 <EvanR> in the end I always just bring up the @src for them
2021-12-02 07:05:41 +0100yauhsien(~yauhsien@2402:7500:5e7:7cb:e5c8:bb31:7afd:efa5) (Remote host closed the connection)
2021-12-02 07:06:47 +0100 <int-e> > foldr (flip (.) . flip f) id [b,c,d] a
2021-12-02 07:06:48 +0100 <lambdabot> f (f (f a b) c) d
2021-12-02 07:08:16 +0100 <EvanR> that's the one I thought was right
2021-12-02 07:08:53 +0100 <int-e> > foldl f a [b,c,d]
2021-12-02 07:08:55 +0100 <lambdabot> f (f (f a b) c) d
2021-12-02 07:08:58 +0100 <EvanR> lol
2021-12-02 07:09:10 +0100 <EvanR> also that one
2021-12-02 07:09:29 +0100 <c_wraith> foldl is specifically for working with an accumulator you update with each element of the list
2021-12-02 07:09:59 +0100 <int-e> explicit recursion exists btw ;-)
2021-12-02 07:10:14 +0100 <c_wraith> foldr is for... anything else that traverses the list exactly once
2021-12-02 07:10:36 +0100 <iqubic> If an AoC problem is asking me to process a list of commands in order, I usually parse the data into some data structure and then foldl' of them.
2021-12-02 07:11:20 +0100 <EvanR> yeah i use foldr a lot for haskelly stuff
2021-12-02 07:11:38 +0100 <EvanR> or accumulating but i guess it's usually commutative
2021-12-02 07:11:52 +0100 <c_wraith> I wouldn't use foldr for accumulating. you can blow the stack
2021-12-02 07:11:55 +0100 <dsal> I like fold when I can use it or foldMap. foldr for more general, and foldl when I'm doing stupid AoC stuff that cares about order.
2021-12-02 07:12:16 +0100dispater(~dispater@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-12-02 07:12:20 +0100 <iqubic> I used foldMap for part 1 of today's problem.
2021-12-02 07:12:25 +0100 <c_wraith> like... foldr (+) is *really* bad for stack use
2021-12-02 07:12:30 +0100 <EvanR> no not +
2021-12-02 07:12:34 +0100dispater(~dispater@user/brprice)
2021-12-02 07:12:46 +0100 <dsal> None of these problems are big enough for it to make a big difference.
2021-12-02 07:13:53 +0100 <dsal> iqubic: It'd be fairly straightforward to do it with `fold`. Or just like, in the parser.
2021-12-02 07:14:40 +0100 <EvanR> I will do 90 laps around the yard and return to internalizing the meaning of folds and their seemingly arbitrary names xD
2021-12-02 07:15:52 +0100 <c_wraith> the names are arbitrary, but the function difference is pretty huge.
2021-12-02 07:15:57 +0100 <EvanR> yep
2021-12-02 07:17:30 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-02 07:18:03 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-12-02 07:18:11 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 07:18:24 +0100 <int-e> > foldr f a [b,c,d]
2021-12-02 07:18:26 +0100 <lambdabot> f b (f c (f d a))
2021-12-02 07:18:43 +0100 <iqubic> Is foldl' (+) bad for memory usage?
2021-12-02 07:18:53 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-02 07:18:57 +0100 <opqdonut> iqubic: no it's great
2021-12-02 07:19:07 +0100 <dsal> Just use `sum`
2021-12-02 07:19:13 +0100 <dsal> No need to reinvent `sum`
2021-12-02 07:19:19 +0100 <opqdonut> yeah that's better for that exact invocation
2021-12-02 07:20:00 +0100 <iqubic> sum = getSum . foldMap Sum
2021-12-02 07:20:12 +0100 <opqdonut> however for tracking complex state, explicit recursion with bang patterns is both nicer to write and better performing than foldl/foldl' on tuples
2021-12-02 07:20:25 +0100 <iqubic> I didn't know that.
2021-12-02 07:20:34 +0100 <iqubic> But for Advent Of Code, I don't really care.
2021-12-02 07:20:38 +0100 <opqdonut> yeah
2021-12-02 07:21:38 +0100 <int-e> iqubic: ah but that's misleading, since it's a class member of Foldable (and even if it were not there'd surely be rewrite rules for it)
2021-12-02 07:22:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:24:38 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 07:24:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:24:59 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-02 07:25:15 +0100orcus(~orcus@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-12-02 07:25:15 +0100dispater(~dispater@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-12-02 07:25:35 +0100orcus(~orcus@user/brprice)
2021-12-02 07:25:53 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-02 07:26:03 +0100dispater(~dispater@user/brprice)
2021-12-02 07:27:10 +0100 <dsal> iqubic: Fold it in the parser! :) https://www.irccloud.com/pastebin/L4wAGlf6/fold.hs
2021-12-02 07:27:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 07:27:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:27:56 +0100 <dsal> iqubic: Also, that's an older implementation. The latest base does it differently.
2021-12-02 07:28:03 +0100 <iqubic> Really?
2021-12-02 07:29:16 +0100 <dsal> Data.List has `sum = foldl' (+) 0` but Data.Foldable has `sum = getSum #. foldMap' Sum`
2021-12-02 07:29:39 +0100 <iqubic> Right.
2021-12-02 07:29:47 +0100 <iqubic> But #. is just ., right
2021-12-02 07:29:55 +0100 <dsal> All the people who told you never to use `sum` made you write a bunch of code for no good reason.
2021-12-02 07:30:03 +0100 <dsal> foldMap' is the more significant change.
2021-12-02 07:30:25 +0100 <dsal> (#.) _f = coerce
2021-12-02 07:30:33 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 256 seconds)
2021-12-02 07:31:59 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-02 07:32:18 +0100 <opqdonut> oh wow that's an absolutely genius definition
2021-12-02 07:33:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 07:34:16 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:34:18 +0100mniip_(mniip@libera/staff/mniip)
2021-12-02 07:34:45 +0100 <dsal> It's pretty neat. Kind of a weird thing where you write code that doesn't actually run but leave it there to be read. heh
2021-12-02 07:35:24 +0100mniip(mniip@libera/staff/mniip) (Quit: This page is intentionally left blank.)
2021-12-02 07:35:43 +0100mniip_mniip
2021-12-02 07:36:51 +0100 <int-e> crucially, (#.) has a type signature; the `getSum` still matters for type inference
2021-12-02 07:37:02 +0100 <opqdonut> yeah
2021-12-02 07:37:58 +0100ubert(~Thunderbi@p200300ecdf0ba290e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-12-02 07:37:58 +0100ububert
2021-12-02 07:38:01 +0100ubert1(~Thunderbi@p200300ecdf0ba290e6b318fffe838f33.dip0.t-ipconnect.de)
2021-12-02 07:40:47 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 07:42:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 07:43:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:44:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 07:45:09 +0100 <EvanR> in retrospect, I'm glad it's foldl so I can use foldl for something xD
2021-12-02 07:45:28 +0100 <EvanR> I know it's bad laziness, but doesn't matter in this case
2021-12-02 07:47:06 +0100 <iqubic> foldl' is better than foldl. Period.
2021-12-02 07:47:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 07:47:39 +0100 <opqdonut> I've been kinda assuming that for something like `foldl (\(s,n) x -> (s+x,n+1)) (0,0) ...` strictness analysis will save my bacon
2021-12-02 07:47:43 +0100 <opqdonut> but I haven't actually verified that
2021-12-02 07:47:56 +0100 <opqdonut> (might still write foldl', but it wouldn't matter really)
2021-12-02 07:48:06 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-12-02 07:48:19 +0100 <opqdonut> maybe I'll check the core for fun
2021-12-02 07:48:40 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 07:50:43 +0100 <opqdonut> yeah, -ddump-simpl and I see explicit recursion over an unboxed tuple
2021-12-02 07:51:34 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:51:37 +0100 <opqdonut> no, explicit recursion with multiple arguments, just the return value is an unboxed tuple
2021-12-02 07:52:34 +0100 <EvanR> foldl' makes no sense if you're implementing list reverse xD
2021-12-02 07:53:15 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-02 07:53:21 +0100 <EvanR> so yeah my solution contains foldl no prime and scary terrifying lazy readFile, it's great
2021-12-02 07:53:40 +0100 <EvanR> how haskell should be
2021-12-02 07:53:45 +0100 <opqdonut> :)
2021-12-02 07:54:19 +0100 <EvanR> -ddump-simpl?
2021-12-02 07:54:22 +0100 <EvanR> let me see
2021-12-02 07:54:29 +0100 <opqdonut> yeah
2021-12-02 07:55:04 +0100 <opqdonut> you need to squint a bit and ignore some verbosity, but otherwise GHC Core is pretty easy to read
2021-12-02 07:55:20 +0100 <iqubic> EvanR: I see you like to live dangerously with foldl no prime.
2021-12-02 07:55:37 +0100 <opqdonut> btw I had to specify -O to get the recursion, without it foldl wasn't even getting inlined
2021-12-02 07:55:53 +0100 <EvanR> was about to say, it just calls foldl xD
2021-12-02 07:57:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 07:58:02 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 07:58:09 +0100cheater(~Username@user/cheater) (Quit: (BitchX) Terminated.)
2021-12-02 08:01:13 +0100 <EvanR> with -O maybe I technically read it, but I have no idea what's going on xD
2021-12-02 08:02:27 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-12-02 08:03:18 +0100 <EvanR> oh nice, I see it doing a recursion over my tuple
2021-12-02 08:04:03 +0100 <EvanR> foldl ftw
2021-12-02 08:05:40 +0100bollu(uid233390@id-233390.helmsley.irccloud.com)
2021-12-02 08:06:30 +0100michalz(~michalz@185.246.204.33)
2021-12-02 08:06:46 +0100 <EvanR> the results of the loop body are returned in an unboxed pair or unboxed triple, cool I guess
2021-12-02 08:07:05 +0100 <EvanR> does that still require allocation
2021-12-02 08:07:34 +0100 <c_wraith> not for the tuple
2021-12-02 08:07:42 +0100 <c_wraith> but what you put inside it might
2021-12-02 08:10:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 08:10:22 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 08:12:00 +0100 <dsal> I used foldl because I didn't want to import anything.
2021-12-02 08:12:12 +0100acidsys(~LSD@2.lsd.systems) (Excess Flood)
2021-12-02 08:12:21 +0100neurocyte0132889(~neurocyte@45.128.181.202)
2021-12-02 08:12:21 +0100neurocyte0132889(~neurocyte@45.128.181.202) (Changing host)
2021-12-02 08:12:21 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-02 08:12:47 +0100acidsys(~LSD@2.lsd.systems)
2021-12-02 08:14:15 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-12-02 08:16:16 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-02 08:19:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 08:19:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 08:19:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 08:24:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 08:26:57 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 08:27:12 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-12-02 08:27:32 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ebd1:d304:8195:da29)
2021-12-02 08:31:05 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-12-02 08:31:49 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 08:32:25 +0100chele(~chele@user/chele)
2021-12-02 08:33:35 +0100siers(~ij@user/ij)
2021-12-02 08:35:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 08:36:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 08:37:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 08:38:09 +0100deadmarshal(~deadmarsh@95.38.119.253) (Read error: Connection reset by peer)
2021-12-02 08:39:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 08:39:58 +0100deadmarshal(~deadmarsh@104.223.98.144)
2021-12-02 08:40:11 +0100xff0x(~xff0x@2001:1a81:5351:7200:ec14:1667:941b:a8bf) (Ping timeout: 252 seconds)
2021-12-02 08:40:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 08:40:42 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 08:40:59 +0100xff0x(~xff0x@2001:1a81:5351:7200:6aa9:cc6d:b99a:ba9f)
2021-12-02 08:43:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 08:43:32 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 08:45:08 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-12-02 08:45:29 +0100deadmarshal(~deadmarsh@104.223.98.144) (Read error: Connection reset by peer)
2021-12-02 08:49:19 +0100random-jellyfish(~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
2021-12-02 08:50:11 +0100Farzad(~FarzadBek@37.98.111.153)
2021-12-02 08:56:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 08:56:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:00:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:00:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:01:39 +0100jamestmartin(~james@jtmar.me)
2021-12-02 09:02:51 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
2021-12-02 09:03:27 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-02 09:04:38 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 09:07:52 +0100deadmarshal_(~deadmarsh@68.235.38.163)
2021-12-02 09:08:33 +0100cosimone(~user@93-44-186-55.ip98.fastwebnet.it)
2021-12-02 09:09:09 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 252 seconds)
2021-12-02 09:11:00 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-12-02 09:12:19 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-02 09:13:34 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-02 09:15:47 +0100vysn(~vysn@user/vysn)
2021-12-02 09:16:47 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 09:20:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:20:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:21:15 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-12-02 09:21:37 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 09:24:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:24:42 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:26:22 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:26:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:28:21 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 09:32:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:33:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:33:35 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 09:34:02 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 09:34:50 +0100deadmarshal_(~deadmarsh@68.235.38.163) (Read error: Connection reset by peer)
2021-12-02 09:38:07 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-12-02 09:41:11 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving)
2021-12-02 09:43:41 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:43:59 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:45:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 09:46:45 +0100 <mikko> is there a better way to do what the readInstruction function does here? capitalizing strings just to appease the default Read feels icky https://github.com/Andriamanitra/adventofcode2021/blob/main/day02/solution.hs (advent of code day 2 spoilers)
2021-12-02 09:48:09 +0100neurocyte0132889(~neurocyte@46.243.81.73)
2021-12-02 09:48:09 +0100neurocyte0132889(~neurocyte@46.243.81.73) (Changing host)
2021-12-02 09:48:09 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-02 09:48:14 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at)
2021-12-02 09:49:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 09:50:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 09:50:27 +0100 <mikko> by better i mean something that doesn't require me explicitly write "forward" "up" "down" again when they're already known because of the data definition
2021-12-02 09:51:21 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-12-02 09:51:28 +0100 <dminuoso> 15:51:04 merijn | boxscape: Yes, but you can never do that for an individual irrefutable pattern
2021-12-02 09:52:33 +0100 <dminuoso> Many years ago there was an issue suggesting being able to selectively turn off warnings for a given region. Didn't take long until this was bikeshedded into "If at all, let's bake in some extremely generic diagnostics machinery into GHC rather than just wire it in for a select few diagnostics."
2021-12-02 09:53:07 +0100 <dminuoso> Maybe that issue should be relooked at, realistically there's just a handful of warnings where this is even applicable.
2021-12-02 09:53:57 +0100 <dminuoso> merijn: Btw, regarding your warning, was that triggered by a singleton data constructor match or a newtype match?
2021-12-02 09:55:24 +0100 <boxscape> dminuoso: erm, shouldn't it not fire on either of those, since those wouldn't be incomplete patterns?
2021-12-02 10:00:09 +0100anotherbruce[m](~anotherbr@2001:470:69fc:105::1:2548) (Quit: You have been kicked for being idle)
2021-12-02 10:00:24 +0100 <merijn> dminuoso: Which warning?
2021-12-02 10:00:37 +0100anotherbruce[m](~anotherbr@2001:470:69fc:105::1:2548)
2021-12-02 10:01:30 +0100 <merijn> oh, yesterday. Neither
2021-12-02 10:01:36 +0100 <merijn> It was an irrefutable match on Just
2021-12-02 10:02:08 +0100xff0x(~xff0x@2001:1a81:5351:7200:6aa9:cc6d:b99a:ba9f) (Ping timeout: 252 seconds)
2021-12-02 10:03:11 +0100xff0x(~xff0x@2001:1a81:5351:7200:5e3e:87f2:29ae:8612)
2021-12-02 10:05:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:05:30 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:06:14 +0100alzgh(~alzgh@user/alzgh)
2021-12-02 10:06:50 +0100 <dminuoso> I wonder, is Lower Your Guards already fully implemented in GHC?
2021-12-02 10:08:17 +0100Jing_(~hedgehog@2604:a840:3::1061) (Remote host closed the connection)
2021-12-02 10:08:24 +0100 <eyJhb> Just tried installing haskell-mode for Emacs, and now I can't even type without much delay. I have disabled eldoc, lsp-mode, company-mode but still very sluggish (profiler - https://i.imgur.com/I0ib6Wu.png). Anyone else have had this issue?
2021-12-02 10:08:48 +0100 <dminuoso> Oh boy
2021-12-02 10:08:52 +0100Jing(~hedgehog@115.207.46.97)
2021-12-02 10:08:56 +0100 <dminuoso> I think it is mostly implemented
2021-12-02 10:09:00 +0100 <dminuoso> We even have this dark primitive
2021-12-02 10:09:02 +0100 <dminuoso> https://hackage.haskell.org/package/base-4.16.0.0/docs/GHC-Exts.html#v:considerAccessible
2021-12-02 10:09:08 +0100 <dminuoso> % import GHC.Exts
2021-12-02 10:09:08 +0100 <yahb> dminuoso:
2021-12-02 10:09:12 +0100 <dminuoso> % :t considerAccessible
2021-12-02 10:09:13 +0100 <yahb> dminuoso: ; <interactive>:1:1: error: Variable not in scope: considerAccessible
2021-12-02 10:09:13 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-12-02 10:11:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:11:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:12:35 +0100dispater(~dispater@user/brprice) (Ping timeout: 252 seconds)
2021-12-02 10:12:35 +0100orcus(~orcus@user/brprice) (Ping timeout: 252 seconds)
2021-12-02 10:12:49 +0100orcus(~orcus@user/brprice)
2021-12-02 10:13:18 +0100dispater(~dispater@user/brprice)
2021-12-02 10:15:33 +0100nschoe(~quassel@2a01:e0a:8e:a190:1242:6edc:4e6a:28bd)
2021-12-02 10:17:36 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-02 10:17:36 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-02 10:17:39 +0100allbery_bgeekosaur
2021-12-02 10:19:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:20:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:23:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:24:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:24:38 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 10:27:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:28:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:29:05 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-02 10:31:37 +0100 <tomsmeding> dminuoso: it's even just defined as True
2021-12-02 10:31:40 +0100 <tomsmeding> that's really dark
2021-12-02 10:34:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:34:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:38:04 +0100Farzad(~FarzadBek@37.98.111.153) (Remote host closed the connection)
2021-12-02 10:38:21 +0100Farzad(~FarzadBek@37.98.111.153)
2021-12-02 10:43:58 +0100cfricke(~cfricke@user/cfricke)
2021-12-02 10:47:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 10:48:00 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 10:48:40 +0100acidjnk_new(~acidjnk@p200300d0c7271e31dccc5136b6b31647.dip0.t-ipconnect.de)
2021-12-02 10:50:50 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-12-02 10:51:58 +0100Guest|44(~Guest|44@cpc104774-belf12-2-0-cust670.2-1.cable.virginm.net)
2021-12-02 10:52:25 +0100Guest|44(~Guest|44@cpc104774-belf12-2-0-cust670.2-1.cable.virginm.net) (Client Quit)
2021-12-02 10:53:19 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-12-02 10:53:43 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-12-02 10:55:30 +0100cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.3)
2021-12-02 10:58:17 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 10:58:25 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:41f2:b4d5:142e:946f) (Remote host closed the connection)
2021-12-02 10:58:28 +0100bollu(uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-02 11:02:26 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-12-02 11:02:45 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-12-02 11:03:07 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 11:04:40 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2021-12-02 11:05:01 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-12-02 11:05:14 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-12-02 11:05:19 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2021-12-02 11:06:32 +0100Lord_of_Life_Lord_of_Life
2021-12-02 11:08:08 +0100 <boxscape> I just realized the hackage bot isn't here - has that been the case ever since the switch to libera?
2021-12-02 11:08:23 +0100 <sm> I think so
2021-12-02 11:08:25 +0100 <merijn> Even before then, I think
2021-12-02 11:08:31 +0100 <boxscape> hm okay
2021-12-02 11:09:49 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-12-02 11:11:16 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-12-02 11:13:14 +0100mmhat(~mmh@55d45251.access.ecotel.net)
2021-12-02 11:16:09 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2021-12-02 11:16:24 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2021-12-02 11:18:04 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 11:18:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 11:20:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 11:21:22 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 11:24:49 +0100vpan(~0@212.117.1.172)
2021-12-02 11:25:43 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 11:30:20 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-02 11:35:37 +0100kuribas(~user@ptr-25vy0i85jcl6zvp0ziu.18120a2.ip6.access.telenet.be)
2021-12-02 11:36:29 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 256 seconds)
2021-12-02 11:38:27 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2021-12-02 11:39:58 +0100ubert1(~Thunderbi@p200300ecdf0ba290e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-12-02 11:44:44 +0100jakalx(~jakalx@base.jakalx.net) ()
2021-12-02 11:47:27 +0100jakzale(6291399afa@2604:bf00:561:2000::1e4)
2021-12-02 11:52:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 11:52:33 +0100mc47(~mc47@xmonad/TheMC47)
2021-12-02 11:55:13 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-12-02 11:58:48 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d)
2021-12-02 12:03:19 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d) (Ping timeout: 252 seconds)
2021-12-02 12:07:12 +0100Codaraxis__(~Codaraxis@user/codaraxis)
2021-12-02 12:08:24 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Read error: Connection reset by peer)
2021-12-02 12:12:08 +0100deadmarshal(~deadmarsh@95.38.119.253) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-02 12:13:16 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 12:16:43 +0100alzgh(~alzgh@user/alzgh) (Ping timeout: 256 seconds)
2021-12-02 12:18:04 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net)
2021-12-02 12:20:01 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-02 12:23:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 12:23:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 12:25:41 +0100xff0x(~xff0x@2001:1a81:5351:7200:5e3e:87f2:29ae:8612) (Ping timeout: 252 seconds)
2021-12-02 12:26:24 +0100xff0x(~xff0x@port-92-193-253-16.dynamic.as20676.net)
2021-12-02 12:29:11 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 256 seconds)
2021-12-02 12:32:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 12:35:02 +0100jess(~jess@libera/staff/jess)
2021-12-02 12:38:17 +0100bliminse(~bliminse@host86-162-147-196.range86-162.btcentralplus.com)
2021-12-02 12:38:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 12:39:23 +0100max22-(~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
2021-12-02 12:39:42 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2021-12-02 12:39:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 12:40:32 +0100max22-(~maxime@2a01cb0883359800c40fd24ed5f88e1c.ipv6.abo.wanadoo.fr)
2021-12-02 12:41:19 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 12:42:04 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 12:42:34 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Client Quit)
2021-12-02 12:43:10 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 12:43:21 +0100Codaraxis__(~Codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2021-12-02 12:44:01 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 252 seconds)
2021-12-02 12:46:29 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 12:46:36 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
2021-12-02 12:46:38 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 12:46:50 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Client Quit)
2021-12-02 12:47:41 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-12-02 12:48:47 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-12-02 12:49:14 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-02 12:50:54 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 13:02:33 +0100 <merijn> hmmm
2021-12-02 13:02:40 +0100 <merijn> Complicated PVP question :p
2021-12-02 13:02:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 13:02:57 +0100 <Hecate> merijn: that is not answered by the FAQ? :p
2021-12-02 13:03:08 +0100 <merijn> If you replace the type of a function with a type alias that refers to the same type, is that only a minor bump?
2021-12-02 13:03:15 +0100 <Hecate> I don't miss the hackage bot, personally
2021-12-02 13:03:21 +0100 <Hecate> merijn: yes
2021-12-02 13:03:26 +0100 <Hecate> types are transparent
2021-12-02 13:03:34 +0100 <Hecate> as such, they don't cause compile-time breakage
2021-12-02 13:03:48 +0100 <Hecate> and modify only half of the GHC errors :P
2021-12-02 13:04:05 +0100 <Hecate> that being said unless it's a very complex type I would advise against a type alias
2021-12-02 13:05:16 +0100 <merijn> Hecate: I need one to work across GHC with incompatible definitions >.>
2021-12-02 13:05:58 +0100 <Hecate> ah so you wish to unify those incompatible definitions by setting the content of the alias based on CPP?
2021-12-02 13:06:01 +0100 <Hecate> hmm
2021-12-02 13:06:03 +0100 <Hecate> I'd use a newtype tbh
2021-12-02 13:06:04 +0100 <Hecate> :(
2021-12-02 13:06:28 +0100 <merijn> Hecate: Well, I don't wish that. But that's what the compat library gives me :p
2021-12-02 13:06:44 +0100 <merijn> newtype doesn't work, because that won't typecheck
2021-12-02 13:07:31 +0100 <Hecate> merijn: can I see the code or is it proprietary?
2021-12-02 13:08:10 +0100 <merijn> Hecate: It's about typed TH splices, my code is TH and needs to be accepted by TH splices. But the types of those changed in 9.0, so a newtype can't ever solve/help :)
2021-12-02 13:08:27 +0100 <Hecate> ok
2021-12-02 13:08:32 +0100 <Hecate> yeah go with it
2021-12-02 13:08:39 +0100 <Hecate> PVP is about compilation breakage
2021-12-02 13:11:02 +0100 <merijn> We'll see what the CI says :)
2021-12-02 13:14:06 +0100fjmorazan(~quassel@user/fjmorazan) (Quit: fjmorazan)
2021-12-02 13:14:44 +0100fjmorazan(~quassel@user/fjmorazan)
2021-12-02 13:17:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 13:18:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 13:18:29 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 252 seconds)
2021-12-02 13:20:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 13:20:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 13:21:10 +0100unyu(~pyon@user/pyon)
2021-12-02 13:21:31 +0100pc__(~pc@41.69.129.98)
2021-12-02 13:22:40 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 13:22:45 +0100pc__(~pc@41.69.129.98) (K-Lined)
2021-12-02 13:26:34 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 13:26:52 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 13:27:33 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 13:31:03 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se)
2021-12-02 13:37:11 +0100waleee(~waleee@h-82-196-111-63.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2021-12-02 13:38:33 +0100 <albet70> why Eq remove /=? what's the benefit?
2021-12-02 13:39:04 +0100 <Franciman> why?
2021-12-02 13:39:27 +0100Megant(megant@user/megant) (Ping timeout: 256 seconds)
2021-12-02 13:39:46 +0100 <geekosaur> that question is why there are screaming fits thrown over it
2021-12-02 13:39:54 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 13:40:03 +0100 <geekosaur> about the only real benefit is that a 1-entry dictionary can easily be optimized away
2021-12-02 13:40:05 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2021-12-02 13:40:23 +0100 <arahael> Of all the breakages I had moving to ghc 9.2.1, /= wasn't one of them - not one of the major ones anyway.
2021-12-02 13:41:05 +0100Megant(megant@user/megant)
2021-12-02 13:41:33 +0100 <boxscape> /= is still part of Eq in 9.2.1.
2021-12-02 13:42:01 +0100dlew^(~dlew@68.101.58.90) (Remote host closed the connection)
2021-12-02 13:42:17 +0100 <kritzefitz> albet70: https://github.com/haskell/core-libraries-committee/issues/3 list quite understandable pros and cons. I doubt you will find any enlightenment here, that isn't already listed there.
2021-12-02 13:42:35 +0100 <boxscape> but all the breakage it will cause was already identified in the proposal (not that much, since usually people just Eq and otherwise use the default definition of (/=))
2021-12-02 13:43:09 +0100 <hpc> they could at least have started with the numeric hierarchy, there's sooooooo much duplication there
2021-12-02 13:43:17 +0100 <merijn> boxscape: How about we benchmark and demonstrate it's actually worth it before breaking shit?
2021-12-02 13:43:37 +0100 <merijn> boxscape: Right now all we have is a hypothetical optimisation that we're not sure will actually benefit anyone
2021-12-02 13:43:41 +0100 <boxscape> merijn: I don't really have an opinion on the change
2021-12-02 13:43:54 +0100 <merijn> hpc: Please no >.>
2021-12-02 13:44:19 +0100 <merijn> I dislike the Num hierarchy, but any alternatives I've seen so far are all far less practical
2021-12-02 13:44:26 +0100 <hpc> merijn: at least then the proposal wouldn't be borderline cosmetic :P
2021-12-02 13:44:52 +0100 <merijn> I really hate the amount of superficial cosmetic/syntactical fiddling in recent years
2021-12-02 13:45:42 +0100 <merijn> Wish I could nuke it from orbit, together with all the recent record extensions (except for NoFieldSelectors, that one is Actually Good (TM))
2021-12-02 13:46:10 +0100 <hpc> what we need is a proposal to make everyone unhappy
2021-12-02 13:46:18 +0100 <hpc> move (/=) out of Eq, and replace it with (!=)
2021-12-02 13:46:26 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-02 13:46:37 +0100 <boxscape> move (==) out of Eq, too, while we're at it
2021-12-02 13:46:46 +0100 <hpc> yes
2021-12-02 13:46:55 +0100 <hpc> all our equality comparisons are typesafe so it should really be (===)
2021-12-02 13:46:58 +0100 <kuribas> merijn: hey, I like recordWildCards, duplicateRecordFields, namedFieldPuns, etc...
2021-12-02 13:47:05 +0100 <merijn> Proposal to replace == with unsafePtrEquality
2021-12-02 13:47:14 +0100 <merijn> kuribas: I said *recent* record extensions
2021-12-02 13:47:24 +0100 <kuribas> merijn: which ones?
2021-12-02 13:47:27 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
2021-12-02 13:47:30 +0100 <merijn> kuribas: RecordWildCards and NamedFieldPuns are ancient
2021-12-02 13:47:35 +0100 <kuribas> ah :)
2021-12-02 13:47:38 +0100 <hpc> block arguments?
2021-12-02 13:47:47 +0100 <merijn> Do you even need DuplicateRecordFields with NoFieldSelectors?
2021-12-02 13:47:50 +0100 <merijn> hpc: Also bad
2021-12-02 13:48:08 +0100[_][itchyjunk]
2021-12-02 13:48:19 +0100 <merijn> hpc: "block arguments" is in the category like postfix qualified in imports
2021-12-02 13:48:22 +0100 <boxscape> % :set -XNoDuplicateRecordFields -XNoFieldSelectors
2021-12-02 13:48:23 +0100 <yahb> boxscape: Some flags have not been recognized: -XNoFieldSelectors
2021-12-02 13:48:31 +0100 <boxscape> :(
2021-12-02 13:48:32 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-12-02 13:48:36 +0100 <merijn> hpc: "Woulda been good if we had come up with it earlier and put it in initially"
2021-12-02 13:48:52 +0100 <merijn> hpc: But not worth the gratuitous backwards incompat for what they provide
2021-12-02 13:49:08 +0100 <hpc> still, it's on the way to becoming default enabled when we finally standardize haskell 2077
2021-12-02 13:49:14 +0100 <merijn> I find reading code using block arguments really hard too
2021-12-02 13:49:30 +0100 <merijn> So, the more I see it, I'm actually more leaning towards "actually bad if we invented it earlier"
2021-12-02 13:49:51 +0100 <merijn> boxscape: NoFieldSelectors is only 9.0 or 9.2, I think?
2021-12-02 13:50:01 +0100 <geekosaur> 9.2
2021-12-02 13:50:26 +0100 <albet70> "hpc :all our equality comparisons are typesafe so it should really be (===)", how about to introduce javascript's holy trinity? haha
2021-12-02 13:50:45 +0100 <merijn> albet70: See acme-php
2021-12-02 13:50:48 +0100 <merijn> @hackage acme-php
2021-12-02 13:50:48 +0100 <lambdabot> https://hackage.haskell.org/package/acme-php
2021-12-02 13:51:06 +0100 <boxscape> % GHC.SysTools.BaseDir.findTopDir Nothing
2021-12-02 13:51:06 +0100 <yahb> boxscape: "/srv/sandbox/root/usr/lib/ghc-9.0.1/lib"
2021-12-02 13:51:12 +0100 <hpc> i am accepting PRs on acme-php if you want to add it btw :D
2021-12-02 13:52:02 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 252 seconds)
2021-12-02 13:52:08 +0100 <albet70> "🟢 merijn :albet70: See acme-php", do u like php better than js? :)
2021-12-02 13:52:13 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 13:53:36 +0100 <albet70> now I think python is more powerful, it can return anything I want everywhere
2021-12-02 13:54:26 +0100 <boxscape> so can haskell if you use Dynamic
2021-12-02 13:54:47 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 13:55:12 +0100__monty__(~toonn@user/toonn)
2021-12-02 13:55:26 +0100 <hpc> maybe it's time for acme-haskell27
2021-12-02 13:56:33 +0100quintasan(~quassel@quintasan.pl) (Quit: quintasan)
2021-12-02 13:56:43 +0100quintasan(~quassel@quintasan.pl)
2021-12-02 13:59:11 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-02 14:00:02 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk)
2021-12-02 14:02:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:02:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:04:36 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:04:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:05:39 +0100max22-(~maxime@2a01cb0883359800c40fd24ed5f88e1c.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
2021-12-02 14:06:02 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 14:07:20 +0100 <kuribas> You already can return anything everywhere. You just need to give it the right type :)
2021-12-02 14:07:50 +0100 <merijn> unsafeCoerce all the things :p
2021-12-02 14:11:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:11:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:13:07 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:13:25 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:15:05 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:15:23 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:21:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:21:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:22:19 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-12-02 14:27:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:27:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:31:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:31:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:33:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:33:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:37:01 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-12-02 14:42:41 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:42:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:44:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 14:45:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 14:46:29 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-02 14:47:35 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-12-02 14:47:49 +0100 <merijn> Finally getting around to looking at some PRs people made to my code and I don't understand why people always feel compelled to fix things that aren't broken...
2021-12-02 14:48:43 +0100 <Rembane> Which is the worst one so far?
2021-12-02 14:48:45 +0100dschrempf(~dominik@mobiledyn-62-240-134-39.mrsn.at) (Quit: WeeChat 3.3)
2021-12-02 14:48:57 +0100 <merijn> Literally needed to add 6 lines of language pragmas to replace my lambda + case in LambdaCase and replacing all uses of liftM with fmap
2021-12-02 14:49:38 +0100 <merijn> Which proceeds to break code that's perfectally functional on everything since, essentially GHC 6.10 to something that only works with like 8.x+ >.>
2021-12-02 14:50:17 +0100 <merijn> Like, I'm not deadset on supporting stupid old GHCs, but why break it if it's not necessary for whatever feature you wanna add?
2021-12-02 14:50:21 +0100benin(~benin@183.82.179.164)
2021-12-02 14:50:37 +0100 <Rembane> Wow, that's an interesting decision by the person who submitted the PR
2021-12-02 14:50:40 +0100 <maerwald> show me how you install GHC 6.10 on a modern machine
2021-12-02 14:51:32 +0100 <merijn> maerwald: My point is: why touch a whole bunch of code that isn't even close to the code you're adding/changing only to make it gratuitously backwards incompatible
2021-12-02 14:51:49 +0100 <maerwald> to force people to upgrade their damn GHCs :p
2021-12-02 14:52:18 +0100 <merijn> It's just churn unrelated to the actual change in various commits
2021-12-02 14:52:58 +0100 <maerwald> I hate it when people nitpick on my PRs and tell me it doesn't work with GHC-not-even-installable... those people can use older hackage state
2021-12-02 14:53:18 +0100 <maerwald> or just use stack
2021-12-02 14:54:05 +0100 <maerwald> well... the solution is easy: ask them to split their commits properly and just remove the stuff that doesn't add anything
2021-12-02 14:54:11 +0100 <maerwald> they won't even notice you removed it
2021-12-02 14:54:37 +0100 <merijn> maerwald: Well, that's part of the problem too. People having shitty commit hygiene
2021-12-02 14:54:45 +0100 <maerwald> then you pretend the merge commit swallowed it
2021-12-02 14:56:13 +0100 <merijn> Even if people had proper commit hygiene, github PRs suck. WTB mainstream patch based VCS >.>
2021-12-02 14:57:33 +0100 <maerwald> why do they suck?
2021-12-02 14:58:44 +0100 <merijn> maerwald: Nearly impossible to review individual commits
2021-12-02 14:58:57 +0100 <merijn> The only overview/review possibility they give is "everything in the branch"
2021-12-02 14:59:02 +0100 <maerwald> how so? you can comment on individual commits
2021-12-02 14:59:15 +0100 <maerwald> and I think these comments now show up in the PR even
2021-12-02 14:59:33 +0100 <geekosaur> they do but you can't e.g. reject an individual commit
2021-12-02 14:59:42 +0100 <maerwald> well, that's obvious
2021-12-02 14:59:43 +0100 <geekosaur> without rejecting the whole PR
2021-12-02 15:00:05 +0100 <maerwald> because github has now way of knowing how you want to rebase
2021-12-02 15:00:26 +0100 <maerwald> it may not even work
2021-12-02 15:00:42 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ebd1:d304:8195:da29) (Quit: WeeChat 2.8)
2021-12-02 15:01:31 +0100 <merijn> maerwald: tbh, I can't figure out how to comment on individual commits either
2021-12-02 15:01:56 +0100 <geekosaur> hm, actually that's a good point. you can't comment on *commits*, y6ou comment on individual *diffs*
2021-12-02 15:02:15 +0100 <maerwald> merijn: I just did https://github.com/haskell/haskell-language-server/pull/2420
2021-12-02 15:02:50 +0100 <merijn> maerwald: That's just part of the final diff AFAICT?
2021-12-02 15:03:23 +0100 <maerwald> I commented on the commit
2021-12-02 15:03:58 +0100 <maerwald> and github fixes the link to point to those
2021-12-02 15:04:03 +0100 <merijn> maerwald: If I click on the corresponding view changes I get taken to the global diff
2021-12-02 15:04:18 +0100 <merijn> And I don't see a link to the specific commit or an indication which commit you commented on?
2021-12-02 15:04:20 +0100 <maerwald> merijn: nope
2021-12-02 15:04:22 +0100 <maerwald> not true
2021-12-02 15:04:38 +0100 <maerwald> you're not looking hard enough
2021-12-02 15:04:56 +0100 <maerwald> github even has a drop-down showing you're only looking at a specific commit of the PR
2021-12-02 15:04:59 +0100 <maerwald> everything is there
2021-12-02 15:05:05 +0100 <merijn> well, the fact that I spend 30s starting at your comment and can't figure out how it relates to a commit is already pretty clear evidence the UX is shit
2021-12-02 15:05:26 +0100 <maerwald> https://imgur.com/FykkqhE.png
2021-12-02 15:05:41 +0100 <maerwald> looks pretty intuitive to me
2021-12-02 15:05:53 +0100 <merijn> If I click the "View Changes" button from the PR I get taken to "Changes from all commits"
2021-12-02 15:05:54 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-02 15:06:05 +0100 <maerwald> because I commented on the last commit
2021-12-02 15:06:15 +0100 <merijn> So I'm not sure how you got there from the PR comments
2021-12-02 15:06:41 +0100 <maerwald> https://github.com/haskell/haskell-language-server/pull/2420/files/5b869fd8087e1d2a6636c3ce183a6cb…
2021-12-02 15:06:50 +0100 <maerwald> you're really trying hard not to get it :p
2021-12-02 15:06:52 +0100 <merijn> Anyway, this is doing the opposite of convincing me the github UI for reviews isn't shit
2021-12-02 15:07:11 +0100 <maerwald> CHANGES FROM 1 COMMIT
2021-12-02 15:07:17 +0100 <merijn> maerwald: I literally went to the PR, looked at the diff you commented my name and clicked on "View Changes"
2021-12-02 15:07:34 +0100 <maerwald> I made another comment from a different commit
2021-12-02 15:07:45 +0100 <maerwald> at this point I'm convinced you're not trying :p
2021-12-02 15:09:40 +0100DNH(~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41)
2021-12-02 15:10:53 +0100deadmarshal(~deadmarsh@95.38.119.253) (Quit: ZNC 1.8.2 - https://znc.in)
2021-12-02 15:11:17 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 15:12:01 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-02 15:12:35 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 15:16:19 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 15:16:20 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-12-02 15:16:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 15:16:38 +0100 <boxscape> My favorite controversial use of BlockArguments: Use it on non-monadic expressions to give a function one argument per line https://paste.tomsmeding.com/b2zy3Jw0
2021-12-02 15:17:08 +0100 <boxscape> s/of/of `do` with
2021-12-02 15:17:45 +0100 <boxscape> (also the paste is missing a `]` at the end)
2021-12-02 15:20:07 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 15:24:55 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 256 seconds)
2021-12-02 15:25:21 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-12-02 15:26:43 +0100 <merijn> Thanks, I hate it
2021-12-02 15:26:47 +0100lavaman(~lavaman@98.38.249.169)
2021-12-02 15:27:12 +0100sprout_(~quassel@2a02:a467:ccd6:1:54db:f79f:90dc:3ee5)
2021-12-02 15:29:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 15:29:26 +0100 <boxscape> I thought you would >:)
2021-12-02 15:29:38 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 15:30:42 +0100sprout(~quassel@2a02:a467:ccd6:1:14f6:792c:9624:6b14) (Ping timeout: 268 seconds)
2021-12-02 15:31:55 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-12-02 15:34:20 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 252 seconds)
2021-12-02 15:35:53 +0100Farzad(~FarzadBek@37.98.111.153) (Quit: Leaving)
2021-12-02 15:39:20 +0100dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 268 seconds)
2021-12-02 15:40:10 +0100gehmehgeh(~user@user/gehmehgeh)
2021-12-02 15:40:14 +0100jlamothe(~jlamothe@198.251.61.229) (Quit: leaving)
2021-12-02 15:41:40 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 15:42:58 +0100dibblego(~dibblego@122-199-1-30.ip4.superloop.com)
2021-12-02 15:42:58 +0100dibblego(~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
2021-12-02 15:42:58 +0100dibblego(~dibblego@haskell/developer/dibblego)
2021-12-02 15:44:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 15:44:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 15:46:56 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 15:47:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 15:50:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 15:51:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 15:52:37 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ebd1:d304:8195:da29)
2021-12-02 15:52:43 +0100jlamothe(~jlamothe@198.251.61.229)
2021-12-02 15:54:53 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 15:56:03 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 15:57:27 +0100 <boxscape> % a | let b | let c | let d = 1 = 2 = 3 = 4
2021-12-02 15:57:28 +0100 <yahb> boxscape:
2021-12-02 15:58:35 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 15:59:29 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-02 16:03:31 +0100 <boxscape> % [t|Int ::: String|]
2021-12-02 16:03:32 +0100 <yahb> boxscape: AppT (AppT (ConT Ghci25.:::) (ConT GHC.Types.Int)) (ConT GHC.Base.String)
2021-12-02 16:03:38 +0100 <boxscape> why is this nested AppT rather than InfixT?
2021-12-02 16:05:33 +0100 <geekosaur> doesn't InfixT only happen afterward when fixity is known?
2021-12-02 16:05:46 +0100 <geekosaur> but ghci and probably TH mess that up
2021-12-02 16:07:11 +0100max22-(~maxime@2a01cb0883359800118b3200b4a756c8.ipv6.abo.wanadoo.fr)
2021-12-02 16:08:12 +0100 <geekosaur> or maybe it's the other way around. I don't really know how that works, only that fixity gets applied only late becuase it might not be known until the end of the file
2021-12-02 16:09:41 +0100 <boxscape> hmm right
2021-12-02 16:09:49 +0100 <boxscape> it seems to work differently for expressions though
2021-12-02 16:10:00 +0100 <boxscape> % [e|1 + 3|]
2021-12-02 16:10:00 +0100 <yahb> boxscape: InfixE (Just (LitE (IntegerL 1))) (VarE GHC.Num.+) (Just (LitE (IntegerL 3)))
2021-12-02 16:10:10 +0100 <boxscape> okay wait that's because it knows this name
2021-12-02 16:10:48 +0100 <geekosaur> mm, so it knows fixity and my first one was probably correct
2021-12-02 16:11:28 +0100 <boxscape> % [t|Int GHC.TypeLits.<= String|]
2021-12-02 16:11:29 +0100 <yahb> boxscape: AppT (AppT (ConT GHC.TypeNats.<=) (ConT GHC.Types.Int)) (ConT GHC.Base.String)
2021-12-02 16:11:34 +0100 <boxscape> 🤔
2021-12-02 16:11:48 +0100 <boxscape> that produces Data.Type.Ord.<= in HEAD
2021-12-02 16:11:51 +0100 <boxscape> guess I'll report a bug
2021-12-02 16:12:01 +0100 <boxscape> oh wait
2021-12-02 16:12:04 +0100 <boxscape> it's fine
2021-12-02 16:12:12 +0100 <boxscape> I thought it was Data.Ord
2021-12-02 16:12:38 +0100 <boxscape> in any case, you'd think it would know fixity for this one geekosaur , so I think it never does it for types
2021-12-02 16:14:21 +0100Guest29(~Guest29@84.212.204.195)
2021-12-02 16:15:02 +0100acidjnk_new(~acidjnk@p200300d0c7271e31dccc5136b6b31647.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-12-02 16:17:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 16:17:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 16:17:59 +0100Guest29(~Guest29@84.212.204.195) (Quit: Client closed)
2021-12-02 16:19:12 +0100puke(~puke@user/puke) (Quit: puke)
2021-12-02 16:19:35 +0100jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
2021-12-02 16:19:54 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-12-02 16:20:46 +0100 <geekosaur> actually that makes me wonder, would it require an early fixity declaration for type level fixity to work?
2021-12-02 16:22:18 +0100 <boxscape> % [t|1 : 2 : 4 : '[]|] -- it seems to be able to figure it out
2021-12-02 16:22:18 +0100 <yahb> boxscape: AppT (AppT (PromotedT GHC.Types.:) (LitT (NumTyLit 1))) (AppT (AppT (PromotedT GHC.Types.:) (LitT (NumTyLit 2))) (AppT (AppT (PromotedT GHC.Types.:) (LitT (NumTyLit 4))) PromotedNilT))
2021-12-02 16:23:52 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-12-02 16:25:43 +0100 <boxscape> % [e|a ++++ b ++++ c|] -- assuming infixl 9 here I supppose
2021-12-02 16:25:43 +0100 <yahb> boxscape: InfixE (Just (InfixE (Just (VarE Ghci24.a)) (UnboundVarE ++++) (Just (UnboundVarE b)))) (UnboundVarE ++++) (Just (UnboundVarE c))
2021-12-02 16:27:45 +0100xff0x(~xff0x@port-92-193-253-16.dynamic.as20676.net) (Ping timeout: 256 seconds)
2021-12-02 16:28:03 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-02 16:28:42 +0100Farzad(~FarzadBek@94.74.153.97)
2021-12-02 16:30:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 16:30:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 16:31:33 +0100 <merijn> cabal.project can't have fields conditional on compiler version, right?
2021-12-02 16:33:03 +0100 <maerwald> no
2021-12-02 16:33:17 +0100 <maerwald> I'm also not sure what my opinion on that feature is
2021-12-02 16:33:49 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-12-02 16:34:17 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 16:34:19 +0100 <maerwald> with the include feature you could easily re-use cabal.project code and supply multiple per-ghc files... then you still have the burden of telling cabal which one to use
2021-12-02 16:34:23 +0100 <EvanR> can somebody sanity check me on this. The AudioSpec record type in SDL has a field with a hidden type variable for sample format. So the accessor doesn't work. And the record constructor is not exported for some reason. Is there no way to access this field?
2021-12-02 16:34:27 +0100 <boxscape> geekosaur: btw, it has to know the fixity to convert to double AppT as well, so that doesn't seem like a good reason to avoid InfixT
2021-12-02 16:35:30 +0100Jing(~hedgehog@115.207.46.97) (Quit: Textual IRC Client: www.textualapp.com)
2021-12-02 16:35:38 +0100 <merijn> maerwald: I'm just trying to find a way to specify per-GHC flags for CI, as Haskell-CI doesn't currently support it and "manually modifying the generated CI file" is something I wanna try and avoid
2021-12-02 16:35:42 +0100 <boxscape> It has UInfixT to deal with unresolved fixities
2021-12-02 16:35:50 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-02 16:35:57 +0100 <maerwald> Use github actions
2021-12-02 16:36:00 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-12-02 16:36:01 +0100 <merijn> maerwald: So I was just wondering, because haskell-ci does support copying fields from cabal.project
2021-12-02 16:36:02 +0100 <maerwald> matrices are easy
2021-12-02 16:36:08 +0100lavaman(~lavaman@98.38.249.169)
2021-12-02 16:36:15 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-02 16:36:23 +0100 <merijn> maerwald: haskell-ci generates github actions scripts already
2021-12-02 16:36:30 +0100 <yin> wasn't there an extension that let you partially applicate (-) if you leave a space between the argument?
2021-12-02 16:36:33 +0100 <maerwald> never used haskell-ci
2021-12-02 16:36:36 +0100 <geekosaur> but would it know what to do with a conditional fied?
2021-12-02 16:36:40 +0100 <geekosaur> *field
2021-12-02 16:36:54 +0100 <geekosaur> yin: LexicalNegation
2021-12-02 16:37:09 +0100 <merijn> geekosaur: I mean, making a PR to handle that case is simpler then designing an interface for this from scratch :p
2021-12-02 16:37:37 +0100 <EvanR> since the sdl2 package has been like this for 6 years, I question whether I am missing something
2021-12-02 16:37:57 +0100 <geekosaur> there were several other negationb-related extensions but they got subsumed
2021-12-02 16:38:16 +0100 <geekosaur> at one point we were up to 4 negation-related extensions all with slightly different behavior
2021-12-02 16:38:28 +0100 <merijn> Hot take: Not requiring spaces around operators was a mistake
2021-12-02 16:38:45 +0100 <boxscape> likely true
2021-12-02 16:38:49 +0100 <geekosaur> there's a ghc proposal to more or less that extent currently
2021-12-02 16:38:53 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-12-02 16:38:55 +0100 <geekosaur> may even have made 9.2
2021-12-02 16:39:11 +0100 <EvanR> whitespace relevance intensifies
2021-12-02 16:39:24 +0100 <geekosaur> I think merijn was complaining about it theother day because it broke working code
2021-12-02 16:40:00 +0100 <merijn> geekosaur: Hot take #2: Fixing said mistake now is a mistake
2021-12-02 16:40:02 +0100xff0x(~xff0x@2001:1a81:5351:7200:6ba7:7a98:a1da:e88f)
2021-12-02 16:40:23 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Ping timeout: 268 seconds)
2021-12-02 16:41:20 +0100jakalx(~jakalx@base.jakalx.net)
2021-12-02 16:42:17 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-12-02 16:43:26 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 16:44:15 +0100benin(~benin@183.82.179.164) (Ping timeout: 256 seconds)
2021-12-02 16:44:54 +0100 <boxscape> EvanR: it probably has something to do with this existential type. But that's also not exported... https://hackage.haskell.org/package/sdl2-2.5.3.0/docs/src/SDL.Audio.html#AnAudioFormat
2021-12-02 16:46:03 +0100 <boxscape> which makes me think that maybe the field really is only meant for internal use
2021-12-02 16:47:30 +0100mc47(~mc47@xmonad/TheMC47)
2021-12-02 16:50:20 +0100 <EvanR> it is exported
2021-12-02 16:50:35 +0100 <boxscape> oh
2021-12-02 16:50:37 +0100 <EvanR> that's why I get a type error and not a 'not found error', unlike the samples field xD
2021-12-02 16:50:44 +0100 <EvanR> which is inexplicably not exported
2021-12-02 16:50:55 +0100 <boxscape> I meant "AnAudioFormat" is not exported
2021-12-02 16:50:55 +0100 <EvanR> maybe the "intentionally didn't export" the wrong one
2021-12-02 16:51:25 +0100 <EvanR> didn't even know AnAudioFormat exited...
2021-12-02 16:51:46 +0100 <EvanR> you have to provide the AudioFormat type to the api
2021-12-02 16:52:00 +0100 <boxscape> that's why I linked to it :)
2021-12-02 16:52:10 +0100 <boxscape_> hmmm
2021-12-02 16:52:38 +0100 <EvanR> it just looks like a botched export list, doing a PR
2021-12-02 16:52:48 +0100 <EvanR> though my other PR has sat there for 2 years xD
2021-12-02 16:52:51 +0100gabriel_sevecek(~gabriel@188-167-229-200.dynamic.chello.sk) (Quit: WeeChat 3.3)
2021-12-02 16:52:56 +0100 <boxscape> oof
2021-12-02 16:54:15 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-02 16:55:43 +0100 <yin> where can i find an updated list of all record syntax goodies? like field matching and whatever?
2021-12-02 16:56:26 +0100 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/records.html ?
2021-12-02 16:56:54 +0100 <geekosaur> although that won't include stuff in the standard, just ghc extensions
2021-12-02 17:02:59 +0100 <yin> ah. i am interested in the standard
2021-12-02 17:03:37 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d)
2021-12-02 17:05:17 +0100 <geekosaur> https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-490003.15
2021-12-02 17:05:22 +0100 <yin> that's fine, the examples in NoTraditionalRecordSyntax suffice!
2021-12-02 17:05:36 +0100 <yin> :)
2021-12-02 17:07:04 +0100lavaman(~lavaman@98.38.249.169)
2021-12-02 17:08:01 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d) (Ping timeout: 252 seconds)
2021-12-02 17:11:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 17:11:27 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-12-02 17:11:39 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 17:13:17 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Quit: Connection closed)
2021-12-02 17:13:24 +0100 <geekosaur> also, fixing it now may be a mistake in some sense but we now have so many things that require space disambiguation that it's better to fix it once and for all instead of every special case being, well, special
2021-12-02 17:13:34 +0100 <geekosaur> starting already with BangPatterns back in 6.x
2021-12-02 17:14:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 17:14:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 17:14:47 +0100Farzad(~FarzadBek@94.74.153.97) (Ping timeout: 256 seconds)
2021-12-02 17:15:18 +0100 <boxscape> Did they have additional problems over irrefutable patterns?
2021-12-02 17:16:03 +0100chele(~chele@user/chele) (Remote host closed the connection)
2021-12-02 17:16:10 +0100 <geekosaur> hm?
2021-12-02 17:18:09 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 17:18:36 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-12-02 17:18:51 +0100 <boxscape> Irrefutable patterns also seem like a special case so I was wondering why we're starting with Bang patterns rather than irrefutable patterns
2021-12-02 17:20:33 +0100 <janus> mikko: you could theoretically use DerivingVia trick to specify that you want the 'Read' instance to use lower case
2021-12-02 17:20:34 +0100 <geekosaur> I think you can't use ~ as an operator anyway, which is how the Report resolved it
2021-12-02 17:20:54 +0100 <janus> mikko: waargonaut probably does it with json
2021-12-02 17:21:04 +0100 <boxscape> I see
2021-12-02 17:21:05 +0100 <janus> matt parsons has a blog post on it
2021-12-02 17:21:11 +0100 <geekosaur> which is probably why they borrowed it at type level for type equality
2021-12-02 17:21:18 +0100 <boxscape> right, make sense
2021-12-02 17:21:31 +0100 <boxscape> % let (~) = (+) in 1 ~ 2
2021-12-02 17:21:31 +0100 <yahb> boxscape: 3
2021-12-02 17:21:36 +0100 <boxscape> not true anymore though
2021-12-02 17:22:11 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 17:22:12 +0100 <janus> doesn't compile with warnings though ;)
2021-12-02 17:22:15 +0100 <geekosaur> right, wonder if that came in at the same time they started using it at type level. would be interesting to see if that worked in 6.x
2021-12-02 17:22:44 +0100 <geekosaur> I think it used to throw an error about pattern syntax in expression context
2021-12-02 17:23:04 +0100 <boxscape> it doesn't work on tryhaskell.org
2021-12-02 17:23:38 +0100 <geekosaur> but for all that they're different, there are a lot of similarities between type and term level these days and that's why I suspect it came in when ~ on type level did
2021-12-02 17:23:52 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-12-02 17:26:33 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-12-02 17:27:05 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Ping timeout: 252 seconds)
2021-12-02 17:27:21 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-12-02 17:30:01 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
2021-12-02 17:32:49 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2021-12-02 17:38:34 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ebd1:d304:8195:da29) (Quit: WeeChat 2.8)
2021-12-02 17:39:11 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 252 seconds)
2021-12-02 17:39:45 +0100cheater(~Username@user/cheater)
2021-12-02 17:41:16 +0100gensyst(gensyst@user/gensyst)
2021-12-02 17:41:22 +0100 <gensyst> I have a long .hs file which tells a story, i.e. the order of the functions and comments is important. By splitting it into multiple files, I'd lose the "storyline" because I'd lose the order because the module filenames wouldn't necessarily preserve the order.
2021-12-02 17:41:25 +0100 <gensyst> Any ways around this?
2021-12-02 17:41:30 +0100lavaman(~lavaman@98.38.249.169)
2021-12-02 17:42:37 +0100 <geekosaur> is it necessary to split it in the first place?
2021-12-02 17:43:07 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 17:43:42 +0100 <c_wraith> there isn't actually a maximum size on modules in haskell
2021-12-02 17:43:52 +0100 <geekosaur> if it is, I'd probably take care to name the modules to keep the order, possibly by using hierarchical namespace
2021-12-02 17:43:54 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-02 17:44:41 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
2021-12-02 17:45:46 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 17:45:47 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-12-02 17:47:59 +0100 <boxscape> % Proxy @($(pure $ TH.UInfixT (TH.ConT $ TH.mkName "Int") (TH.mkName "':|") (TH.ConT $ TH.mkName "Any")))
2021-12-02 17:47:59 +0100 <yahb> boxscape: ; <interactive>:94:10: error:; * Illegal type constructor or class name: ':|; When splicing a TH type: (Int ':| Any); * In the untyped splice: $(pure $ TH.UInfixT (TH.ConT $ TH.mkName "Int") (TH.mkName "':|") (TH.ConT $ TH.mkName "Any"))
2021-12-02 17:48:04 +0100 <boxscape> is there a way to make this work?
2021-12-02 17:48:20 +0100 <boxscape> I have to use UInfixT because I don't know the fixity of the operators I'm handling
2021-12-02 17:49:04 +0100 <boxscape> and I have to distinguish them from type constructors (so I can't just use `TH.mkName ":|"` without the tick) because I don't know if a type constructor with the same name is in scope
2021-12-02 17:49:05 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 252 seconds)
2021-12-02 17:50:01 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-02 17:50:31 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 17:51:12 +0100 <boxscape> And I cannot look up the global name of the operator because the package containing might not even be installed while generating this code
2021-12-02 17:51:23 +0100 <boxscape> s/containing/containing it
2021-12-02 17:51:41 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 17:52:35 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 17:52:53 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 17:52:56 +0100 <janus> csaba's talk on the external spineless tagless g-machine starts in 20 minutes: https://skillsmatter.com/meetups/13654-haskell-stg-interp
2021-12-02 17:53:03 +0100 <janus> or rather, 8 minutes
2021-12-02 17:53:18 +0100 <janus> (minutes in decimal notation)
2021-12-02 17:54:58 +0100 <boxscape> I think this is impossible, in which case I suppose I'll probably just open a ticket to add support for promoted names in UInfix
2021-12-02 17:56:13 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
2021-12-02 17:56:14 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2021-12-02 17:57:17 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 17:58:27 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d)
2021-12-02 17:59:40 +0100boxscape_(~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de)
2021-12-02 18:03:03 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-12-02 18:08:34 +0100DNH(~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-02 18:09:35 +0100benin(~benin@183.82.179.164)
2021-12-02 18:13:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 18:14:10 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 18:15:08 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:15:26 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2021-12-02 18:16:13 +0100vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2021-12-02 18:16:45 +0100retro_(~retro@97e2ba2e.skybroadband.com)
2021-12-02 18:20:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-02 18:20:17 +0100retroid_(~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds)
2021-12-02 18:20:23 +0100retroid_(~retro@97e2ba2e.skybroadband.com)
2021-12-02 18:20:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:21:31 +0100retro_(~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds)
2021-12-02 18:21:57 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-02 18:22:58 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 18:23:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 18:24:56 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-12-02 18:25:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-02 18:26:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:26:22 +0100DNH(~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41)
2021-12-02 18:27:19 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 256 seconds)
2021-12-02 18:29:33 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 18:29:50 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 18:29:53 +0100ozzymcduff(~mathieu@81-234-151-21-no94.tbcn.telia.com) (Remote host closed the connection)
2021-12-02 18:30:18 +0100 <EvanR> on an old random blog I found a surprising feature related to blocking unsafe ffi calls "non-threaded runtime has an SIGALARM timer that interrupts (most) blocking system calls"
2021-12-02 18:30:41 +0100 <EvanR> the safe unsafe ffi plot thickens
2021-12-02 18:30:55 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-12-02 18:31:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 18:31:55 +0100ozzymcduff(~mathieu@81-234-151-21-no94.tbcn.telia.com)
2021-12-02 18:32:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:33:54 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 18:34:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 18:35:17 +0100nschoe(~quassel@2a01:e0a:8e:a190:1242:6edc:4e6a:28bd) (Ping timeout: 252 seconds)
2021-12-02 18:35:42 +0100ec_(~ec@gateway/tor-sasl/ec)
2021-12-02 18:37:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 18:37:50 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:38:01 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-12-02 18:38:33 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-02 18:39:31 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-02 18:41:33 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2021-12-02 18:41:53 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d) (Remote host closed the connection)
2021-12-02 18:41:55 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-12-02 18:42:07 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d)
2021-12-02 18:43:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 18:43:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 18:43:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:44:35 +0100 <yin> • Couldn't match expected type ‘GHC.Exts.Item a0’
2021-12-02 18:44:51 +0100 <yin> ^ what does this mean ?
2021-12-02 18:44:51 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 18:45:01 +0100 <yin> it's just a (Int,Int)
2021-12-02 18:45:58 +0100 <hippoid> why is 'join.fmap return' not the same as '(join.fmap) return' - since function application is left associative, I thought join.fmap return would be (join.fmap) return, but it's actually join.(fmap return). What am I missing?
2021-12-02 18:46:05 +0100 <hippoid> :t join.fmap return
2021-12-02 18:46:05 +0100 <lambdabot> Monad m => m a -> m a
2021-12-02 18:46:10 +0100 <hippoid> :t join.(fmap return)
2021-12-02 18:46:11 +0100 <lambdabot> Monad m => m a -> m a
2021-12-02 18:46:17 +0100 <hippoid> :t (join.fmap) return
2021-12-02 18:46:19 +0100 <lambdabot> error:
2021-12-02 18:46:19 +0100 <lambdabot> • Occurs check: cannot construct the infinite type: m ~ (->) (m a)
2021-12-02 18:46:19 +0100 <lambdabot> Expected type: (a -> m1 a) -> m (m (m1 a))
2021-12-02 18:46:47 +0100 <dolio> Because operators are always looser than function application.
2021-12-02 18:47:19 +0100 <hippoid> so I shouldn't consider (.) to be a function?
2021-12-02 18:47:21 +0100 <[exa]> yin: a tiny piece of source around could help, this looks like GHC.Exts.Item can't be evaluated because a0 is unknown
2021-12-02 18:47:26 +0100 <yin> :t (join .) fmap return
2021-12-02 18:47:27 +0100 <lambdabot> error:
2021-12-02 18:47:27 +0100 <lambdabot> • Occurs check: cannot construct the infinite type: m ~ (->) (m a)
2021-12-02 18:47:27 +0100 <lambdabot> Expected type: (a -> m1 a) -> m (m (m1 a))
2021-12-02 18:47:51 +0100 <dolio> "Function application" means prefix function application in this case.
2021-12-02 18:48:01 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-12-02 18:48:03 +0100 <yin> :t (.) join fmap return
2021-12-02 18:48:04 +0100 <lambdabot> error:
2021-12-02 18:48:04 +0100 <lambdabot> • Occurs check: cannot construct the infinite type: m ~ (->) (m a)
2021-12-02 18:48:05 +0100 <lambdabot> Expected type: (a -> m1 a) -> m (m (m1 a))
2021-12-02 18:48:23 +0100 <yin> :t (.) join (fmap return)
2021-12-02 18:48:24 +0100 <lambdabot> Monad m => m a -> m a
2021-12-02 18:48:31 +0100 <yin> there you go ^
2021-12-02 18:48:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 18:49:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 18:49:15 +0100 <[exa]> hippoid: (.) is not a function application
2021-12-02 18:50:09 +0100 <hippoid> is (.) a function?
2021-12-02 18:50:17 +0100 <yin> yes
2021-12-02 18:50:21 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 18:50:23 +0100 <yin> however
2021-12-02 18:50:37 +0100 <yin> f = join . fmap return
2021-12-02 18:51:02 +0100 <yin> means that f x === (join . fmap return) x
2021-12-02 18:51:15 +0100 <yin> and when you write it in ghci it gives you
2021-12-02 18:51:33 +0100 <hippoid> yin: following so far
2021-12-02 18:52:18 +0100pfurla(~pfurla@201.17.118.230)
2021-12-02 18:52:36 +0100 <yin> :t (join . fmap return)
2021-12-02 18:52:38 +0100 <lambdabot> Monad m => m a -> m a
2021-12-02 18:52:50 +0100pfurla(~pfurla@201.17.118.230) (Client Quit)
2021-12-02 18:54:20 +0100 <yin> not sure what your intention is
2021-12-02 18:54:47 +0100 <[exa]> hippoid: probably better compare 'join.fmap return' with 'join$fmap return' (which is a slightly rewritten version of your 2nd snippet)
2021-12-02 18:55:00 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 18:55:25 +0100imdoor(~imdoor@balticom-142-78-50.balticom.lv)
2021-12-02 18:56:04 +0100 <hippoid> i still dont get it. I mean `(.) join fmap` seems like function application to me, even if it doesn't type check
2021-12-02 18:56:43 +0100 <yin> :t fmap return
2021-12-02 18:56:44 +0100 <lambdabot> (Monad m, Functor f) => f a -> f (m a)
2021-12-02 18:57:10 +0100 <yin> :t (.) (join) (fmap return)
2021-12-02 18:57:11 +0100 <lambdabot> Monad m => m a -> m a
2021-12-02 18:57:29 +0100 <yin> (join) and (fmap return) are the arguments to (.)
2021-12-02 18:57:47 +0100 <[exa]> hippoid: yeah, 2 function applications in fact
2021-12-02 18:58:35 +0100 <yin> this is the order of application: (join) . (fmap return)
2021-12-02 18:59:11 +0100 <yin> what's in parens gets computed first
2021-12-02 18:59:21 +0100imdoor(~imdoor@balticom-142-78-50.balticom.lv) (Client Quit)
2021-12-02 18:59:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 18:59:40 +0100imdoor(~imdoor@balticom-142-78-50.balticom.lv)
2021-12-02 18:59:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 18:59:58 +0100 <hippoid> what i'm trying to understand is why is the expression parsed that way. does it have to do with precedence rule?
2021-12-02 19:00:04 +0100 <[exa]> hippoid: just to be sure, what precisely you don't get? the 2 programs you wrote there are both syntactically and semantically different, it looks like you're assuming the . in the middle is something like function application, but that's not -- it's an operator
2021-12-02 19:00:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 19:00:29 +0100 <yin> function application takes precedence over fixity
2021-12-02 19:00:35 +0100 <[exa]> hippoid: the "spaces" between can be reimagined like function application operators, and in 'join . fmap return' there is only one
2021-12-02 19:00:58 +0100 <yin> ^ that
2021-12-02 19:01:06 +0100yinspeak broken english
2021-12-02 19:01:14 +0100 <[exa]> hippoid: so there really isn't any point at trying associativity. On the other hand, as yin, pointed out---
2021-12-02 19:01:27 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d) (Remote host closed the connection)
2021-12-02 19:01:39 +0100 <monochrom> Parsing is always about precedence rules.
2021-12-02 19:01:55 +0100 <[exa]> join . fmap return == (.) join (fmap return) ==(highlighting associativity)== ((.) join) (fmap return)
2021-12-02 19:02:02 +0100 <hippoid> ok i need to get more clear on the ideas of fixity and operators
2021-12-02 19:02:29 +0100 <yin> or...
2021-12-02 19:02:40 +0100 <yin> :t (join .) (fmap return)
2021-12-02 19:02:41 +0100 <lambdabot> Monad m => m a -> m a
2021-12-02 19:02:52 +0100 <yin> fun
2021-12-02 19:02:55 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 19:03:01 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
2021-12-02 19:03:03 +0100 <[exa]> hippoid: a nice example for playing with parentheses: negate 3 + 4 vs negate (3+4)
2021-12-02 19:03:05 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374) (Remote host closed the connection)
2021-12-02 19:03:24 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
2021-12-02 19:03:29 +0100chomwitt(~chomwitt@2a02:587:dc0d:6d00:12c3:7bff:fe6d:d374)
2021-12-02 19:03:30 +0100 <hippoid> i wonder what concept i'm missing... is expression parsing, fixity, operators, or something else
2021-12-02 19:04:15 +0100 <[exa]> hippoid: the first of the example reads '(negate _APP_ 3) + 4', the second reads 'negate _APP_ (3+4)'.
2021-12-02 19:04:24 +0100 <monochrom> In ghci you can use :info to ask operator precedence. Try :info +
2021-12-02 19:04:43 +0100 <monochrom> Bigger number is higher precedence.
2021-12-02 19:04:55 +0100 <monochrom> If it doesn't say, the default is "infixl 9"
2021-12-02 19:05:17 +0100 <[exa]> hippoid: the _APP_ is "hidden" in normal expressions for making the code nice, but you should remember that any 2 things without an operator between them will make a highest-priority function application
2021-12-02 19:05:21 +0100 <hippoid> and function application has the highest precedence?
2021-12-02 19:05:25 +0100 <[exa]> yes
2021-12-02 19:05:28 +0100neurocyte0132889(~neurocyte@46.243.81.73)
2021-12-02 19:05:28 +0100neurocyte0132889(~neurocyte@46.243.81.73) (Changing host)
2021-12-02 19:05:28 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-02 19:05:57 +0100 <hippoid> ahh ok, something is starting to click.
2021-12-02 19:06:03 +0100 <[exa]> like, this is a pretty common point of confusion, takes a bit of time to get used to that
2021-12-02 19:06:21 +0100 <hippoid> i'm going to play with the different examples you all put into the chat
2021-12-02 19:06:26 +0100yinwhishes ' ' = _APP_
2021-12-02 19:06:32 +0100 <hippoid> thanks so much!
2021-12-02 19:07:11 +0100 <monochrom> Unfortunately the "space = function application" model breaks easily as soon as you try for example:
2021-12-02 19:07:27 +0100 <monochrom> > map(\x->x+1)[3,4,5]
2021-12-02 19:07:28 +0100 <lambdabot> [4,5,6]
2021-12-02 19:07:54 +0100 <monochrom> No space at all.
2021-12-02 19:08:12 +0100 <yin> map (\x->x + 1) [3,4,5]
2021-12-02 19:08:13 +0100 <[exa]> hippoid: I'm showing this with small "implicit apply operator" to students on first few courses, like: negate⏝3+4
2021-12-02 19:08:21 +0100 <yin> ^i wish we *had* to write it like this
2021-12-02 19:08:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 19:08:45 +0100 <hippoid> > map \x->x+1 [3, 4, 5]
2021-12-02 19:08:46 +0100 <monochrom> The better model is: juxtaposition (so, lack of syntax) is function application. (In suitable contexts anyway.)
2021-12-02 19:08:47 +0100 <lambdabot> error:
2021-12-02 19:08:47 +0100 <lambdabot> Unexpected lambda expression in function application:
2021-12-02 19:08:47 +0100 <lambdabot> \ x -> x + 1 [3, 4, ....]
2021-12-02 19:09:09 +0100 <monochrom> > length"hello"
2021-12-02 19:09:10 +0100 <[exa]> hippoid: there you were calling function `1` with parameter `[3,4,5]` :]
2021-12-02 19:09:10 +0100 <lambdabot> 5
2021-12-02 19:09:17 +0100 <gensyst> geekosaur, no there's really no need to split it :D
2021-12-02 19:09:39 +0100 <gensyst> but it has a few separate, but related, concept.
2021-12-02 19:09:46 +0100 <gensyst> the relation forms the "story", so to speak
2021-12-02 19:10:01 +0100 <gensyst> for filename ordering, it's pity module names can't start with number
2021-12-02 19:10:02 +0100 <yin> and then you learn about qualified dot and record dot... :'(
2021-12-02 19:10:29 +0100xff0x(~xff0x@2001:1a81:5351:7200:6ba7:7a98:a1da:e88f) (Ping timeout: 252 seconds)
2021-12-02 19:10:32 +0100 <[exa]> yin: ssshh :] no complications now :D
2021-12-02 19:10:33 +0100 <geekosaur> but you could say S1-Foo etc.
2021-12-02 19:10:57 +0100jstolarek(~jstolarek@137.220.120.162) (Ping timeout: 256 seconds)
2021-12-02 19:11:04 +0100 <gensyst> geekosaur, yeah i could. i'll think about it. thanks!
2021-12-02 19:11:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:11:13 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-12-02 19:11:14 +0100xff0x(~xff0x@port-92-193-253-16.dynamic.as20676.net)
2021-12-02 19:11:14 +0100 <yin> you can also use Enum
2021-12-02 19:11:26 +0100neurocyte0132889(~neurocyte@46.243.81.73)
2021-12-02 19:11:26 +0100neurocyte0132889(~neurocyte@46.243.81.73) (Changing host)
2021-12-02 19:11:26 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-02 19:11:26 +0100 <yin> and name your files A-Z
2021-12-02 19:11:41 +0100 <yin> or whatever
2021-12-02 19:11:47 +0100 <monochrom> On the bright side, it is intuitive that lack of syntax binds tighter than presence of syntax. foo"hello" $ sin(x) is very intuitively "$ is the most loose one".
2021-12-02 19:11:57 +0100econo(uid147250@user/econo)
2021-12-02 19:13:09 +0100 <geekosaur> well, the advantage of my suggestion is the module names could then be part of, or at least summarize parts of, the "story"
2021-12-02 19:13:26 +0100 <monochrom> > zip"abc""def"
2021-12-02 19:13:27 +0100 <lambdabot> [('a','d'),('b','e'),('c','f')]
2021-12-02 19:14:18 +0100 <xerox> in C that wouldn't work
2021-12-02 19:14:26 +0100 <monochrom> That's got to be my latest most favourite example :)
2021-12-02 19:14:39 +0100 <[exa]> pls spaces
2021-12-02 19:14:47 +0100 <geekosaur> @quote zip`ap
2021-12-02 19:14:47 +0100 <lambdabot> quicksilver says: zip`ap`tail the aztec god of consecutive numbers
2021-12-02 19:15:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 19:15:35 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-12-02 19:16:02 +0100 <yin> i don't undestand this error: https://paste.jrvieira.com/1638468946485
2021-12-02 19:16:29 +0100 <monochrom> Uh which line is line "45"?
2021-12-02 19:16:39 +0100 <xerox> just after 44
2021-12-02 19:17:05 +0100Itaru(~DaSH@ro2.flokinet.is) (Ping timeout: 252 seconds)
2021-12-02 19:17:06 +0100 <yin> sorry, it's 17
2021-12-02 19:17:20 +0100 <yin> i forgot to edit it there also
2021-12-02 19:17:32 +0100 <yin> i edited it in the error for convenience ;)
2021-12-02 19:18:55 +0100 <monochrom> What is the type of aim?
2021-12-02 19:19:07 +0100 <yin> Int
2021-12-02 19:19:41 +0100 <yin> it's right there in Stt
2021-12-02 19:19:46 +0100 <geekosaur> seems like it should error on that and not the first tuple if it were that tyope mismatch
2021-12-02 19:19:50 +0100 <geekosaur> *type
2021-12-02 19:19:59 +0100 <monochrom> So I would think "[(x,y), (aim :: Int but not even a tuple), (k,n)]" cannot be well-typed.
2021-12-02 19:20:01 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 252 seconds)
2021-12-02 19:20:02 +0100 <[exa]> yin: did you try with a different operator than # ?
2021-12-02 19:20:05 +0100 <geekosaur> and I don't see where Item came in
2021-12-02 19:20:23 +0100 <yin> ho
2021-12-02 19:20:26 +0100 <yin> i see my mistake now
2021-12-02 19:20:28 +0100 <yin> ll
2021-12-02 19:20:31 +0100 <[exa]> # is used for ghc-internal magicks, not sure if it's safe to overload it like this
2021-12-02 19:20:46 +0100zebrag(~chris@user/zebrag)
2021-12-02 19:20:47 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
2021-12-02 19:20:50 +0100 <monochrom> # is fine if you don't turn on MagicHash
2021-12-02 19:20:59 +0100 <geekosaur> it's safe as long as MagicHash isn't enabled
2021-12-02 19:21:01 +0100 <yin> thanks monochrom
2021-12-02 19:21:07 +0100 <[exa]> ah okay good
2021-12-02 19:21:10 +0100 <monochrom> > let x # y = y/x in 2 # 4
2021-12-02 19:21:11 +0100 <lambdabot> 2.0
2021-12-02 19:21:37 +0100[exa]starts using #
2021-12-02 19:22:04 +0100 <monochrom> > let x #! y = 2*x+y in 2 #! 4
2021-12-02 19:22:06 +0100 <lambdabot> 8
2021-12-02 19:22:16 +0100 <yin> that wasn't supposed t be a list. []s for ()s
2021-12-02 19:22:22 +0100 <yin> sorry
2021-12-02 19:22:34 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-12-02 19:22:41 +0100 <yin> time to go eat something
2021-12-02 19:23:05 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 19:25:40 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:27:20 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 19:27:21 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-12-02 19:27:38 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:27:44 +0100 <Profpatsch> I have a GADT like
2021-12-02 19:27:46 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-12-02 19:27:53 +0100 <Profpatsch> data G a where
2021-12-02 19:28:03 +0100 <Profpatsch> Simple :: G Text
2021-12-02 19:28:21 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 19:28:22 +0100 <Profpatsch> List :: a -> G [a]
2021-12-02 19:28:41 +0100 <Profpatsch> Now, I can see that it can either be G Text or G [Text]
2021-12-02 19:29:20 +0100 <Profpatsch> And I want to `show` my `a` that comes from `G a`
2021-12-02 19:30:20 +0100 <Profpatsch> But I can’t rely on the information that all of my `a`s are always showable if I have a `G a`. Or can I?
2021-12-02 19:31:23 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-12-02 19:31:44 +0100 <Profpatsch> Okay wait my List cnostructor was wrong
2021-12-02 19:31:48 +0100 <Profpatsch> List :: G a -> G [a]
2021-12-02 19:32:40 +0100jasonmason(~bc8165b6@cerf.good1.com)
2021-12-02 19:32:51 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-02 19:33:29 +0100chillin_penguin(~igloo@mobile-166-175-56-140.mycingular.net)
2021-12-02 19:33:32 +0100chillin_penguin(~igloo@mobile-166-175-56-140.mycingular.net) (Max SendQ exceeded)
2021-12-02 19:33:47 +0100 <monochrom> Have you tried?
2021-12-02 19:33:49 +0100chillin_penguin(~igloo@mobile-166-175-56-140.mycingular.net)
2021-12-02 19:33:59 +0100chillin_penguin(~igloo@mobile-166-175-56-140.mycingular.net) (Max SendQ exceeded)
2021-12-02 19:34:07 +0100 <monochrom> Apparently, "instance Show (G a) where ... show (List x) = show x" is accepted.
2021-12-02 19:34:18 +0100chillin_penguin(~igloo@mobile-166-175-56-140.mycingular.net)
2021-12-02 19:34:38 +0100chillin_penguin(~igloo@mobile-166-175-56-140.mycingular.net) (Max SendQ exceeded)
2021-12-02 19:34:41 +0100 <Profpatsch> monochrom: not instance Show (G a), but the inferrence that G a means `a` is Show
2021-12-02 19:36:24 +0100 <monochrom> Have you tried?
2021-12-02 19:36:45 +0100 <monochrom> The thing I tried and got rejected is: f :: G a -> a -> String; f _ x = show x
2021-12-02 19:37:13 +0100 <Profpatsch> monochrom: and it gets rejected right?
2021-12-02 19:37:36 +0100 <Profpatsch> Because how would GHC know that all `a`s that can be assigned to G are showable
2021-12-02 19:37:56 +0100 <Profpatsch> I mean *I* know it but I don’t know how to write it down
2021-12-02 19:38:28 +0100 <Profpatsch> I wolud just give it a Show a constraint, but I’m trying to give it a natural transformation which doesn’t allow restrictions.
2021-12-02 19:38:46 +0100 <Profpatsch> forall m x. G x -> m x is hard to argue with
2021-12-02 19:38:54 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 19:38:58 +0100 <maerwald> how do you use TH to include another haskell source file like you would with CPP and #include?
2021-12-02 19:39:01 +0100 <Profpatsch> err well
2021-12-02 19:39:06 +0100 <Profpatsch> forall m. (x. G x -> m x) -> m x is hard to argue with
2021-12-02 19:39:10 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:39:14 +0100Farzad(~FarzadBek@94.74.154.205)
2021-12-02 19:40:54 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 19:41:12 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:41:14 +0100 <monochrom> I don't think TH provides for including a haskell source file.
2021-12-02 19:41:45 +0100 <dolio> Write: f' :: G b -> (Show b => a -> String) -> a -> String
2021-12-02 19:42:04 +0100 <dolio> Then write: f :: G a -> a -> String
2021-12-02 19:42:06 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:715b:47ca:3928:db8d)
2021-12-02 19:42:13 +0100 <dolio> f g x = f g show x
2021-12-02 19:43:54 +0100gensyst(gensyst@user/gensyst) (Quit: Leaving)
2021-12-02 19:47:11 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 19:47:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:47:46 +0100 <monochrom> Yikes haha write an induction proof and don't perform proof erasure for the executable...
2021-12-02 19:48:03 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-12-02 19:48:31 +0100neurocyte0132889(~neurocyte@46.243.81.73)
2021-12-02 19:48:31 +0100neurocyte0132889(~neurocyte@46.243.81.73) (Changing host)
2021-12-02 19:48:31 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-12-02 19:50:04 +0100lavaman(~lavaman@98.38.249.169)
2021-12-02 19:50:22 +0100 <Profpatsch> monochrom: Okay, I figured it out, you have to do something like `:: G a -> a -> Text` and then manuall match on all constructors of G.
2021-12-02 19:50:31 +0100 <Profpatsch> Inside the match arms, the right types will be availabl
2021-12-02 19:50:43 +0100 <Profpatsch> This makes too much sense!
2021-12-02 19:53:51 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 19:54:08 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 19:57:36 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 20:00:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 20:00:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 20:01:41 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-02 20:01:57 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-02 20:04:10 +0100 <monochrom> Category theory is really easier.
2021-12-02 20:04:10 +0100nschoe(~quassel@2a01:e0a:8e:a190:5edd:cf91:5423:75e0)
2021-12-02 20:04:10 +0100nschoe(~quassel@2a01:e0a:8e:a190:5edd:cf91:5423:75e0) (Client Quit)
2021-12-02 20:09:32 +0100 <Midjak> Hello I am using haskell-language-server from emacs on Mac OSX 11. When I try to open o haskell source file from emacs I get this message https://paste.tomsmeding.com/DM5eBvjM . If i check lsp-logs this messages: https://paste.tomsmeding.com/eehb6COh
2021-12-02 20:10:42 +0100 <Hecate> Midjak: so you did install haskell-language-server
2021-12-02 20:10:46 +0100 <Hecate> is it in your PATH ?
2021-12-02 20:11:03 +0100 <Midjak> I tried to update the language server with brew and to update the emacs packages but I could not get this error message to disappear.
2021-12-02 20:11:36 +0100 <Midjak> Hecate, yes it worked a few days ago
2021-12-02 20:11:47 +0100 <Midjak> just now I get this error...
2021-12-02 20:12:01 +0100 <tomsmeding> you didn't change anything in your emacs configuration?
2021-12-02 20:12:06 +0100 <Midjak> I am looking the path the PATH
2021-12-02 20:12:12 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-12-02 20:13:32 +0100 <Midjak> no I didn't change nothing. I have just added (require lsp) and (require lsp-haskell) right now which were missing in .emacs
2021-12-02 20:13:37 +0100 <tomsmeding> Midjak: apparently 'M-x getenv' allows you to get the value of an environment variable in emacs (I don't actually know emacs). Try to look up PATH in that way, and see if the directory where haskell-language-server-wrapper is located is indeed in that list
2021-12-02 20:14:04 +0100 <Midjak> ok I am looking this tomsmeding
2021-12-02 20:14:04 +0100Farzad(~FarzadBek@94.74.154.205) (Quit: Leaving)
2021-12-02 20:14:20 +0100 <tomsmeding> Midjak: you added those statements to your .emacs file; did that break it, or is that unrelated?
2021-12-02 20:14:33 +0100 <Midjak> no effect
2021-12-02 20:14:35 +0100 <tomsmeding> ok
2021-12-02 20:14:45 +0100 <Midjak> I get the error I have before this
2021-12-02 20:15:36 +0100emf(~emf@2620:10d:c090:400::5:d28b) (Ping timeout: 268 seconds)
2021-12-02 20:15:45 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-12-02 20:16:32 +0100 <tomsmeding> (you can check where haskell-language-server-wrapper is by typing 'which haskell-language-server-wrapper' in a terminal)
2021-12-02 20:17:32 +0100emf(~emf@2620:10d:c091:480::1:6546)
2021-12-02 20:17:44 +0100Erutuon(~Erutuon@user/erutuon)
2021-12-02 20:21:22 +0100dudek(~dudek@185.150.236.103)
2021-12-02 20:21:36 +0100 <Midjak> ok the server wrapper is in /usr/local/bin and is not in the emacs PATH
2021-12-02 20:21:56 +0100 <Midjak> I am going to change this
2021-12-02 20:22:46 +0100 <tomsmeding> how are you starting emacs? Is it also not on the path of a newly started emacs in a new terminal?
2021-12-02 20:24:36 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 20:24:52 +0100 <Midjak> I launch emacs from the dock. I think I had made configuration which was gone when I upgraded emacs. (not sure of this however)
2021-12-02 20:27:27 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 20:27:45 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 20:27:56 +0100 <tomsmeding> ah, probably you're adding /usr/local/bin to the PATH in something like .bashrc, right?
2021-12-02 20:28:19 +0100 <tomsmeding> a program in the dock launches from the context of WindowServer or something like that, which doesn't load .bashrc beforehand -- it runs in a fairly bare environment
2021-12-02 20:29:09 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 20:29:15 +0100emf_(~emf@2620:10d:c090:400::5:d28b)
2021-12-02 20:30:03 +0100emf(~emf@2620:10d:c091:480::1:6546) (Ping timeout: 252 seconds)
2021-12-02 20:31:25 +0100 <Midjak> in zsh I have '/usr/local/bin' in my PATH but I didn't do nothing for that. I have added some local '/bin' in my PATH with zshrc but not /usr/local/bin
2021-12-02 20:31:51 +0100 <Midjak> https://paste.tomsmeding.com/ubNQZxwh
2021-12-02 20:32:46 +0100 <tomsmeding> then it might be some zsh functionality perhaps
2021-12-02 20:33:06 +0100 <tomsmeding> in any case, /usr/local/bin is not put in PATH by anything that runs before the window system starts on mac, I believe
2021-12-02 20:33:23 +0100 <Midjak> yes I think so
2021-12-02 20:33:24 +0100 <tomsmeding> you might be able to do something with something like /etc/environ, but not sure
2021-12-02 20:33:34 +0100 <tomsmeding> easiest is probably to add /usr/local/bin to the PATH in emacs itself somehow :)
2021-12-02 20:33:43 +0100 <Midjak> but I don't understand how this worked before...
2021-12-02 20:34:16 +0100 <Midjak> my .emacs file was not changed when I upgrade emacs
2021-12-02 20:35:03 +0100 <Midjak> I have looked into and didn't see nothing which add /usr/local/bin explicitely.
2021-12-02 20:35:45 +0100 <tomsmeding> sounds odd
2021-12-02 20:37:35 +0100 <Midjak> yeah... I am going to find how to do that definitively in .emacs (it's the configuration file for emacs)
2021-12-02 20:39:53 +0100inkbottle[m](~inkbottle@2001:470:69fc:105::2ff5)
2021-12-02 20:40:11 +0100 <Midjak> aah I think I have installed this https://github.com/purcell/exec-path-from-shell
2021-12-02 20:40:53 +0100curiousgay(~curiousga@77-120-141-90.kha.volia.net)
2021-12-02 20:40:55 +0100jstolarek(~jstolarek@137.220.120.162)
2021-12-02 20:44:59 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 20:45:16 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 20:45:26 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-02 20:45:42 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 20:46:29 +0100 <tomsmeding> and it did the opposite of what you wanted? :p
2021-12-02 20:48:49 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 20:53:41 +0100 <Midjak> No perhaps I have remove something when I upgraded
2021-12-02 20:54:03 +0100nabaiste^(~nabaiste@68.101.58.90)
2021-12-02 20:54:13 +0100 <Midjak> Well now I have the proper PATH
2021-12-02 20:55:13 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-02 20:58:06 +0100hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Quit: leaving)
2021-12-02 20:58:09 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 20:58:57 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Client Quit)
2021-12-02 21:00:19 +0100pavonia(~user@user/siracusa)
2021-12-02 21:00:33 +0100narendraj9(~user@2a02:8109:b63f:ff7c::57b2)
2021-12-02 21:02:29 +0100 <Profpatsch> monochrom: well I only went down this rabbit hole because I wanted to use a free applicative :)
2021-12-02 21:05:05 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 21:05:26 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 252 seconds)
2021-12-02 21:05:49 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 21:07:29 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 21:07:29 +0100juhp(~juhp@128.106.188.82)
2021-12-02 21:07:47 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 21:09:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 21:09:48 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 21:10:18 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2021-12-02 21:10:23 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-12-02 21:12:03 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 21:12:21 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 21:12:23 +0100 <zincy_> When doing property based state machine testing should you be relying on your existing logic to inform your test model of the suitable next action?
2021-12-02 21:12:41 +0100 <Midjak> Ok it works now thanks for your help tomsmeding Hecate
2021-12-02 21:12:49 +0100 <tomsmeding> cheers!
2021-12-02 21:15:20 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-12-02 21:16:59 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-12-02 21:17:21 +0100 <Hecate> Midjak: good luck
2021-12-02 21:19:01 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 21:19:18 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 21:20:58 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 21:21:15 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 21:22:30 +0100 <Midjak> Hecate, why do you say "good luck" ?
2021-12-02 21:22:42 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-12-02 21:25:13 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 21:25:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 21:27:13 +0100 <Hecate> Midjak: everything
2021-12-02 21:28:45 +0100 <Midjak> Well I would prefer not to rely too much on luck Hecate
2021-12-02 21:29:02 +0100 <Hecate> very well, than I wish you success :)
2021-12-02 21:29:21 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-02 21:30:46 +0100 <Hecate> hi waleee o/
2021-12-02 21:32:21 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com)
2021-12-02 21:33:07 +0100hamflask(~hamflask@2600:1700:1bd8:b00f:ea60:30f6:60ab:8120)
2021-12-02 21:33:10 +0100 <waleee> Hecate: ?
2021-12-02 21:34:14 +0100fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net)
2021-12-02 21:34:27 +0100 <waleee> (but hi to you too, even if I can't remember the nick)
2021-12-02 21:34:53 +0100xff0x(~xff0x@port-92-193-253-16.dynamic.as20676.net) (Ping timeout: 256 seconds)
2021-12-02 21:34:55 +0100fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Client Quit)
2021-12-02 21:34:58 +0100 <boxscape> Hecate: people seem to be confused a lot by your cordiality today :D
2021-12-02 21:35:12 +0100fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net)
2021-12-02 21:35:49 +0100xff0x(~xff0x@2001:1a81:5351:7200:9887:9cf7:56de:2525)
2021-12-02 21:35:51 +0100deadmarshal(~deadmarsh@95.38.119.253)
2021-12-02 21:35:55 +0100 <monochrom> Next time use "may the odds be ever in your favour" >:)
2021-12-02 21:36:06 +0100 <Hecate> boxscape: yeah I have a reputation :')
2021-12-02 21:36:13 +0100benin(~benin@183.82.179.164) (Quit: The Lounge - https://thelounge.chat)
2021-12-02 21:36:15 +0100 <Hecate> waleee: you just joined the channel and I was feeling cordial :)
2021-12-02 21:36:18 +0100 <Rembane> "May you love in interesting times." > "good luck"
2021-12-02 21:36:18 +0100 <Hecate> monochrom: hehehe
2021-12-02 21:36:51 +0100 <dsal> Love in interesting times sounds like a sitcom situation.
2021-12-02 21:37:34 +0100 <geekosaur> love in the time of covid
2021-12-02 21:37:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 21:38:22 +0100vysn(~vysn@user/vysn)
2021-12-02 21:39:43 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-12-02 21:39:53 +0100 <Rembane> That typo made the quote so much more concerning. :D
2021-12-02 21:40:11 +0100 <Rembane> s/concerning/disconcerting/
2021-12-02 21:40:19 +0100 <Rembane> My fingers arne't doing my bidding today
2021-12-02 21:42:40 +0100 <Hecate> "May you leave the Thunderdome"
2021-12-02 21:46:00 +0100fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-12-02 21:47:12 +0100 <Rembane> That's a good one
2021-12-02 21:47:23 +0100 <Rembane> "Two enters, three leaves."
2021-12-02 21:47:53 +0100 <Hecate> :)
2021-12-02 21:49:10 +0100 <monochrom> Sounds like something like the LHC. Which are like Thunderdomes for particles.
2021-12-02 21:50:15 +0100 <Rembane> Indeed, with extra speed added. :)
2021-12-02 21:50:31 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-12-02 21:51:07 +0100 <Hecate> monochrom, Rembane: btw, what are you doing with Haskell these days?
2021-12-02 21:51:58 +0100 <Rembane> Hecate: I'm only doing Advent of Code, and it's blissful. At work I'm working in Elixir which is surprisingly good but it has too much and too weird syntax imo.
2021-12-02 21:52:14 +0100 <monochrom> Yesterday I was reading https://link.springer.com/chapter/10.1007/978-3-662-54434-1_21
2021-12-02 21:52:39 +0100 <monochrom> So now I am learning representable functors and the Yoneda lemma again.
2021-12-02 21:52:56 +0100 <Hecate> Rembane: yes I'm very familiar with Elixir, my first job was with it :)
2021-12-02 21:53:06 +0100 <Hecate> monochrom: oooh!
2021-12-02 21:53:19 +0100jgeerds(~jgeerds@55d45b75.access.ecotel.net)
2021-12-02 21:54:20 +0100 <Rembane> Hecate: Sweet! What are you doing with Haskell these days?
2021-12-02 21:54:35 +0100 <Hecate> $dayjob technically
2021-12-02 21:54:44 +0100 <Hecate> I've also joined the Cabal dev team
2021-12-02 21:54:58 +0100 <Hecate> still doing my job as Board Member for the Haskell Foundation
2021-12-02 21:55:35 +0100 <Hecate> Started an alternative Hackage repository called Flora: https://twitter.com/TechnoEmpress/status/1465713784945659906
2021-12-02 21:55:42 +0100 <Rembane> Cool!
2021-12-02 21:55:52 +0100 <Hecate> I try
2021-12-02 21:56:14 +0100 <Rembane> Was it you who was the force behind adding good stuff to the Haskell docs?
2021-12-02 21:56:33 +0100 <boxscape> "Namespaces for packages" what does this mean in practice?
2021-12-02 21:56:54 +0100 <boxscape> Oh I'm seeing it
2021-12-02 21:57:00 +0100 <boxscape> e.g. @haskell/bytestring
2021-12-02 21:57:01 +0100 <Hecate> boxscape: https://www.npmjs.com/package/@purescript/node-path
2021-12-02 21:57:03 +0100 <Hecate> yes
2021-12-02 21:57:12 +0100 <Hecate> Rembane: Yes :) :) :)
2021-12-02 21:57:15 +0100 <Hecate> 'tis me
2021-12-02 21:58:07 +0100 <boxscape> hmm namespaces do seem nice
2021-12-02 21:59:31 +0100 <Rembane> Hecate: Then it's you I'm sending grateful thoughts to when I see useful examples in base! :D
2021-12-02 21:59:36 +0100 <Rembane> Hecate: Thank you for doing that work!
2021-12-02 22:00:02 +0100benin(~benin@183.82.179.164)
2021-12-02 22:00:19 +0100 <Hecate> Rembane: <3 <3 <3
2021-12-02 22:00:26 +0100 <Hecate> thank you as well, it really warms my heart
2021-12-02 22:00:49 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-12-02 22:01:04 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-02 22:03:19 +0100 <Rembane> Hecate: ^^ no worries, may the slugs hand you fresh lettuce
2021-12-02 22:03:23 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-12-02 22:03:23 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-12-02 22:03:26 +0100allbery_bgeekosaur
2021-12-02 22:06:23 +0100 <Hecate> awww
2021-12-02 22:06:26 +0100 <Hecate> this is very cute
2021-12-02 22:09:46 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-02 22:10:01 +0100hamflask(~hamflask@2600:1700:1bd8:b00f:ea60:30f6:60ab:8120) (Ping timeout: 256 seconds)
2021-12-02 22:10:50 +0100benin(~benin@183.82.179.164) (Quit: The Lounge - https://thelounge.chat)
2021-12-02 22:11:07 +0100benin(~benin@183.82.179.164)
2021-12-02 22:11:09 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186)
2021-12-02 22:11:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-12-02 22:12:00 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Quit: gone to sleep. ZZZzzz…)
2021-12-02 22:14:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 22:14:49 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 22:16:37 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 22:16:40 +0100jess(~jess@libera/staff/jess) ()
2021-12-02 22:16:55 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 22:18:13 +0100xff0x(~xff0x@2001:1a81:5351:7200:9887:9cf7:56de:2525) (Ping timeout: 252 seconds)
2021-12-02 22:18:15 +0100zincy_(~zincy@2a00:23c8:970c:4801:4cc1:c671:40b5:6186) (Remote host closed the connection)
2021-12-02 22:19:01 +0100xff0x(~xff0x@2001:1a81:5351:7200:d75b:ca2f:7cd3:f39)
2021-12-02 22:20:33 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a)
2021-12-02 22:22:52 +0100zincy_(~zincy@2a00:23c8:970c:4801:f9b9:ddeb:6361:fc1a) (Remote host closed the connection)
2021-12-02 22:24:39 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net)
2021-12-02 22:27:22 +0100acidjnk_new(~acidjnk@p200300d0c7271e85247d18c27da64632.dip0.t-ipconnect.de)
2021-12-02 22:29:17 +0100yauhsien(~yauhsien@61-231-22-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-12-02 22:29:57 +0100hamflask(~hamflask@2600:1700:1bd8:b00f:11a7:e1ed:d710:a4af)
2021-12-02 22:30:14 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Remote host closed the connection)
2021-12-02 22:30:31 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com)
2021-12-02 22:31:33 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab)
2021-12-02 22:32:24 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-02 22:32:30 +0100mvk(~mvk@2607:fea8:5cc1:fa00::4702)
2021-12-02 22:32:38 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-12-02 22:33:13 +0100hamflask(~hamflask@2600:1700:1bd8:b00f:11a7:e1ed:d710:a4af) (Client Quit)
2021-12-02 22:33:27 +0100Hashida(~DaSH@ro2.flokinet.is)
2021-12-02 22:33:31 +0100pfurla(~pfurla@2804:14d:5c81:4104:5084:9b62:332c:deab) (Client Quit)
2021-12-02 22:34:57 +0100hskpractice(~hskpracti@94-255-217-215.cust.bredband2.com) (Ping timeout: 256 seconds)
2021-12-02 22:35:12 +0100hamflask(~hamflask@2600:1700:1bd8:b00f:8fba:5075:a126:c2f)
2021-12-02 22:35:51 +0100Hashida(~DaSH@ro2.flokinet.is) (Remote host closed the connection)
2021-12-02 22:36:19 +0100Hashida(~DaSH@ro2.flokinet.is)
2021-12-02 22:36:33 +0100Itaru(~DaSH@ro2.flokinet.is) (Ping timeout: 252 seconds)
2021-12-02 22:40:26 +0100xkuru(~xkuru@user/xkuru)
2021-12-02 22:40:52 +0100Hashida(~DaSH@ro2.flokinet.is) (Client Quit)
2021-12-02 22:43:53 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-02 22:49:23 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-12-02 22:50:52 +0100imdoor(~imdoor@balticom-142-78-50.balticom.lv) (Quit: imdoor)
2021-12-02 22:52:41 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-12-02 22:55:02 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-02 23:00:12 +0100michalz(~michalz@185.246.204.33) (Remote host closed the connection)
2021-12-02 23:03:57 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds)
2021-12-02 23:06:14 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-12-02 23:08:52 +0100abrantesasf(~abrantesa@187.36.170.211)
2021-12-02 23:09:06 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-12-02 23:13:33 +0100burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-12-02 23:14:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-12-02 23:15:55 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-12-02 23:16:44 +0100doyougnu(~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Read error: Connection reset by peer)
2021-12-02 23:17:15 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-12-02 23:19:52 +0100 <Hecate> omfg
2021-12-02 23:20:02 +0100 <Hecate> Flora.pm appears in the Haskell Weekly newsletter
2021-12-02 23:20:03 +0100 <Hecate> https://haskellweekly.news/issue/292.html
2021-12-02 23:20:04 +0100 <Hecate> :D
2021-12-02 23:20:33 +0100 <Rembane> Yay! :D
2021-12-02 23:20:55 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-12-02 23:21:17 +0100benin(~benin@183.82.179.164) (Quit: The Lounge - https://thelounge.chat)
2021-12-02 23:27:31 +0100Itaru(~DaSH@ro2.flokinet.is) (Ping timeout: 252 seconds)
2021-12-02 23:28:04 +0100Itaru(~DaSH@ro2.flokinet.is)
2021-12-02 23:29:43 +0100sagax(~sagax_nb@user/sagax) (Ping timeout: 252 seconds)
2021-12-02 23:30:22 +0100benin(~benin@183.82.179.164)
2021-12-02 23:33:01 +0100monochrom(trebla@216.138.220.146) (Ping timeout: 252 seconds)
2021-12-02 23:35:33 +0100benin(~benin@183.82.179.164) (Quit: The Lounge - https://thelounge.chat)
2021-12-02 23:40:04 +0100monochrom(trebla@216.138.220.146)
2021-12-02 23:40:55 +0100DNH(~DNH@2a02:8108:1100:16d8:b4e0:9d38:46ba:cc41) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-12-02 23:42:50 +0100TranquilEcho(~grom@user/tranquilecho)
2021-12-02 23:44:01 +0100narendraj9(~user@2a02:8109:b63f:ff7c::57b2) (Remote host closed the connection)
2021-12-02 23:45:29 +0100deadmarshal(~deadmarsh@95.38.119.253) (Ping timeout: 252 seconds)
2021-12-02 23:45:43 +0100 <dsal> Hecate: I love the response to the "why don't you just" on that post.
2021-12-02 23:46:55 +0100 <Franciman> congrawts Hecate
2021-12-02 23:48:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-12-02 23:49:09 +0100fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-12-02 23:50:46 +0100DNH(~DNH@2a02:8108:1100:16d8:a968:658b:9652:428a)
2021-12-02 23:52:45 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-12-02 23:54:02 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-12-02 23:54:36 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-12-02 23:54:42 +0100lavaman(~lavaman@98.38.249.169)
2021-12-02 23:55:20 +0100kupi(uid212005@id-212005.hampstead.irccloud.com)
2021-12-02 23:55:25 +0100Itaru(~DaSH@ro2.flokinet.is) (Remote host closed the connection)
2021-12-02 23:59:03 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)