2023/10/08

2023-10-08 00:01:17 +0200CiaoSen(~Jura@2a05:5800:298:ba00:664b:f0ff:fe37:9ef) (Ping timeout: 255 seconds)
2023-10-08 00:01:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-10-08 00:04:02 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 258 seconds)
2023-10-08 00:10:19 +0200harveypwca(~harveypwc@2601:246:c180:a570:41a8:a837:a4a7:bda1)
2023-10-08 00:11:37 +0200John_Ivan(~John_Ivan@user/john-ivan/x-1515935)
2023-10-08 00:11:55 +0200 <John_Ivan> hi, has anyone encountered this error where the import statements aren't being recognized?
2023-10-08 00:12:18 +0200 <John_Ivan> the error is "error: parse error on input ‘module’" which refers to the import calls right before the "module" keyword.
2023-10-08 00:12:22 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-08 00:12:31 +0200 <geekosaur> imports must come after module
2023-10-08 00:12:39 +0200 <John_Ivan> always
2023-10-08 00:12:40 +0200 <John_Ivan> ?
2023-10-08 00:12:58 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Quit: WeeChat 3.3)
2023-10-08 00:13:02 +0200 <geekosaur> well, the main module doesn't need a module declaration. but if one exists it must come first
2023-10-08 00:13:17 +0200 <John_Ivan> alright, i'll try that. thank you.
2023-10-08 00:15:05 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-10-08 00:18:11 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-10-08 00:18:58 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-10-08 00:22:26 +0200acidjnk(~acidjnk@p200300d6e7072f72f8dec80e9aca23dc.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-10-08 00:24:21 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 258 seconds)
2023-10-08 00:27:09 +0200stites(~stites@2607:fb90:ad63:e013:9e88:5faf:89ef:30) (Read error: Connection reset by peer)
2023-10-08 00:27:39 +0200stites(~stites@130.44.147.204)
2023-10-08 00:41:05 +0200hyiltiz(~hyiltiz@2603-8080-1f00-082f-8cdd-ec73-edb7-293e.res6.spectrum.com) (Remote host closed the connection)
2023-10-08 00:45:53 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Remote host closed the connection)
2023-10-08 00:46:31 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds)
2023-10-08 00:47:28 +0200flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection)
2023-10-08 00:48:45 +0200flukiluke(~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
2023-10-08 00:55:41 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2023-10-08 01:00:50 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-10-08 01:01:05 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-10-08 01:01:17 +0200zer0bitz_(~zer0bitz@user/zer0bitz)
2023-10-08 01:01:27 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-08 01:01:55 +0200califax(~califax@user/califx)
2023-10-08 01:03:19 +0200aliosablack(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds)
2023-10-08 01:04:36 +0200zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 258 seconds)
2023-10-08 01:16:33 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-08 01:17:16 +0200cuiltb^(~cd@76.145.193.217) (Ping timeout: 260 seconds)
2023-10-08 01:19:14 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-10-08 01:19:38 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-10-08 01:28:46 +0200bilegeek(~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) (Quit: Leaving)
2023-10-08 01:29:03 +0200khumba(~khumba@user/khumba) ()
2023-10-08 01:29:41 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-10-08 01:29:41 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-10-08 01:29:41 +0200wroathe(~wroathe@user/wroathe)
2023-10-08 01:30:34 +0200juri_(~juri@84-19-175-187.pool.ovpn.com)
2023-10-08 01:32:31 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds)
2023-10-08 01:32:42 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-10-08 01:36:48 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-08 01:37:11 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2023-10-08 01:40:03 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-10-08 01:40:21 +0200zmt00(~zmt00@user/zmt00)
2023-10-08 01:40:47 +0200 <ph88> for debugging purposes which function can i use to fully/deep evaluate a list before i pass it on ?
2023-10-08 01:41:08 +0200 <geekosaur> rnf from the deepseq package?
2023-10-08 01:41:45 +0200 <monochrom> That is a very unusual debugging method.
2023-10-08 01:43:28 +0200 <ph88> thanks geekosaur
2023-10-08 02:04:34 +0200jargon(~jargon@174-22-221-150.phnx.qwest.net)
2023-10-08 02:05:16 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds)
2023-10-08 02:08:04 +0200elevenkb(elevenkb@thunix.net)
2023-10-08 02:10:12 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-10-08 02:12:53 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-10-08 02:14:12 +0200bilegeek(~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7)
2023-10-08 02:20:38 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-08 02:23:24 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 272 seconds)
2023-10-08 02:28:22 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a)
2023-10-08 02:29:49 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-08 02:35:32 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-10-08 02:36:39 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-08 02:50:00 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
2023-10-08 02:52:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-10-08 03:03:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2023-10-08 03:09:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-10-08 03:13:33 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Remote host closed the connection)
2023-10-08 03:21:27 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds)
2023-10-08 03:26:16 +0200otto_s(~user@p5b0446f7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-10-08 03:28:06 +0200otto_s(~user@p5b044871.dip0.t-ipconnect.de)
2023-10-08 03:52:34 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-08 03:54:45 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-08 03:56:53 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-08 04:02:46 +0200harveypwca(~harveypwc@2601:246:c180:a570:41a8:a837:a4a7:bda1) (Quit: Leaving)
2023-10-08 04:07:47 +0200ori__sky(~ori__sky@2001:8b0:aaa4:8eab:dde9:a4e:29dc:23b1)
2023-10-08 04:12:59 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-10-08 04:12:59 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-10-08 04:12:59 +0200finn_elijaFinnElija
2023-10-08 04:13:42 +0200 <ori__sky> hi, I had a quick question if anyone has experience with lens stuff. I have some data structures involving `HashMap` fields that I'm indexing into using lenses, and I'm using `hashMap . at idx . non defaultValue . etc etc` to do this. however, `non` requires my value type to implement an instance of `Eq`, and I'm wondering what the reason for this
2023-10-08 04:13:43 +0200 <ori__sky> is? my type can't implement `Eq` meaningfully as it holds a `[a -> m ()]` list, which doesn't have an instance of `Eq`
2023-10-08 04:14:44 +0200 <geekosaur> how is it supposed to determine that a value is or isn't defaultValue?
2023-10-08 04:18:50 +0200 <ori__sky> hmm, fair point, I think maybe I'm struggling to conceptualize how `at idx . non x` is meant to be used. I guess my question would be, is there a way of just indexing into an Index-able lens with a default value if it doesn't already exist? i.e. without checking for equality with the default value I'm wanting to insert
2023-10-08 04:21:07 +0200 <ori__sky> I can do as much with a bit more verbosity if I do something like `hashMap . at idx %= \case Nothing -> Just defaultValue; other -> other`, before I then do whatever else I'm wanting to do with that index, but that feels pretty verbose I guess
2023-10-08 04:21:15 +0200 <c_wraith> yeah, the trick about `non` is that it sets the element to Nothing if it's the default element.
2023-10-08 04:21:35 +0200 <geekosaur> that sounbds to me like your lens is wrong; don't you want the key, not the value?
2023-10-08 04:22:14 +0200 <geekosaur> oh
2023-10-08 04:22:47 +0200 <ori__sky> looking at `at idx` lets me modify the Maybe val that's at that index, where it's Nothing if it's not already there
2023-10-08 04:23:17 +0200 <geekosaur> but `non` uses `only` which requires `Eq`. you need something which distinguishes empty lists, I think
2023-10-08 04:23:40 +0200 <geekosaur> or I'm just confused
2023-10-08 04:23:41 +0200 <c_wraith> `non` doing that is really helpful when you want to automatically remove keys when you remove the last element from a collection indexed by that key
2023-10-08 04:25:20 +0200 <geekosaur> that is, aiui it's doing the equivalent of `== []` when you really want the equivalent of `null`
2023-10-08 04:25:36 +0200 <ori__sky> hmm ah I see
2023-10-08 04:26:16 +0200 <c_wraith> ori__sky: can you use non' instead?
2023-10-08 04:27:02 +0200 <c_wraith> oh. or `anon null'
2023-10-08 04:27:24 +0200 <ori__sky> oh hmm that sounds like it might work, lemme try
2023-10-08 04:28:12 +0200 <c_wraith> oh, that's even the first example of using anon
2023-10-08 04:33:41 +0200privacy(~privacy@user/privacy) (Quit: Leaving)
2023-10-08 04:33:42 +0200 <ori__sky> hmm. I think I'm misunderstanding this still -- I have `hashMap . at idx . anon defaultValue HashMap.null` but it looks like the predicate passed to `anon` is `valtype -> Bool`, not `Maybe valtype -> Bool` which would ideally be what I want to be dealing with here, as I just want to insert if there's nothing at that index
2023-10-08 04:34:12 +0200 <c_wraith> it automatically maps Nothing to the defaultValue
2023-10-08 04:34:35 +0200 <ori__sky> ohhh
2023-10-08 04:35:35 +0200 <c_wraith> it also replaces anything that matches the predicate with the default value. I don't think you need that case, but anon is the tool that's there..
2023-10-08 04:36:09 +0200 <c_wraith> oh, wait. No, the predicate goes the other direction. If the predicate returns true, it maps to Nothing
2023-10-08 04:40:23 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
2023-10-08 04:44:51 +0200 <ori__sky> hm okay I am not sure I fully understand this still, although, this seems to work correctly: `at idx . anon defaultValue (const False)`
2023-10-08 04:45:07 +0200 <ori__sky> inserts the default value when the key doesn't exist, but doesn't replace it once it does exist
2023-10-08 04:45:41 +0200 <c_wraith> that'll work if you aren't interested in keeping the structure clean in the face of removals
2023-10-08 04:45:59 +0200 <c_wraith> the predicate is basically for "when does this map back to Nothing?"
2023-10-08 04:46:08 +0200sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-10-08 04:47:01 +0200 <ori__sky> ahh okay I understand now, so if p val == True then it indicates it should be treated as there no longer being a value there
2023-10-08 04:47:20 +0200 <c_wraith> exactly
2023-10-08 04:47:28 +0200 <ori__sky> that makes perfect sense, thanks very much for the help
2023-10-08 04:49:42 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2023-10-08 04:54:47 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds)
2023-10-08 04:56:35 +0200td_(~td@i53870937.versanet.de) (Ping timeout: 255 seconds)
2023-10-08 04:56:47 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-10-08 04:58:35 +0200td_(~td@i53870918.versanet.de)
2023-10-08 04:59:27 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 05:04:16 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 260 seconds)
2023-10-08 05:09:23 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-08 05:13:59 +0200aforemny_(~aforemny@i59F516D9.versanet.de)
2023-10-08 05:14:52 +0200aforemny(~aforemny@2001:9e8:6ce5:2900:3ebe:1c43:4cc8:272d) (Ping timeout: 248 seconds)
2023-10-08 05:21:15 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2023-10-08 05:23:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-10-08 05:42:20 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 05:43:00 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 240 seconds)
2023-10-08 05:43:50 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-10-08 05:47:20 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
2023-10-08 05:56:03 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-08 05:58:35 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-08 06:03:31 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2023-10-08 06:04:27 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-10-08 06:08:06 +0200sgarcia(sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com)
2023-10-08 06:11:17 +0200sgarcia(sgarcia@swarm.znchost.com)
2023-10-08 06:20:16 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2023-10-08 06:21:25 +0200ori__sky(~ori__sky@2001:8b0:aaa4:8eab:dde9:a4e:29dc:23b1) (Quit: Client closed)
2023-10-08 06:22:44 +0200paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com)
2023-10-08 06:28:12 +0200roboguy_(~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Quit: Leaving...)
2023-10-08 06:28:29 +0200jargon(~jargon@174-22-221-150.phnx.qwest.net) (Remote host closed the connection)
2023-10-08 06:31:25 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-08 06:36:27 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-10-08 06:38:21 +0200jathan(~jathan@69.61.93.38) (Quit: WeeChat 2.3)
2023-10-08 06:48:12 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-10-08 07:03:54 +0200hugo(znc@verdigris.lysator.liu.se)
2023-10-08 07:09:32 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 07:09:48 +0200Cajun(~Cajun@user/cajun)
2023-10-08 07:10:11 +0200Square(~Square@user/square) (Ping timeout: 260 seconds)
2023-10-08 07:16:21 +0200Cajun58(~Cajun@user/cajun)
2023-10-08 07:20:08 +0200Cajun(~Cajun@user/cajun) (Ping timeout: 245 seconds)
2023-10-08 07:26:36 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 07:33:39 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-10-08 07:37:26 +0200Cajun58(~Cajun@user/cajun) (Quit: Client closed)
2023-10-08 07:37:38 +0200Cajun(~Cajun@user/cajun)
2023-10-08 07:47:28 +0200krei-se(~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-08 07:50:17 +0200krei-se(~krei-se@p50874770.dip0.t-ipconnect.de)
2023-10-08 07:52:17 +0200bilegeek(~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) (Quit: Leaving)
2023-10-08 08:08:29 +0200todi1todi
2023-10-08 08:16:26 +0200g00gler(uid125351@uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-08 08:23:08 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-10-08 08:35:16 +0200whodevil(~whodevil@user/whodevil)
2023-10-08 08:38:58 +0200whodevil(~whodevil@user/whodevil) ()
2023-10-08 08:39:48 +0200acidjnk(~acidjnk@p200300d6e7072f71a0e70c533425b336.dip0.t-ipconnect.de)
2023-10-08 08:40:57 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-10-08 08:41:38 +0200privacy(~privacy@user/privacy)
2023-10-08 09:06:06 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:f026:93e1:c9cc:1bf) (Remote host closed the connection)
2023-10-08 09:08:08 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de)
2023-10-08 09:08:19 +0200 <ania123> is it possible to have different type elements in list?
2023-10-08 09:08:27 +0200 <ania123> I need to implement a problem and use list data structure. Types of elements of a list should not be same...
2023-10-08 09:10:10 +0200fendor(~fendor@2a02:8388:1640:be00:aab:1226:f274:5021)
2023-10-08 09:16:56 +0200 <int-e> The typical answer is to use a sum type. data Elem = EInt Integer | EDouble Double | ... (you can even add an EList [Elem] alternative to allow nested lists)
2023-10-08 09:20:38 +0200 <ania123> can I have int and float data in the same list?
2023-10-08 09:21:11 +0200 <ania123> [1;0.7] for example
2023-10-08 09:22:53 +0200 <int-e> No. But you can have [EInt 1, EFloat 0.7] of type [Elem] with data Elem = EInt Int | EFloat Flat
2023-10-08 09:23:10 +0200 <int-e> > [1, 0.7]
2023-10-08 09:23:11 +0200 <lambdabot> [1.0,0.7]
2023-10-08 09:23:33 +0200 <ania123> in that case, both data have float types
2023-10-08 09:23:38 +0200 <int-e> (you can do the JS thing where all numbers are stored doubles)
2023-10-08 09:23:48 +0200migas(~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds))
2023-10-08 09:23:48 +0200 <int-e> +as
2023-10-08 09:24:01 +0200 <int-e> (not that I recommend that)
2023-10-08 09:24:06 +0200migas(~migas@astra4961.startdedicated.net)
2023-10-08 09:24:13 +0200 <ania123> int-e: probably haskell disallow it becase of lack type inference. No?
2023-10-08 09:24:52 +0200 <int-e> No, Haskell has type inference. It largely doesn't have runtime type information.
2023-10-08 09:25:01 +0200gmg(~user@user/gehmehgeh)
2023-10-08 09:25:44 +0200 <ania123> I know haskell has type inference, probably it uses ML type inference alg? No? Milners alg?
2023-10-08 09:27:41 +0200 <int-e> With Haskell 2010... well there's type classes on top of that.
2023-10-08 09:28:56 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-10-08 09:29:45 +0200 <ania123> if type system allows different types in list, will be it impossible to infer types of functions?
2023-10-08 09:30:08 +0200 <ania123> I mean, what is a main reson to restrict in lists having same type of elements?
2023-10-08 09:30:36 +0200 <int-e> GHC goes beyond that quite a bit. Incidentally it probably allows an inhomogeneous list but it won't be useful without further trickery, because it will effectively be a list of elements, each of *some* type that you can never figure out within Haskell.
2023-10-08 09:32:28 +0200 <ania123> could you tell me reason? why differents types are not allowed in list?
2023-10-08 09:33:00 +0200 <dsal> What would be the type of a list with different types in it?
2023-10-08 09:34:42 +0200 <int-e> ania123: The elements of such a list would be values of some unknown types; any function working on them would have to take an argument of any conceivable type. There's very little you can do with that; you can ignore the argument (so make a constant function), or you can pass it along without modification (so the identity function).
2023-10-08 09:36:50 +0200 <dsal> I guess you could also count them.
2023-10-08 09:36:57 +0200 <int-e> There's *no* mechanism to inspect the value's type; that's what I meant when I said that Haskell has no runtime type information. (There's Typeable which *explicitly* adds type information. Not recommended most of the time.)
2023-10-08 09:37:12 +0200 <int-e> dsal: Sure but that's at the level of the list structure
2023-10-08 09:40:35 +0200 <dsal> Yeah, I was just imagining what you'd do if you had such a thing: https://play.haskell.org/saved/iL506sRr
2023-10-08 09:42:31 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71)
2023-10-08 09:45:13 +0200 <ania123> inte-e: clear. WHat about subtyping? If I want to have a list, where types of each it elements are related somehow to each other (for example with subtyping).
2023-10-08 09:45:47 +0200 <ania123> would not be it interesting? why such a thing is not allowed ?
2023-10-08 09:48:22 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-08 09:49:26 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net)
2023-10-08 09:50:34 +0200 <int-e> I believe subtyping would mostly be interesting for some implicit type conversions. (You still wouldn't have inhomogeneous lists because you still wouldn't have runtime type information; but you could have the ability to put both integers and rationals into the same list of rationals; the integers would be converted as they're added)
2023-10-08 09:50:37 +0200 <nullie> ania123: what is the actual problem you are trying to solve?
2023-10-08 09:50:40 +0200 <haskellbridge> <C​elestial> heya, which formatters do people use and which would you reccomend?
2023-10-08 09:51:06 +0200 <int-e> But subtypes make type inference much harder (does it become undecidable? do we lose principal types? I don't really know.)
2023-10-08 09:51:54 +0200Jackneill(~Jackneill@20014C4E1E1DF200F8969E0EBEAF265A.dsl.pool.telekom.hu)
2023-10-08 09:52:06 +0200 <int-e> (well, *inference* being undecidable has not stopped people from adding higher ranked types anyway)
2023-10-08 09:53:53 +0200 <[exa]> "undecidable" has many levels and the one you get with subtypes is pretty harsh (cf. the situation with Julia, and they even don't have the implicit type conversions)
2023-10-08 10:04:40 +0200 <ania123> aha
2023-10-08 10:06:53 +0200 <ania123> I heard, that F has more flexible type system than haskell. Does anyone has experience with F?
2023-10-08 10:07:15 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds)
2023-10-08 10:07:46 +0200 <mauke> .oO( F natural? )
2023-10-08 10:14:48 +0200justHaunting(~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-08 10:15:10 +0200justache(~justache@user/justache)
2023-10-08 10:18:35 +0200sm(~sm@plaintextaccounting/sm) (Remote host closed the connection)
2023-10-08 10:21:03 +0200shryke(~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) (Ping timeout: 240 seconds)
2023-10-08 10:21:44 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 10:23:05 +0200shryke(~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd)
2023-10-08 10:32:57 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-08 10:34:06 +0200privacy(~privacy@user/privacy) (Quit: Leaving)
2023-10-08 10:37:35 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-10-08 10:42:28 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-10-08 10:46:35 +0200elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 255 seconds)
2023-10-08 10:51:26 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-10-08 10:52:41 +0200elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
2023-10-08 11:03:14 +0200anpad(~pandeyan@user/anpad) (Ping timeout: 255 seconds)
2023-10-08 11:04:29 +0200anpad(~pandeyan@user/anpad)
2023-10-08 11:07:14 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-10-08 11:12:35 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-10-08 11:32:09 +0200michalz(~michalz@185.246.204.104)
2023-10-08 11:39:29 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-10-08 11:39:38 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-08 11:46:59 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-10-08 11:57:01 +0200xdej(~xdej@quatramaran.salle-s.org)
2023-10-08 12:10:17 +0200ru0mad(~ru0mad@moon.ruomad.net)
2023-10-08 12:24:06 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-08 12:25:07 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-08 12:25:51 +0200todi(~todi@p4fd1ae09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-10-08 12:35:24 +0200aliosablack(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1)
2023-10-08 12:42:35 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 12:44:46 +0200sm(~sm@plaintextaccounting/sm) (Remote host closed the connection)
2023-10-08 12:45:29 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 12:45:47 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net) (Quit: Client closed)
2023-10-08 12:49:15 +0200sm_(~sm@plaintextaccounting/sm)
2023-10-08 12:50:07 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds)
2023-10-08 12:56:35 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-10-08 13:01:26 +0200mrmr15(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2023-10-08 13:04:39 +0200pounce(~pounce@user/cute/pounce) (Ping timeout: 240 seconds)
2023-10-08 13:05:30 +0200pounce(~pounce@user/cute/pounce)
2023-10-08 13:07:26 +0200mrmr155(~mrmr@user/mrmr)
2023-10-08 13:24:57 +0200gensyst(~gensyst@user/gensyst)
2023-10-08 13:25:09 +0200 <gensyst> Philosophical question,
2023-10-08 13:25:57 +0200 <gensyst> A "with someResource" API seems to be implicitly assuming that it won't return someResource itself, or in fact anything that itself interacts with the resource.
2023-10-08 13:26:16 +0200 <gensyst> But this isn't enforced at the type level. Would it even be possible to limit it in such a way, at the type level?
2023-10-08 13:27:58 +0200sm_(~sm@plaintextaccounting/sm) (Quit: sm_)
2023-10-08 13:30:01 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 13:32:11 +0200 <ncf> what's "it"?
2023-10-08 13:32:29 +0200 <[Leary]> gensyst: Yes, with RankNTypes. You could have something like `with :: Handle a -> (forall s. Resource s a -> ResourceT s m b) -> m b`, but you'd have to be careful designing the rest of the interface to `Resource` and `ResourceT`, or there could be escape hatches.
2023-10-08 13:35:49 +0200 <gensyst> interesting lol
2023-10-08 13:38:05 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-10-08 13:39:09 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-08 13:43:55 +0200 <gensyst> [Leary], but what I meant more is... How do you even prevent that thing (the stuff in with) from returning another thing that interacts with the input FileHandle?
2023-10-08 13:44:32 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed)
2023-10-08 13:49:43 +0200justache(~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-08 13:50:06 +0200justache(~justache@user/justache)
2023-10-08 13:52:03 +0200 <int-e> gensyst: by making sure that you can only interact with it inside `ResourceT s m _`. You /can/ return actions of that type but you can only execute them within `with`.
2023-10-08 13:52:30 +0200 <int-e> (This won't work for a plain FileHandle; you'll have to wrap it in another type that's tagged with `s`)
2023-10-08 13:53:03 +0200 <int-e> :t runST
2023-10-08 13:53:04 +0200 <lambdabot> (forall s. ST s a) -> a
2023-10-08 13:53:20 +0200 <int-e> :t newSTVar
2023-10-08 13:53:21 +0200 <lambdabot> error: Variable not in scope: newSTVar
2023-10-08 13:54:23 +0200 <int-e> :t newSTRef
2023-10-08 13:54:24 +0200 <lambdabot> a -> ST s (STRef s a)
2023-10-08 13:54:54 +0200 <int-e> (slightly different situation; it's not a `with` interface because there's no need for timely cleanup)
2023-10-08 13:55:24 +0200 <int-e> (But ST is using the same RankNTypes concept.)
2023-10-08 13:56:50 +0200zer0bitz_zer0bitz
2023-10-08 14:05:04 +0200 <[Leary]> gensyst: The key is the inner `forall s` and the fact that every relevant piece of data is contaminated by it. None of the other type variables can be instantiated at a type containing `s`, so something like `with h \r -> pure r` is a type error, as would be `with h \r -> pure (access r)` given `access :: Resource s a -> ResourceT s m a`.
2023-10-08 14:05:51 +0200 <tomsmeding> because then the 's' "leaks" to outside the forall, which is not allowed
2023-10-08 14:05:58 +0200CiaoSen(~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef)
2023-10-08 14:06:27 +0200 <tomsmeding> see section 4 of https://www.microsoft.com/en-us/research/wp-content/uploads/1994/06/lazy-functional-state-threads.… :p
2023-10-08 14:06:32 +0200 <tomsmeding> er, section 2.4
2023-10-08 14:10:02 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-08 14:10:10 +0200TomawsCock(~TomawsCoc@12.172.251.103)
2023-10-08 14:10:11 +0200 <TomawsCock> Courtney Rickett Gets Gangbanged by the Braves - The Shitty Clarinet - Courtney Rickett takes ecstasy suppositories with Edna Skilton and ends up gangbanged by the Atlanta Braves and consensually sodomized by her trusty clarinet. https://justpaste.it/Courtney_Rickett_Gangbanged
2023-10-08 14:10:26 +0200TomawsCock(~TomawsCoc@12.172.251.103) (K-Lined)
2023-10-08 14:14:39 +0200 <tomsmeding> yay ozone
2023-10-08 14:18:46 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2023-10-08 14:25:37 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-08 14:34:26 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-08 14:36:25 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-10-08 14:39:28 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-08 14:40:29 +0200xff0x(~xff0x@2405:6580:b080:900:54b9:b3f0:7086:8bcc) (Ping timeout: 245 seconds)
2023-10-08 14:40:36 +0200CiaoSen(~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds)
2023-10-08 14:40:52 +0200xff0x(~xff0x@178.255.149.135)
2023-10-08 14:46:04 +0200simendsjo(~user@84.211.91.241)
2023-10-08 15:00:12 +0200 <gensyst> thanks for sharing. will have to look into this as i study more about type-level programming
2023-10-08 15:00:42 +0200gensyst(~gensyst@user/gensyst) (Quit: Leaving)
2023-10-08 15:00:51 +0200mmhat(~mmh@p200300f1c74e6f29ee086bfffe095315.dip0.t-ipconnect.de)
2023-10-08 15:02:15 +0200fendor(~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Ping timeout: 240 seconds)
2023-10-08 15:02:33 +0200mmhat(~mmh@p200300f1c74e6f29ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-10-08 15:07:33 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-08 15:09:32 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-08 15:22:41 +0200todi(~todi@p4fd1ae09.dip0.t-ipconnect.de)
2023-10-08 15:24:45 +0200todi(~todi@p4fd1ae09.dip0.t-ipconnect.de) (Remote host closed the connection)
2023-10-08 15:25:27 +0200todi(~todi@p4fd1ae09.dip0.t-ipconnect.de)
2023-10-08 15:27:39 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-10-08 15:28:06 +0200ec(~ec@gateway/tor-sasl/ec)
2023-10-08 15:34:22 +0200xff0x(~xff0x@178.255.149.135) (Ping timeout: 255 seconds)
2023-10-08 15:36:07 +0200xff0x(~xff0x@2405:6580:b080:900:e561:e849:ed8d:66e)
2023-10-08 15:38:13 +0200stites(~stites@130.44.147.204) (Ping timeout: 258 seconds)
2023-10-08 15:38:46 +0200stites(~stites@2607:fb91:dc9:9458:e307:804f:f7f3:4cb1)
2023-10-08 15:40:30 +0200manjaroi3asdasd(~manjaro-i@173.244.55.113)
2023-10-08 15:44:27 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de)
2023-10-08 15:59:35 +0200todi(~todi@p4fd1ae09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-10-08 16:00:54 +0200manjaroi3asdasd(~manjaro-i@173.244.55.113) (Ping timeout: 245 seconds)
2023-10-08 16:01:45 +0200son0p(~ff@181.136.122.143) (Quit: Bye)
2023-10-08 16:02:42 +0200__ht(~Thunderbi@91.90.123.10)
2023-10-08 16:03:56 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2023-10-08 16:03:56 +0200__ht_ht
2023-10-08 16:15:16 +0200vglfr(~vglfr@88.155.165.25) (Remote host closed the connection)
2023-10-08 16:16:03 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 16:16:13 +0200vglfr(~vglfr@88.155.165.25) (Remote host closed the connection)
2023-10-08 16:18:28 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 16:19:16 +0200Functionalley(~al@82-69-116-36.dsl.in-addr.zen.co.uk)
2023-10-08 16:19:47 +0200vglfr(~vglfr@88.155.165.25) (Remote host closed the connection)
2023-10-08 16:20:12 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 16:21:50 +0200ridcully(~ridcully@p57b5294c.dip0.t-ipconnect.de)
2023-10-08 16:21:57 +0200cayley58(~cayley5@user/phileasfogg)
2023-10-08 16:22:11 +0200driib5(~driib@vmi931078.contaboserver.net)
2023-10-08 16:22:26 +0200vglfr(~vglfr@88.155.165.25) (Read error: Connection reset by peer)
2023-10-08 16:22:30 +0200sympt7(~sympt@user/sympt)
2023-10-08 16:22:46 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr)
2023-10-08 16:22:51 +0200h2t_(~h2t@user/h2t)
2023-10-08 16:23:28 +0200krei-se-(~krei-se@p50874770.dip0.t-ipconnect.de)
2023-10-08 16:23:35 +0200ridcully_(~ridcully@p57b5294c.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2023-10-08 16:23:35 +0200driib(~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds))
2023-10-08 16:23:35 +0200cayley5(~cayley5@user/phileasfogg) (Quit: Ping timeout (120 seconds))
2023-10-08 16:23:35 +0200sympt(~sympt@user/sympt) (Quit: Ping timeout (120 seconds))
2023-10-08 16:23:35 +0200h2t(~h2t@user/h2t) (Quit: ZNC - https://znc.in)
2023-10-08 16:23:36 +0200krei-se(~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-08 16:23:36 +0200driib5driib
2023-10-08 16:23:36 +0200cayley58cayley5
2023-10-08 16:23:36 +0200sympt7sympt
2023-10-08 16:23:44 +0200manjaroi3asdasd(~manjaro-i@173.244.55.113)
2023-10-08 16:23:57 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net)
2023-10-08 16:29:01 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net) (Quit: Ping timeout (120 seconds))
2023-10-08 16:29:58 +0200__ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-10-08 16:31:41 +0200Functionalley(~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Konversation terminated!)
2023-10-08 16:32:04 +0200_ht(~Thunderbi@91.90.123.10) (Ping timeout: 272 seconds)
2023-10-08 16:32:04 +0200__ht_ht
2023-10-08 16:34:40 +0200Functionalley(~al@82-69-116-36.dsl.in-addr.zen.co.uk)
2023-10-08 16:35:48 +0200Functionalley(~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Client Quit)
2023-10-08 16:37:13 +0200wroathe(~wroathe@50.205.197.50)
2023-10-08 16:37:13 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-10-08 16:37:13 +0200wroathe(~wroathe@user/wroathe)
2023-10-08 16:38:49 +0200manjaroi3asdasd(~manjaro-i@173.244.55.113) (Ping timeout: 245 seconds)
2023-10-08 16:41:02 +0200son0p(~ff@181.136.122.143)
2023-10-08 16:41:05 +0200simendsjo(~user@84.211.91.241) (Ping timeout: 258 seconds)
2023-10-08 16:41:19 +0200sabino(~sabino@user/sabino)
2023-10-08 16:46:00 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-08 16:47:29 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 255 seconds)
2023-10-08 16:48:03 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 17:01:43 +0200privacy(~privacy@user/privacy)
2023-10-08 17:03:20 +0200Functionalley(~al@82-69-116-36.dsl.in-addr.zen.co.uk)
2023-10-08 17:04:12 +0200manjaroi3asdasd(~manjaro-i@173.244.55.113)
2023-10-08 17:05:25 +0200manjaroi3asdasd(~manjaro-i@173.244.55.113) (Client Quit)
2023-10-08 17:09:15 +0200Square(~Square@user/square)
2023-10-08 17:10:45 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-08 17:11:13 +0200Functionalley(~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Konversation terminated!)
2023-10-08 17:14:12 +0200RSCASTILHO(~RSCASTILH@187.40.126.47)
2023-10-08 17:15:47 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2023-10-08 17:15:49 +0200stites(~stites@2607:fb91:dc9:9458:e307:804f:f7f3:4cb1) (Read error: Connection reset by peer)
2023-10-08 17:16:10 +0200stites(~stites@130.44.147.204)
2023-10-08 17:16:48 +0200berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2023-10-08 17:17:43 +0200berberman(~berberman@user/berberman)
2023-10-08 17:17:59 +0200mud(~mud@user/kadoban)
2023-10-08 17:21:03 +0200michalz(~michalz@185.246.204.104) (Ping timeout: 240 seconds)
2023-10-08 17:22:59 +0200CiaoSen(~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef)
2023-10-08 17:23:32 +0200khumba(~khumba@user/khumba)
2023-10-08 17:24:37 +0200michalz(~michalz@185.246.207.221)
2023-10-08 17:27:33 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-10-08 17:27:59 +0200vglfr(~vglfr@88.155.165.25) (Read error: Connection reset by peer)
2023-10-08 17:28:21 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr)
2023-10-08 17:29:25 +0200init(21945@user/init) (WeeChat 4.0.5)
2023-10-08 17:30:39 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-10-08 17:33:54 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2023-10-08 17:34:46 +0200CiaoSen(~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds)
2023-10-08 17:41:27 +0200Vajb(~Vajb@2001:999:400:fb4a:5fa:e213:c009:c212)
2023-10-08 17:41:59 +0200fendor(~fendor@2a02:8388:1640:be00:aab:1226:f274:5021)
2023-10-08 17:44:09 +0200wroathe(~wroathe@50.205.197.50)
2023-10-08 17:44:09 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-10-08 17:44:09 +0200wroathe(~wroathe@user/wroathe)
2023-10-08 17:49:27 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 240 seconds)
2023-10-08 17:50:09 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 17:58:19 +0200raym(~ray@user/raym)
2023-10-08 17:59:13 +0200son0p(~ff@181.136.122.143) (Remote host closed the connection)
2023-10-08 18:00:55 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk)
2023-10-08 18:01:50 +0200son0p(~ff@181.136.122.143)
2023-10-08 18:05:26 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-10-08 18:07:05 +0200pavonia_(~user@user/siracusa)
2023-10-08 18:10:58 +0200pavonia(~user@user/siracusa) (Ping timeout: 255 seconds)
2023-10-08 18:11:00 +0200pavonia_pavonia
2023-10-08 18:12:51 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-10-08 18:14:36 +0200wroathe(~wroathe@50.205.197.50)
2023-10-08 18:14:36 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-10-08 18:14:36 +0200wroathe(~wroathe@user/wroathe)
2023-10-08 18:17:28 +0200fendor(~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection)
2023-10-08 18:25:13 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-10-08 18:27:09 +0200 <haskellbridge> <I​nst> maralorn: could you help delete the haskellbridge message from the obscenity spammer?
2023-10-08 18:28:02 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-10-08 18:28:04 +0200 <haskellbridge> <I​nst> Thanks
2023-10-08 18:28:28 +0200 <haskellbridge> <g​eekosaur> btw @mods is a thing
2023-10-08 18:29:11 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Ping timeout: 260 seconds)
2023-10-08 18:29:20 +0200 <haskellbridge> <g​eekosaur> (@shapr you should set a highlight on that)
2023-10-08 18:29:22 +0200 <haskellbridge> <I​nst> also iirc, weren't you on vacation?
2023-10-08 18:29:28 +0200 <haskellbridge> <g​eekosaur> no?
2023-10-08 18:29:45 +0200 <haskellbridge> <I​nst> iirc you lost access to your matrix account or something like that
2023-10-08 18:30:01 +0200 <haskellbridge> <g​eekosaur> ??
2023-10-08 18:31:12 +0200 <haskellbridge> <I​nst> i mean a while back, you granted SM admin rights to matrix channel
2023-10-08 18:31:37 +0200 <haskellbridge> <I​nst> but tbh, this is an unnecessary discussion, no?
2023-10-08 18:31:53 +0200 <haskellbridge> <g​eekosaur> oh, I probably said at the time that I didn't like being the only admin because I can't promis that I won't disappear
2023-10-08 18:32:16 +0200 <haskellbridge> <I​nst> ah okay, sorry to hear it's so
2023-10-08 18:34:14 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-10-08 18:35:32 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection)
2023-10-08 18:35:47 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71)
2023-10-08 18:36:25 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk)
2023-10-08 18:38:28 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-10-08 18:47:02 +0200 <tomsmeding> Inst: noone can promise that they won't disappear
2023-10-08 18:47:29 +0200 <tomsmeding> who knows, maybe you're suddenly employed by a bank :p
2023-10-08 18:59:49 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net)
2023-10-08 19:00:54 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 272 seconds)
2023-10-08 19:01:42 +0200vglfr(~vglfr@88.155.165.25) (Read error: Connection reset by peer)
2023-10-08 19:02:37 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 19:03:56 +0200 <haskellbridge> <I​nst> i do want to ask one thing, though, ummm, sm suggested that i ask here or in haskell matrix, and i feel like this room is slightly more active
2023-10-08 19:04:24 +0200 <geekosaur> it varies
2023-10-08 19:04:29 +0200 <haskellbridge> <I​nst> i was complaining a long time ago that Haskell had difficulty beating Py when it came to IO code, but I realized
2023-10-08 19:04:30 +0200AlexNoo_(~AlexNoo@178.34.163.10)
2023-10-08 19:04:31 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Ping timeout: 255 seconds)
2023-10-08 19:04:52 +0200 <haskellbridge> <I​nst> basically, if you make annoying point-free IO code in Haskell
2023-10-08 19:05:05 +0200 <haskellbridge> <I​nst> you're competitive with idiomatic Python
2023-10-08 19:05:32 +0200 <haskellbridge> <I​nst> if python goes to mimic the same thing, you know, with pipelines, python still wins
2023-10-08 19:05:51 +0200 <yushyin> beating in what?
2023-10-08 19:05:51 +0200 <haskellbridge> <I​nst> but i feel like it's smelly in py
2023-10-08 19:05:53 +0200 <yushyin> LOC?
2023-10-08 19:05:56 +0200 <yushyin> who cares :D
2023-10-08 19:05:58 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net) (Ping timeout: 245 seconds)
2023-10-08 19:06:30 +0200 <haskellbridge> <I​nst> concision, i guess, and i guess that's not a focus anymore
2023-10-08 19:06:46 +0200Alex_test(~al_test@94.233.241.182) (Ping timeout: 255 seconds)
2023-10-08 19:07:01 +0200 <haskellbridge> <I​nst> but the interesting thing is that the reason Haskell is less concise here is because Haskell has a notion of effect, and requires monadic operators or applicative functions to sequence them together
2023-10-08 19:07:03 +0200 <geekosaur> I prefer comprehensibility to code golf, personally
2023-10-08 19:07:05 +0200AlexZenon(~alzenon@94.233.241.182) (Ping timeout: 255 seconds)
2023-10-08 19:07:17 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed)
2023-10-08 19:07:37 +0200 <remexre> I'm being glib, but IME you just put M's on the ends of all your functions once you need IO and the code barely changes :p
2023-10-08 19:08:07 +0200AlexNoo(~AlexNoo@94.233.241.182) (Ping timeout: 255 seconds)
2023-10-08 19:08:15 +0200AlexNoo_AlexNoo
2023-10-08 19:08:29 +0200 <geekosaur> or you use lens and it doesn't change at all 😛
2023-10-08 19:08:46 +0200 <haskellbridge> <I​nst> the hypothesis i have is that the Haskell code-golfed / point free IO stuff is idiomatic and readable, but the python equivalent is not
2023-10-08 19:08:47 +0200 <geekosaur> (speaking of "idiomatic" short code)
2023-10-08 19:08:54 +0200 <haskellbridge> <I​nst> i'm trying to dig up an example
2023-10-08 19:09:13 +0200 <haskellbridge> <I​nst> well, simplest would be echo program:
2023-10-08 19:09:19 +0200 <haskellbridge> <I​nst> main = getLine >>= putStrln
2023-10-08 19:09:42 +0200 <haskellbridge> <I​nst> vs def main(): print(input())
2023-10-08 19:10:06 +0200 <haskellbridge> <I​nst> py version is technically more concise, but it's smelly, whereas the Haskell version isn't, at least, I guess this is subjective?
2023-10-08 19:10:36 +0200 <geekosaur> it's not smelly but imo it's more "advanced mode"
2023-10-08 19:11:24 +0200Alex_test(~al_test@178.34.163.10)
2023-10-08 19:11:26 +0200 <haskellbridge> <I​nst> in the sense that this kind of code alienates people with less experience? but the idea i have is that the monadic / applicative accounting, the tracking of effects and the forced use of operators, makes this acceptably readable
2023-10-08 19:11:35 +0200 <geekosaur> also the Haskell one would be one character shorter (ignoring spaces) if `getLine`'s length matched `input` and similarly for `putStrLn`
2023-10-08 19:12:15 +0200 <geekosaur> I think a lot of beginners shy away from `>>=` in favor of do notation
2023-10-08 19:12:39 +0200 <geekosaur> which is arguably bad because `do` hides what's really going on and you'll make mistakes if you don't understand that
2023-10-08 19:13:09 +0200 <geekosaur> I have certainly seen beginner code which assumed that `do` was a quick escape into what they think of as "normal" code
2023-10-08 19:15:04 +0200 <haskellbridge> <I​nst> and people go through a do notation is bad stage as well
2023-10-08 19:15:25 +0200AlexZenon(~alzenon@178.34.163.10)
2023-10-08 19:16:51 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk)
2023-10-08 19:17:35 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 19:19:39 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-10-08 19:20:43 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-10-08 19:31:55 +0200billchenchina(~billchenc@103.152.35.21)
2023-10-08 19:32:30 +0200notzmv(~zmv@user/notzmv)
2023-10-08 19:33:08 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Remote host closed the connection)
2023-10-08 19:33:53 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk)
2023-10-08 19:34:15 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-08 19:34:56 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-08 19:39:59 +0200 <monochrom> Haskell is necessarily more advanced or alienating at the ground level already because "putStrLn(getLine)" doesn't work (but "arccos(sin x)" still does) so you have to hear about either do or >>= unlike mainstream languages.
2023-10-08 19:40:54 +0200 <monochrom> The branch point is then do you want to teach deeper understanding or do you want to teach cargo-culting.
2023-10-08 19:41:14 +0200 <geekosaur> and millennials only want cargo-culting
2023-10-08 19:41:26 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2023-10-08 19:41:35 +0200 <geekosaur> (evidently, from all the errors in my browser js console)
2023-10-08 19:42:30 +0200 <dolio> I think it goes back further than that.
2023-10-08 19:43:03 +0200BANNEDue-x(~Syzopoe_n@46.34.42.238)
2023-10-08 19:43:26 +0200BANNEDue-x(~Syzopoe_n@46.34.42.238) (https://ircnow.org FREE SHELLS AND BOUNCERS)
2023-10-08 19:43:41 +0200 <monochrom> There is actually a famous Haskeller who wrote a blog advocating letting beginners freely use do-notation and IORef and generally just write C-style or Python-style in Haskell, reason being "you get them on board".
2023-10-08 19:44:10 +0200 <monochrom> IMO that's just teaching cargo-culting but my opinion is known to be unpopular and reactionary.
2023-10-08 19:47:49 +0200 <monochrom> do-notation is very cargo-cultable and my students certainly aced it. But they were interested in understanding, so afterwards they actually recommended abolishing it and sticking to >>= instead.
2023-10-08 19:50:12 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de)
2023-10-08 19:50:28 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-08 19:51:16 +0200 <monochrom> I do not morally oppose making money fast; by extension, therefore I should not morally oppose cargo-culting either, as people do it just for making money fast. If one learns Haskell for that purpose, there is nothing wrong with that way.
2023-10-08 19:51:53 +0200 <monochrom> But generally when you debate what to teach, it reduces all the way back to why you teach it, what you're optimizing for, seriously.
2023-10-08 19:53:26 +0200 <monochrom> And different people can actually want to teach the "same" thing but for opposite reasons. Therefore how to teach it is also going to be opposite.
2023-10-08 19:54:26 +0200 <monochrom> Next, be very careful what kind of people you are attracting to the community.
2023-10-08 19:54:46 +0200 <dolio> Yeah, that's the part I personally don't get.
2023-10-08 19:55:15 +0200 <monochrom> Do not be so naïve as to think that by attracting people you are changing them.
2023-10-08 19:55:30 +0200 <monochrom> NO. After they join, they change the community instead.
2023-10-08 19:55:52 +0200 <dolio> I like Haskell because it does a bunch of things differently. I don't understand why people would want to use Haskell and just do what everything else does. And attracting people who want Haskell to be just like everything else is a negative.
2023-10-08 19:56:04 +0200 <monochrom> You attract OOP people, you will convert Haskell to OOP, not the other way round. Just look at the popularity of RecordDotSyntax.
2023-10-08 19:56:54 +0200 <monochrom> There is legit another Haskeller who blogged "now that we have RecordDotSyntax, Haskell is actually a real-world language". Guess where they came from.
2023-10-08 20:01:49 +0200 <dolio> Can't use a language in the real world unless it follows arbitrary syntactic conventions.
2023-10-08 20:02:47 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-10-08 20:03:33 +0200cpressey(~cpressey@host-2-102-9-134.as13285.net)
2023-10-08 20:03:34 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2023-10-08 20:06:24 +0200 <dolio> This is also the kind of statement where I don't understand complaints about various Haskell users being 'elitist.' That kind of statement is a very 'mainstream' sort of argument of why Haskell isn't usable for most people. But it is predicated on the idea that most people are incapable of learning minor variations on syntax they know.
2023-10-08 20:08:06 +0200 <monochrom> Perhaps if we s/Haskell/engineering/ there may be a possible insight. Why do people want to be called "engineers" but continue to do things in non-engineering ways? (I'm looking at you, software "engineers".)
2023-10-08 20:08:29 +0200 <monochrom> Because the "engineer" title is prestigious, and yet people want it without paying the cost.
2023-10-08 20:08:46 +0200 <geekosaur> s/yet/therefore
2023-10-08 20:08:56 +0200 <monochrom> heh :(
2023-10-08 20:09:28 +0200privacy(~privacy@user/privacy) (Remote host closed the connection)
2023-10-08 20:11:54 +0200 <EvanR> recently was told semi 2nd hand that haskell is considered bad because it's not approachable
2023-10-08 20:12:17 +0200 <geekosaur> quick gotta turn it into js!
2023-10-08 20:12:47 +0200billchenchina-(~billchenc@103.152.35.21)
2023-10-08 20:13:24 +0200 <EvanR> I guess that could mean "not C syntax" but my knee jerk interpretation was the sheer amount of webpages about it that have a good CSS theme
2023-10-08 20:13:29 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-08 20:13:32 +0200billchenchina(~billchenc@103.152.35.21) (Read error: Connection reset by peer)
2023-10-08 20:13:47 +0200 <EvanR> relative to popular languages
2023-10-08 20:13:53 +0200 <EvanR> other than C
2023-10-08 20:14:23 +0200mud(~mud@user/kadoban) (Quit: quit)
2023-10-08 20:14:45 +0200 <EvanR> what is this, HTML 4.01 https://www.haskell.org/onlinereport/haskell2010/
2023-10-08 20:15:05 +0200 <EvanR> a gentle introduction
2023-10-08 20:15:16 +0200 <monochrom> Yeah I deliberately keep my web pages free of eye candies because I want to attract people who care more about content and semantics than eye candies.
2023-10-08 20:15:34 +0200 <EvanR> get down from your ivory-themed tower!
2023-10-08 20:15:58 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a)
2023-10-08 20:16:12 +0200 <monochrom> I don't make them ugly. I keep them tidy, organized, structured, navigatable. But not going to add round corners.
2023-10-08 20:16:34 +0200 <geekosaur> although tbh I find the Report difficult to use; I am always trying to link to things and need to resort to building links from the page source
2023-10-08 20:17:11 +0200 <geekosaur> there's more than just eye candy in RTD and friends
2023-10-08 20:18:00 +0200billchenchina-(~billchenc@103.152.35.21) (Ping timeout: 255 seconds)
2023-10-08 20:18:45 +0200Simikando(~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Remote host closed the connection)
2023-10-08 20:19:10 +0200 <haskellbridge> <I​nst> monochrom: OCaml apparently had a ReasonML disaster where they tried OCaml in JS syntax, then had a huge fight
2023-10-08 20:19:21 +0200 <haskellbridge> <I​nst> between the OCaml-style programmers and JS-style programmers, and ReasonML split
2023-10-08 20:19:39 +0200 <haskellbridge> <I​nst> Relative to your point about "attracting people, you are changing them"
2023-10-08 20:20:19 +0200 <ph88> can anyone tell me why the contents link top right doesn't work for this package? https://hackage.haskell.org/package/qm-0.1.0.0/candidate/docs/Qm.html i found it over google
2023-10-08 20:20:20 +0200 <EvanR> if there is an OCaml with JS syntax, then that means there's an OCaml in coffeescript
2023-10-08 20:21:27 +0200 <geekosaur> ph88, because there is only a candidate, it was never actually released
2023-10-08 20:22:31 +0200 <ph88> got it
2023-10-08 20:22:43 +0200 <geekosaur> arguably the "Contents" link in a candidate should point to the candidate, which is something you might file against hackage-server
2023-10-08 20:24:05 +0200 <geekosaur> also one could argue that the whole handling of that case is confusing, the landing page should say there is no package but there are candidates
2023-10-08 20:24:10 +0200 <geekosaur> but I have to run
2023-10-08 20:29:46 +0200simendsjo(~user@84.211.91.241)
2023-10-08 20:32:16 +0200 <haskellbridge> <I​nst> Also, I used to be in favor of that, but when I think about it, if you cut out what makes Haskell special, it diminishes Haskell's appeal, and people lose interest
2023-10-08 20:33:52 +0200bilegeek(~bilegeek@2600:1008:b058:7972:86bd:56d8:83ef:566f)
2023-10-08 20:38:22 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 258 seconds)
2023-10-08 20:40:58 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Ping timeout: 272 seconds)
2023-10-08 20:43:28 +0200qqq(~qqq@92.43.167.61)
2023-10-08 20:51:39 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Read error: Connection reset by peer)
2023-10-08 20:57:08 +0200 <haskellbridge> <I​nst> https://media.discordapp.net/attachments/968989726633779215/1160651979043909783/image.png?ex=65357…
2023-10-08 20:57:10 +0200 <haskellbridge> <I​nst> there we go
2023-10-08 20:57:28 +0200 <haskellbridge> <I​nst> EvanR: that's probably the details you were looking for
2023-10-08 20:58:04 +0200 <EvanR> re: that I was looking for details, lets not get carried away
2023-10-08 20:59:15 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-10-08 21:00:11 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-10-08 21:01:10 +0200ania123(~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed)
2023-10-08 21:01:39 +0200wroathe(~wroathe@50.205.197.50)
2023-10-08 21:01:40 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-10-08 21:01:40 +0200wroathe(~wroathe@user/wroathe)
2023-10-08 21:02:32 +0200 <haskellbridge> <I​nst> I misunderstood you, then.
2023-10-08 21:02:55 +0200 <EvanR> unless you have an example of coffeescript-ocaml
2023-10-08 21:03:51 +0200sm(~sm@plaintextaccounting/sm)
2023-10-08 21:03:56 +0200 <tomsmeding> ouch
2023-10-08 21:04:37 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-10-08 21:08:26 +0200 <EvanR> I just ran into a funny message in ghci
2023-10-08 21:08:43 +0200 <EvanR> > let m | 5 < 4 = 'A' in m
2023-10-08 21:08:45 +0200 <lambdabot> *Exception: <interactive>:3:5-19: Non-exhaustive patterns in function m
2023-10-08 21:09:00 +0200 <tomsmeding> I mean, it's true
2023-10-08 21:09:08 +0200 <EvanR> is it true that m is a function
2023-10-08 21:09:21 +0200 <tomsmeding> it's a partial function
2023-10-08 21:09:27 +0200 <[exa]> Inst: is there a link to that pls? (I can't see pics here :( )
2023-10-08 21:09:27 +0200 <EvanR> :thonk:
2023-10-08 21:09:27 +0200 <tomsmeding> oh in that sense
2023-10-08 21:09:34 +0200 <tomsmeding> yes, it's a function of zero arguments
2023-10-08 21:09:38 +0200 <EvanR> lol
2023-10-08 21:09:50 +0200Inst(~Inst@120.244.192.250)
2023-10-08 21:09:52 +0200 <EvanR> this is haskell, everything's a function
2023-10-08 21:09:56 +0200 <tomsmeding> :t mempty
2023-10-08 21:09:56 +0200 <Inst> https://media.discordapp.net/attachments/968989726633779215/1160651979043909783/image.png?ex=65357…
2023-10-08 21:09:57 +0200 <lambdabot> Monoid a => a
2023-10-08 21:10:05 +0200 <tomsmeding> EvanR: is that function
2023-10-08 21:10:05 +0200 <EvanR> that's more plausibly a function
2023-10-08 21:10:09 +0200 <[exa]> Inst: I mean to the text :D
2023-10-08 21:10:23 +0200 <tomsmeding> :t undefined
2023-10-08 21:10:23 +0200 <haskellbridge> <I​nst> i'll pastebin it
2023-10-08 21:10:24 +0200 <lambdabot> a
2023-10-08 21:10:27 +0200 <tomsmeding> EvanR: is that a function :p
2023-10-08 21:10:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-10-08 21:10:35 +0200 <EvanR> :t let m | 5 < 4 = 'A' in m
2023-10-08 21:10:36 +0200 <lambdabot> Char
2023-10-08 21:10:44 +0200 <monochrom> No, m is not a function. m is if 5<4 then 'A' else error "inexhaustive"
2023-10-08 21:10:59 +0200 <tomsmeding> it's a _haskell_ function though
2023-10-08 21:11:05 +0200 <EvanR> wat
2023-10-08 21:11:09 +0200 <monochrom> Intead, generally all bindings and pattern matchings may use guard syntax.
2023-10-08 21:11:31 +0200 <monochrom> i.e., you don't need a function to use guards.
2023-10-08 21:11:32 +0200 <probie> It's not a function, it's a lifted value
2023-10-08 21:11:34 +0200 <haskellbridge> <I​nst> tbh, there's an obvious context
2023-10-08 21:11:36 +0200 <tomsmeding> EvanR: monochrom means that it's not a mathematical function because it's partial -- I assume, otherwise monochrom, you're being unclear :p
2023-10-08 21:11:46 +0200 <EvanR> it's not a function in any sense
2023-10-08 21:11:49 +0200 <haskellbridge> <I​nst> i.e, if it's in a closure
2023-10-08 21:11:56 +0200 <[exa]> it thunks like a function
2023-10-08 21:11:56 +0200 <EvanR> I'm not even on the fence just joshing you
2023-10-08 21:11:59 +0200 <monochrom> Um the type is Char. That is not a function type.
2023-10-08 21:12:15 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-10-08 21:12:35 +0200 <monochrom> I am not going to confirm or deny "partial". I have already wrote ` if 5<4 then 'A' else error "inexhaustive" `. Everyone knows what that is.
2023-10-08 21:12:45 +0200 <nshepper1> everything's a function except the things that aren't
2023-10-08 21:13:05 +0200 <Inst> https://pastebin.com/vhKxXEXA @[exa]
2023-10-08 21:13:10 +0200 <[exa]> Inst: <3
2023-10-08 21:13:58 +0200 <[exa]> Inst: a cautionary tale about how much we need unix-ish modularized compilers
2023-10-08 21:14:21 +0200 <monochrom> I don't oppose extending "partial" to cover all values and types though.
2023-10-08 21:14:57 +0200 <EvanR> the value isn't partial, that would imply there is some piece of it that is defined xD
2023-10-08 21:14:58 +0200Inst(~Inst@120.244.192.250) (Quit: Leaving)
2023-10-08 21:15:06 +0200 <EvanR> the type Char might be partial because it includes bottom
2023-10-08 21:15:43 +0200 <monochrom> Yeah but then it's like everyone already accepts that almost every time has bottom.
2023-10-08 21:15:48 +0200 <monochrom> err s/time/type/
2023-10-08 21:16:48 +0200 <EvanR> so anyway ghci's message is interfering with my blog post about guards xD
2023-10-08 21:16:54 +0200 <monochrom> I think people just knee-jerked "I see a guard so it's a function, now I just reconcile the rest with that premise".
2023-10-08 21:17:08 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-10-08 21:17:26 +0200 <EvanR> if it were a real blog post it would seem that haskell things stuff like m is a function
2023-10-08 21:18:01 +0200 <EvanR> a zero arg function, ok
2023-10-08 21:18:02 +0200 <monochrom> whereas I have long written and enjoyed code like "f x = m + 1 where m | x < 0 = 5 | otherwise = 6"
2023-10-08 21:18:13 +0200 <haskellbridge> <I​nst> no, but if you're working with a let expression or where clause, you'll end up doing that, i.e, make a value use guards wherein the boolean check is based on data being passed into the function
2023-10-08 21:19:18 +0200 <EvanR> filing that under haskell curio
2023-10-08 21:19:47 +0200 <haskellbridge> <I​nst> the let m| 5 < 4 = 'A' thing?
2023-10-08 21:19:51 +0200 <monochrom> What were you wanting to claim about guards in your blog post?
2023-10-08 21:20:02 +0200 <probie> What does it mean for Haskell to think something is a function? All lifted types are represented by functions, just not Haskell functions
2023-10-08 21:20:17 +0200 <EvanR> demonstrating the expansion of guards into if-then-else (or into pattern matching) which ends in a message
2023-10-08 21:20:20 +0200 <ph88> What does this list comprehension do? https://github.com/martinfinke/qm/blob/master/src/Qm.hs#L111
2023-10-08 21:20:21 +0200 <EvanR> error message
2023-10-08 21:20:25 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
2023-10-08 21:20:25 +0200 <EvanR> and that message is wrong xD
2023-10-08 21:20:30 +0200 <probie> monochrom: I think the complaint was about the error message GHCi gave
2023-10-08 21:20:42 +0200 <monochrom> According to the Haskell Report, (->) is the sole function type.
2023-10-08 21:20:53 +0200 <[exa]> probie: typical naming problem. it is a function in some contexts and not in other contexts :]
2023-10-08 21:21:05 +0200 <haskellbridge> <I​nst> EvanR: file a bug report?
2023-10-08 21:21:26 +0200 <monochrom> You can say that a compiler compiles Int to functions too but that's an implementation detail and is not universal to all plausible compilers.
2023-10-08 21:21:50 +0200 <ph88> is that not just the same as mconcat ?
2023-10-08 21:22:08 +0200 <monochrom> You can also say you don't follow the Haskell Report, you follow some other logic textbook.
2023-10-08 21:22:37 +0200 <monochrom> I'm in #haskell so I follow the Haskell Report whenever reasonable.
2023-10-08 21:22:38 +0200 <EvanR> what should the final error message say, bikeshed time
2023-10-08 21:22:58 +0200 <monochrom> In #ghc I would follow GHC implementation details.
2023-10-08 21:23:03 +0200simendsjo(~user@84.211.91.241) (Ping timeout: 240 seconds)
2023-10-08 21:23:22 +0200 <tomsmeding> ph88: I guess so, as in the (...) stuff looks like (mconcat sigma)
2023-10-08 21:23:26 +0200 <monochrom> In ##math I would ask the people I'm talking to for their preference.
2023-10-08 21:23:58 +0200 <ph88> tomsmeding, thanks for looking with me
2023-10-08 21:24:01 +0200 <[exa]> EvanR: I'd vote for "in definition of m"
2023-10-08 21:24:04 +0200 <haskellbridge> <I​nst> Vairable?
2023-10-08 21:24:09 +0200 <monochrom> Oh wait, GHC error message? OK nevermind!
2023-10-08 21:24:13 +0200 <[exa]> EvanR: (that's also used elsewhere, right?)
2023-10-08 21:24:21 +0200 <EvanR> I'm using that
2023-10-08 21:24:39 +0200 <monochrom> Well error messages are written by absent-minded humans.
2023-10-08 21:25:08 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 258 seconds)
2023-10-08 21:25:29 +0200 <monochrom> And pretty much hardcoded instead of actually dynamically examining the type of the offending thing.
2023-10-08 21:25:36 +0200 <haskellbridge> <I​nst> I'm wondering how annoying this would be to fix
2023-10-08 21:26:10 +0200 <monochrom> But this one, s/function/binding/ should be pretty safe.
2023-10-08 21:26:21 +0200 <[exa]> ah yes +1 for binding
2023-10-08 21:26:28 +0200 <monochrom> or even pattern.
2023-10-08 21:26:50 +0200Nixkernal_(~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch)
2023-10-08 21:27:01 +0200 <haskellbridge> <I​nst> Doesn't the Haskell Report call it a variable?
2023-10-08 21:27:07 +0200 <monochrom> % case () of m | 5<4 -> 'A'
2023-10-08 21:27:07 +0200 <yahb2> *** Exception: <interactive>:87:1-25: Non-exhaustive patterns in case
2023-10-08 21:27:30 +0200 <tomsmeding> I'd go for 'definition of' or 'binding'
2023-10-08 21:27:56 +0200Benzi-Junior(~BenziJuni@88-149-64-112.du.xdsl.is) (Read error: No route to host)
2023-10-08 21:27:56 +0200Nixkernal(~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 255 seconds)
2023-10-08 21:28:57 +0200 <monochrom> m is a variable, but wait til you see a general "Just (x : y : []) | 5<4 = ..."
2023-10-08 21:29:37 +0200 <monochrom> In the most generality you can have <pattern> | <guard> = ... for bindings.
2023-10-08 21:30:05 +0200Benzi-Junior(~BenziJuni@88-149-64-112.du.xdsl.is)
2023-10-08 21:32:02 +0200 <haskellbridge> <I​nst> Still, I'm wondering how hard this would be to fix
2023-10-08 21:32:39 +0200 <monochrom> s/hard/long/
2023-10-08 21:32:42 +0200iteratee_(~kyle@162.218.222.207) (Read error: Connection reset by peer)
2023-10-08 21:32:48 +0200 <haskellbridge> <I​nst> I guess Non-exhaustive patterns in case suggests that the error message isn't hardcoded only for a single case
2023-10-08 21:32:52 +0200iteratee(~kyle@162.218.222.207)
2023-10-08 21:33:22 +0200 <[Leary]> You can probably fix it with sed.
2023-10-08 21:33:35 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-10-08 21:34:18 +0200 <monochrom> The PR would be literally just one word. But it takes forever to be accepted. Then forever to be scheduled for a concrete version. Then that concrete version will have to go through 10 alphas, 5 previews, and 3 release-candidates...
2023-10-08 21:35:15 +0200 <haskellbridge> <I​nst> No, because I'm wondering about whether there's already code to detect whether or not the guard is being called by a value or a function.
2023-10-08 21:35:24 +0200 <monochrom> Oh how about two hardcoded messages, one for bindings, one for case. >:)
2023-10-08 21:36:03 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-10-08 21:39:34 +0200notzmv(~zmv@user/notzmv)
2023-10-08 21:41:16 +0200 <mauke> > let m | 5<4 = length in m
2023-10-08 21:41:17 +0200 <lambdabot> error:
2023-10-08 21:41:17 +0200 <lambdabot> • No instance for (Typeable a0)
2023-10-08 21:41:17 +0200 <lambdabot> arising from a use of ‘show_M59663708450690736198’
2023-10-08 21:41:24 +0200 <mauke> > let m | 5<4 = length in m ""
2023-10-08 21:41:25 +0200 <lambdabot> *Exception: <interactive>:3:5-20: Non-exhaustive patterns in function m
2023-10-08 21:45:04 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-10-08 21:45:27 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2023-10-08 21:46:21 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com)
2023-10-08 21:52:20 +0200emmanuelux_(~emmanuelu@user/emmanuelux)
2023-10-08 21:54:52 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 248 seconds)
2023-10-08 21:55:19 +0200 <haskellbridge> <I​nst> curious, though, but what do you call use of kleisli arrows and binds in monadic code? Are there blog posts for this?
2023-10-08 21:56:48 +0200 <haskellbridge> <I​nst> i.e, there's a pseudo imperative style possible with do notation, lots of let use, lots of bindings, etc. There's also a pseudo-functional style possible with more point free, use of where when possible, and so on
2023-10-08 21:57:40 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-10-08 21:57:40 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net)
2023-10-08 21:58:40 +0200emmanuelux_(~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds)
2023-10-08 22:01:09 +0200 <monochrom> I call using >>= "using >>=".
2023-10-08 22:01:41 +0200 <monochrom> I haven't used >=> much, but I would call it "using >=>".
2023-10-08 22:02:31 +0200 <monochrom> And it is not like using do-notation got a more fancy name than "using do-notation".
2023-10-08 22:03:37 +0200 <monochrom> This is where I agree with Feynman. If someone reads "things fall down, this is called gravity" one has learned nothing.
2023-10-08 22:05:53 +0200 <haskellbridge> <I​nst> i'm just asking how to search on it, see what the discussion of the topic is like
2023-10-08 22:06:09 +0200 <haskellbridge> <I​nst> this is the closest thing i've been able to find
2023-10-08 22:06:10 +0200 <haskellbridge> <I​nst> http://wiki.haskell.org/Declaration_vs._expression_style
2023-10-08 22:06:32 +0200 <monochrom> Perhaps there has been no discussion.
2023-10-08 22:07:15 +0200 <haskellbridge> <I​nst> i can't initiate one, though; i think you'll find some people like having let everywhere for accessibility purposes, others would prefer using bind operators
2023-10-08 22:08:22 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2023-10-08 22:08:47 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-10-08 22:09:03 +0200tv(~tv@user/tv) (Ping timeout: 240 seconds)
2023-10-08 22:09:27 +0200 <Rembane> Pointfree? do-notation considered harmful?
2023-10-08 22:11:38 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2023-10-08 22:12:06 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-10-08 22:13:11 +0200 <haskellbridge> <I​nst> thanks for the suggestions
2023-10-08 22:13:17 +0200RSCASTILHO(~RSCASTILH@187.40.126.47) ()
2023-10-08 22:21:28 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection)
2023-10-08 22:22:24 +0200tv(~tv@user/tv)
2023-10-08 22:23:55 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71)
2023-10-08 22:25:57 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-10-08 22:29:47 +0200Sgeo(~Sgeo@user/sgeo)
2023-10-08 22:30:56 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net) (Remote host closed the connection)
2023-10-08 22:31:35 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
2023-10-08 22:35:05 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2023-10-08 22:36:14 +0200Jackneill(~Jackneill@20014C4E1E1DF200F8969E0EBEAF265A.dsl.pool.telekom.hu) (Ping timeout: 255 seconds)
2023-10-08 22:44:51 +0200michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2023-10-08 22:47:05 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-10-08 22:47:38 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net)
2023-10-08 22:48:06 +0200notzmv(~zmv@user/notzmv)
2023-10-08 22:49:59 +0200myxos(~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection)
2023-10-08 22:51:54 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds)
2023-10-08 23:03:31 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net)
2023-10-08 23:04:06 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2023-10-08 23:04:45 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection)
2023-10-08 23:04:57 +0200pavonia(~user@user/siracusa)
2023-10-08 23:08:32 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 272 seconds)
2023-10-08 23:09:55 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-10-08 23:10:16 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-08 23:10:27 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer)
2023-10-08 23:10:39 +0200falafel(~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 240 seconds)
2023-10-08 23:10:48 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-10-08 23:11:19 +0200acidjnk(~acidjnk@p200300d6e7072f71a0e70c533425b336.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2023-10-08 23:14:35 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71)
2023-10-08 23:20:36 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net)
2023-10-08 23:25:05 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 240 seconds)
2023-10-08 23:26:05 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2023-10-08 23:33:57 +0200vglfr(~vglfr@88.155.165.25) (Remote host closed the connection)
2023-10-08 23:34:16 +0200vglfr(~vglfr@88.155.165.25)
2023-10-08 23:36:57 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net)
2023-10-08 23:37:06 +0200vglfr(~vglfr@88.155.165.25) (Read error: Connection reset by peer)
2023-10-08 23:37:25 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr)
2023-10-08 23:38:34 +0200sabino(~sabino@user/sabino) (Ping timeout: 255 seconds)
2023-10-08 23:38:56 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-10-08 23:38:56 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-10-08 23:38:56 +0200wroathe(~wroathe@user/wroathe)
2023-10-08 23:39:18 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-10-08 23:41:24 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds)
2023-10-08 23:43:22 +0200aliosablack(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Ping timeout: 272 seconds)
2023-10-08 23:51:47 +0200sabino(~sabino@user/sabino)
2023-10-08 23:53:12 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net)
2023-10-08 23:54:46 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 272 seconds)
2023-10-08 23:57:32 +0200myyo(~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 248 seconds)