Logs on 2023-10-08 (liberachat/#haskell)
| 00:04:34 | → | jargon joins (~jargon@174-22-221-150.phnx.qwest.net) |
| 00:05:16 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 252 seconds) |
| 00:08:04 | → | elevenkb joins (elevenkb@thunix.net) |
| 00:10:12 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 00:12:53 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:14:12 | → | bilegeek joins (~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) |
| 00:20:38 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 00:23:24 | × | falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 272 seconds) |
| 00:28:22 | → | billchenchina joins (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) |
| 00:29:49 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 00:35:32 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 00:36:39 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 00:50:00 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
| 00:52:03 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 01:03:23 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 01:09:18 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:13:33 | × | billchenchina quits (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Remote host closed the connection) |
| 01:21:27 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds) |
| 01:26:16 | × | otto_s quits (~user@p5b0446f7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 01:28:06 | → | otto_s joins (~user@p5b044871.dip0.t-ipconnect.de) |
| 01:52:34 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 01:54:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 01:56:53 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 02:02:46 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:41a8:a837:a4a7:bda1) (Quit: Leaving) |
| 02:07:47 | → | ori__sky joins (~ori__sky@2001:8b0:aaa4:8eab:dde9:a4e:29dc:23b1) |
| 02:12:59 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:12:59 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:12:59 | finn_elija | is now known as FinnElija |
| 02:13:42 | <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 |
| 02:13:43 | <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` |
| 02:14:44 | <geekosaur> | how is it supposed to determine that a value is or isn't defaultValue? |
| 02:18:50 | <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 |
| 02:21:07 | <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 |
| 02:21:15 | <c_wraith> | yeah, the trick about `non` is that it sets the element to Nothing if it's the default element. |
| 02:21:35 | <geekosaur> | that sounbds to me like your lens is wrong; don't you want the key, not the value? |
| 02:22:14 | <geekosaur> | oh |
| 02:22:47 | <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 |
| 02:23:17 | <geekosaur> | but `non` uses `only` which requires `Eq`. you need something which distinguishes empty lists, I think |
| 02:23:40 | <geekosaur> | or I'm just confused |
| 02:23:41 | <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 |
| 02:25:20 | <geekosaur> | that is, aiui it's doing the equivalent of `== []` when you really want the equivalent of `null` |
| 02:25:36 | <ori__sky> | hmm ah I see |
| 02:26:16 | <c_wraith> | ori__sky: can you use non' instead? |
| 02:27:02 | <c_wraith> | oh. or `anon null' |
| 02:27:24 | <ori__sky> | oh hmm that sounds like it might work, lemme try |
| 02:28:12 | <c_wraith> | oh, that's even the first example of using anon |
| 02:33:41 | × | privacy quits (~privacy@user/privacy) (Quit: Leaving) |
| 02:33:42 | <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 |
| 02:34:12 | <c_wraith> | it automatically maps Nothing to the defaultValue |
| 02:34:35 | <ori__sky> | ohhh |
| 02:35:35 | <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.. |
| 02:36:09 | <c_wraith> | oh, wait. No, the predicate goes the other direction. If the predicate returns true, it maps to Nothing |
| 02:40:23 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds) |
| 02:44:51 | <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)` |
| 02:45:07 | <ori__sky> | inserts the default value when the key doesn't exist, but doesn't replace it once it does exist |
| 02:45:41 | <c_wraith> | that'll work if you aren't interested in keeping the structure clean in the face of removals |
| 02:45:59 | <c_wraith> | the predicate is basically for "when does this map back to Nothing?" |
| 02:46:08 | × | sabino quits (~sabino@user/sabino) (Quit: Lambda _ -> x) |
| 02:47:01 | <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 |
| 02:47:20 | <c_wraith> | exactly |
| 02:47:28 | <ori__sky> | that makes perfect sense, thanks very much for the help |
| 02:49:42 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
| 02:54:47 | × | ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 255 seconds) |
| 02:56:35 | × | td_ quits (~td@i53870937.versanet.de) (Ping timeout: 255 seconds) |
| 02:56:47 | → | ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net) |
| 02:58:35 | → | td_ joins (~td@i53870918.versanet.de) |
| 02:59:27 | → | sm joins (~sm@plaintextaccounting/sm) |
| 03:04:16 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 260 seconds) |
| 03:09:23 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 03:13:59 | → | aforemny_ joins (~aforemny@i59F516D9.versanet.de) |
| 03:14:52 | × | aforemny quits (~aforemny@2001:9e8:6ce5:2900:3ebe:1c43:4cc8:272d) (Ping timeout: 248 seconds) |
| 03:21:15 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
| 03:23:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:42:20 | → | sm joins (~sm@plaintextaccounting/sm) |
| 03:43:00 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 240 seconds) |
| 03:43:50 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 03:47:20 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds) |
| 03:56:03 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 03:58:35 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 04:03:31 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 04:04:27 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 04:08:06 | × | sgarcia quits (sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com) |
| 04:11:17 | → | sgarcia joins (sgarcia@swarm.znchost.com) |
| 04:20:16 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 04:21:25 | × | ori__sky quits (~ori__sky@2001:8b0:aaa4:8eab:dde9:a4e:29dc:23b1) (Quit: Client closed) |
| 04:22:44 | → | paddymahoney joins (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) |
| 04:28:12 | × | roboguy_ quits (~roboguy_@cpe-69-76-235-109.kc.res.rr.com) (Quit: Leaving...) |
| 04:28:29 | × | jargon quits (~jargon@174-22-221-150.phnx.qwest.net) (Remote host closed the connection) |
| 04:31:25 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 04:36:27 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 04:38:21 | × | jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3) |
| 04:48:12 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
| 05:03:54 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 05:09:32 | → | vglfr joins (~vglfr@88.155.165.25) |
| 05:09:48 | → | Cajun joins (~Cajun@user/cajun) |
| 05:10:11 | × | Square quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 05:16:21 | → | Cajun58 joins (~Cajun@user/cajun) |
| 05:20:08 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 245 seconds) |
| 05:26:36 | → | sm joins (~sm@plaintextaccounting/sm) |
| 05:33:39 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:37:26 | × | Cajun58 quits (~Cajun@user/cajun) (Quit: Client closed) |
| 05:37:38 | → | Cajun joins (~Cajun@user/cajun) |
| 05:47:28 | × | krei-se quits (~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:50:17 | → | krei-se joins (~krei-se@p50874770.dip0.t-ipconnect.de) |
| 05:52:17 | × | bilegeek quits (~bilegeek@2600:1008:b029:9629:c264:f679:2b5f:3f7) (Quit: Leaving) |
| 06:08:29 | todi1 | is now known as todi |
| 06:16:26 | × | g00gler quits (uid125351@uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:23:08 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds) |
| 06:35:16 | → | whodevil joins (~whodevil@user/whodevil) |
| 06:38:58 | ← | whodevil parts (~whodevil@user/whodevil) () |
| 06:39:48 | → | acidjnk joins (~acidjnk@p200300d6e7072f71a0e70c533425b336.dip0.t-ipconnect.de) |
| 06:40:57 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 06:41:38 | → | privacy joins (~privacy@user/privacy) |
| 07:06:06 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f026:93e1:c9cc:1bf) (Remote host closed the connection) |
| 07:08:08 | → | ania123 joins (~ania123@wl-pool2-ont-004.uni-muenster.de) |
| 07:08:19 | <ania123> | is it possible to have different type elements in list? |
| 07:08:27 | <ania123> | I need to implement a problem and use list data structure. Types of elements of a list should not be same... |
| 07:10:10 | → | fendor joins (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
| 07:16:56 | <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) |
| 07:20:38 | <ania123> | can I have int and float data in the same list? |
| 07:21:11 | <ania123> | [1;0.7] for example |
| 07:22:53 | <int-e> | No. But you can have [EInt 1, EFloat 0.7] of type [Elem] with data Elem = EInt Int | EFloat Flat |
| 07:23:10 | <int-e> | > [1, 0.7] |
| 07:23:11 | <lambdabot> | [1.0,0.7] |
| 07:23:33 | <ania123> | in that case, both data have float types |
| 07:23:38 | <int-e> | (you can do the JS thing where all numbers are stored doubles) |
| 07:23:48 | × | migas quits (~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds)) |
| 07:23:48 | <int-e> | +as |
| 07:24:01 | <int-e> | (not that I recommend that) |
| 07:24:06 | → | migas joins (~migas@astra4961.startdedicated.net) |
| 07:24:13 | <ania123> | int-e: probably haskell disallow it becase of lack type inference. No? |
| 07:24:52 | <int-e> | No, Haskell has type inference. It largely doesn't have runtime type information. |
| 07:25:01 | → | gmg joins (~user@user/gehmehgeh) |
| 07:25:44 | <ania123> | I know haskell has type inference, probably it uses ML type inference alg? No? Milners alg? |
| 07:27:41 | <int-e> | With Haskell 2010... well there's type classes on top of that. |
| 07:28:56 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 07:29:45 | <ania123> | if type system allows different types in list, will be it impossible to infer types of functions? |
| 07:30:08 | <ania123> | I mean, what is a main reson to restrict in lists having same type of elements? |
| 07:30:36 | <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. |
| 07:32:28 | <ania123> | could you tell me reason? why differents types are not allowed in list? |
| 07:33:00 | <dsal> | What would be the type of a list with different types in it? |
| 07:34:42 | <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). |
| 07:36:50 | <dsal> | I guess you could also count them. |
| 07:36:57 | <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.) |
| 07:37:12 | <int-e> | dsal: Sure but that's at the level of the list structure |
| 07:40:35 | <dsal> | Yeah, I was just imagining what you'd do if you had such a thing: https://play.haskell.org/saved/iL506sRr |
| 07:42:31 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
| 07:45:13 | <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). |
| 07:45:47 | <ania123> | would not be it interesting? why such a thing is not allowed ? |
| 07:48:22 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 07:49:26 | → | cpressey joins (~cpressey@host-2-102-9-134.as13285.net) |
| 07:50:34 | <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) |
| 07:50:37 | <nullie> | ania123: what is the actual problem you are trying to solve? |
| 07:50:40 | <haskellbridge> | <Celestial> heya, which formatters do people use and which would you reccomend? |
| 07:51:06 | <int-e> | But subtypes make type inference much harder (does it become undecidable? do we lose principal types? I don't really know.) |
| 07:51:54 | → | Jackneill joins (~Jackneill@20014C4E1E1DF200F8969E0EBEAF265A.dsl.pool.telekom.hu) |
| 07:52:06 | <int-e> | (well, *inference* being undecidable has not stopped people from adding higher ranked types anyway) |
| 07:53:53 | <[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) |
| 08:04:40 | <ania123> | aha |
| 08:06:53 | <ania123> | I heard, that F has more flexible type system than haskell. Does anyone has experience with F? |
| 08:07:15 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds) |
| 08:07:46 | <mauke> | .oO( F natural? ) |
| 08:14:48 | × | justHaunting quits (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:15:10 | → | justache joins (~justache@user/justache) |
| 08:18:35 | × | sm quits (~sm@plaintextaccounting/sm) (Remote host closed the connection) |
| 08:21:03 | × | shryke quits (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) (Ping timeout: 240 seconds) |
| 08:21:44 | → | sm joins (~sm@plaintextaccounting/sm) |
| 08:23:05 | → | shryke joins (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd) |
| 08:32:57 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 08:34:06 | × | privacy quits (~privacy@user/privacy) (Quit: Leaving) |
| 08:37:35 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
| 08:42:28 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 08:46:35 | × | elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 255 seconds) |
| 08:51:26 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 08:52:41 | → | elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
| 09:03:14 | × | anpad quits (~pandeyan@user/anpad) (Ping timeout: 255 seconds) |
| 09:04:29 | → | anpad joins (~pandeyan@user/anpad) |
| 09:07:14 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 09:12:35 | × | tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
| 09:32:09 | → | michalz joins (~michalz@185.246.204.104) |
| 09:39:29 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:39:38 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 09:46:59 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 09:57:01 | → | xdej joins (~xdej@quatramaran.salle-s.org) |
| 10:10:17 | → | ru0mad joins (~ru0mad@moon.ruomad.net) |
| 10:24:06 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 10:25:07 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 10:25:51 | × | todi quits (~todi@p4fd1ae09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 10:35:24 | → | aliosablack joins (~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) |
| 10:42:35 | → | sm joins (~sm@plaintextaccounting/sm) |
| 10:44:46 | × | sm quits (~sm@plaintextaccounting/sm) (Remote host closed the connection) |
| 10:45:29 | → | sm joins (~sm@plaintextaccounting/sm) |
| 10:45:47 | × | cpressey quits (~cpressey@host-2-102-9-134.as13285.net) (Quit: Client closed) |
| 10:49:15 | → | sm_ joins (~sm@plaintextaccounting/sm) |
| 10:50:07 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
| 10:56:35 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 11:01:26 | × | mrmr15 quits (~mrmr@user/mrmr) (Quit: Bye, See ya later!) |
| 11:04:39 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 240 seconds) |
| 11:05:30 | → | pounce joins (~pounce@user/cute/pounce) |
| 11:07:26 | → | mrmr155 joins (~mrmr@user/mrmr) |
| 11:24:57 | → | gensyst joins (~gensyst@user/gensyst) |
| 11:25:09 | <gensyst> | Philosophical question, |
| 11:25:57 | <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. |
| 11:26:16 | <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? |
| 11:27:58 | × | sm_ quits (~sm@plaintextaccounting/sm) (Quit: sm_) |
| 11:30:01 | → | sm joins (~sm@plaintextaccounting/sm) |
| 11:32:11 | <ncf> | what's "it"? |
| 11:32:29 | <[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. |
| 11:35:49 | <gensyst> | interesting lol |
| 11:38:05 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 11:39:09 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:43:55 | <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? |
| 11:44:32 | × | ania123 quits (~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed) |
| 11:49:43 | × | justache quits (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:50:06 | → | justache joins (~justache@user/justache) |
| 11:52:03 | <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`. |
| 11:52:30 | <int-e> | (This won't work for a plain FileHandle; you'll have to wrap it in another type that's tagged with `s`) |
| 11:53:03 | <int-e> | :t runST |
| 11:53:04 | <lambdabot> | (forall s. ST s a) -> a |
| 11:53:20 | <int-e> | :t newSTVar |
| 11:53:21 | <lambdabot> | error: Variable not in scope: newSTVar |
| 11:54:23 | <int-e> | :t newSTRef |
| 11:54:24 | <lambdabot> | a -> ST s (STRef s a) |
| 11:54:54 | <int-e> | (slightly different situation; it's not a `with` interface because there's no need for timely cleanup) |
| 11:55:24 | <int-e> | (But ST is using the same RankNTypes concept.) |
| 11:56:50 | zer0bitz_ | is now known as zer0bitz |
| 12:05:04 | <[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`. |
| 12:05:51 | <tomsmeding> | because then the 's' "leaks" to outside the forall, which is not allowed |
| 12:05:58 | → | CiaoSen joins (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) |
| 12:06:27 | <tomsmeding> | see section 4 of https://www.microsoft.com/en-us/research/wp-content/uploads/1994/06/lazy-functional-state-threads.pdf :p |
| 12:06:32 | <tomsmeding> | er, section 2.4 |
| 12:10:02 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 12:10:10 | → | TomawsCock joins (~TomawsCoc@12.172.251.103) |
| 12:10:11 | <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 |
| 12:10:26 | × | TomawsCock quits (~TomawsCoc@12.172.251.103) (K-Lined) |
| 12:14:39 | <tomsmeding> | yay ozone |
| 12:18:46 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 12:25:37 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 12:34:26 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 12:36:25 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 12:39:28 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 12:40:29 | × | xff0x quits (~xff0x@2405:6580:b080:900:54b9:b3f0:7086:8bcc) (Ping timeout: 245 seconds) |
| 12:40:36 | × | CiaoSen quits (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds) |
| 12:40:52 | → | xff0x joins (~xff0x@178.255.149.135) |
| 12:46:04 | → | simendsjo joins (~user@84.211.91.241) |
| 13:00:12 | <gensyst> | thanks for sharing. will have to look into this as i study more about type-level programming |
| 13:00:42 | × | gensyst quits (~gensyst@user/gensyst) (Quit: Leaving) |
| 13:00:51 | → | mmhat joins (~mmh@p200300f1c74e6f29ee086bfffe095315.dip0.t-ipconnect.de) |
| 13:02:15 | × | fendor quits (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Ping timeout: 240 seconds) |
| 13:02:33 | × | mmhat quits (~mmh@p200300f1c74e6f29ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 13:07:33 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 13:09:32 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 13:22:41 | → | todi joins (~todi@p4fd1ae09.dip0.t-ipconnect.de) |
| 13:24:45 | × | todi quits (~todi@p4fd1ae09.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 13:25:27 | → | todi joins (~todi@p4fd1ae09.dip0.t-ipconnect.de) |
| 13:27:39 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 13:28:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 13:34:22 | × | xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 255 seconds) |
| 13:36:07 | → | xff0x joins (~xff0x@2405:6580:b080:900:e561:e849:ed8d:66e) |
| 13:38:13 | × | stites quits (~stites@130.44.147.204) (Ping timeout: 258 seconds) |
| 13:38:46 | → | stites joins (~stites@2607:fb91:dc9:9458:e307:804f:f7f3:4cb1) |
| 13:40:30 | → | manjaroi3asdasd joins (~manjaro-i@173.244.55.113) |
| 13:44:27 | → | ania123 joins (~ania123@wl-pool2-ont-004.uni-muenster.de) |
| 13:59:35 | × | todi quits (~todi@p4fd1ae09.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 14:00:54 | × | manjaroi3asdasd quits (~manjaro-i@173.244.55.113) (Ping timeout: 245 seconds) |
| 14:01:45 | × | son0p quits (~ff@181.136.122.143) (Quit: Bye) |
| 14:02:42 | → | __ht joins (~Thunderbi@91.90.123.10) |
| 14:03:56 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 255 seconds) |
| 14:03:56 | __ht | is now known as _ht |
| 14:15:16 | × | vglfr quits (~vglfr@88.155.165.25) (Remote host closed the connection) |
| 14:16:03 | → | vglfr joins (~vglfr@88.155.165.25) |
| 14:16:13 | × | vglfr quits (~vglfr@88.155.165.25) (Remote host closed the connection) |
| 14:18:28 | → | vglfr joins (~vglfr@88.155.165.25) |
| 14:19:16 | → | Functionalley joins (~al@82-69-116-36.dsl.in-addr.zen.co.uk) |
| 14:19:47 | × | vglfr quits (~vglfr@88.155.165.25) (Remote host closed the connection) |
| 14:20:12 | → | vglfr joins (~vglfr@88.155.165.25) |
| 14:21:50 | → | ridcully joins (~ridcully@p57b5294c.dip0.t-ipconnect.de) |
| 14:21:57 | → | cayley58 joins (~cayley5@user/phileasfogg) |
| 14:22:11 | → | driib5 joins (~driib@vmi931078.contaboserver.net) |
| 14:22:26 | × | vglfr quits (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
| 14:22:30 | → | sympt7 joins (~sympt@user/sympt) |
| 14:22:46 | → | vglfr joins (vglfr@gateway/vpn/protonvpn/vglfr) |
| 14:22:51 | → | h2t_ joins (~h2t@user/h2t) |
| 14:23:28 | → | krei-se- joins (~krei-se@p50874770.dip0.t-ipconnect.de) |
| 14:23:35 | × | ridcully_ quits (~ridcully@p57b5294c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 14:23:35 | × | driib quits (~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds)) |
| 14:23:35 | × | cayley5 quits (~cayley5@user/phileasfogg) (Quit: Ping timeout (120 seconds)) |
| 14:23:35 | × | sympt quits (~sympt@user/sympt) (Quit: Ping timeout (120 seconds)) |
| 14:23:35 | × | h2t quits (~h2t@user/h2t) (Quit: ZNC - https://znc.in) |
| 14:23:36 | × | krei-se quits (~krei-se@p50874770.dip0.t-ipconnect.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:23:36 | driib5 | is now known as driib |
| 14:23:36 | cayley58 | is now known as cayley5 |
| 14:23:36 | sympt7 | is now known as sympt |
| 14:23:44 | → | manjaroi3asdasd joins (~manjaro-i@173.244.55.113) |
| 14:23:57 | → | cpressey joins (~cpressey@host-2-102-9-134.as13285.net) |
| 14:29:01 | × | cpressey quits (~cpressey@host-2-102-9-134.as13285.net) (Quit: Ping timeout (120 seconds)) |
| 14:29:58 | → | __ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 14:31:41 | ← | Functionalley parts (~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Konversation terminated!) |
| 14:32:04 | × | _ht quits (~Thunderbi@91.90.123.10) (Ping timeout: 272 seconds) |
| 14:32:04 | __ht | is now known as _ht |
| 14:34:40 | → | Functionalley joins (~al@82-69-116-36.dsl.in-addr.zen.co.uk) |
| 14:35:48 | × | Functionalley quits (~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Client Quit) |
| 14:37:13 | → | wroathe joins (~wroathe@50.205.197.50) |
| 14:37:13 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 14:37:13 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:38:49 | × | manjaroi3asdasd quits (~manjaro-i@173.244.55.113) (Ping timeout: 245 seconds) |
| 14:41:02 | → | son0p joins (~ff@181.136.122.143) |
| 14:41:05 | × | simendsjo quits (~user@84.211.91.241) (Ping timeout: 258 seconds) |
| 14:41:19 | → | sabino joins (~sabino@user/sabino) |
| 14:46:00 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 14:47:29 | × | vglfr quits (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 255 seconds) |
| 14:48:03 | → | vglfr joins (~vglfr@88.155.165.25) |
| 15:01:43 | → | privacy joins (~privacy@user/privacy) |
| 15:03:20 | → | Functionalley joins (~al@82-69-116-36.dsl.in-addr.zen.co.uk) |
| 15:04:12 | → | manjaroi3asdasd joins (~manjaro-i@173.244.55.113) |
| 15:05:25 | × | manjaroi3asdasd quits (~manjaro-i@173.244.55.113) (Client Quit) |
| 15:09:15 | → | Square joins (~Square@user/square) |
| 15:10:45 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 15:11:13 | ← | Functionalley parts (~al@82-69-116-36.dsl.in-addr.zen.co.uk) (Konversation terminated!) |
| 15:14:12 | → | RSCASTILHO joins (~RSCASTILH@187.40.126.47) |
| 15:15:47 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 15:15:49 | × | stites quits (~stites@2607:fb91:dc9:9458:e307:804f:f7f3:4cb1) (Read error: Connection reset by peer) |
| 15:16:10 | → | stites joins (~stites@130.44.147.204) |
| 15:16:48 | × | berberman quits (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:17:43 | → | berberman joins (~berberman@user/berberman) |
| 15:17:59 | → | mud joins (~mud@user/kadoban) |
| 15:21:03 | × | michalz quits (~michalz@185.246.204.104) (Ping timeout: 240 seconds) |
| 15:22:59 | → | CiaoSen joins (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) |
| 15:23:32 | → | khumba joins (~khumba@user/khumba) |
| 15:24:37 | → | michalz joins (~michalz@185.246.207.221) |
| 15:27:33 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:27:59 | × | vglfr quits (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
| 15:28:21 | → | vglfr joins (vglfr@gateway/vpn/protonvpn/vglfr) |
| 15:29:25 | ← | init parts (21945@user/init) (WeeChat 4.0.5) |
| 15:30:39 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 15:33:54 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 15:34:46 | × | CiaoSen quits (~Jura@2a05:5800:29f:e400:664b:f0ff:fe37:9ef) (Ping timeout: 272 seconds) |
| 15:41:27 | → | Vajb joins (~Vajb@2001:999:400:fb4a:5fa:e213:c009:c212) |
| 15:41:59 | → | fendor joins (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
| 15:44:09 | → | wroathe joins (~wroathe@50.205.197.50) |
| 15:44:09 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 15:44:09 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:49:27 | × | vglfr quits (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 240 seconds) |
| 15:50:09 | → | vglfr joins (~vglfr@88.155.165.25) |
| 15:58:19 | → | raym joins (~ray@user/raym) |
| 15:59:13 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 16:00:55 | → | Simikando joins (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
| 16:01:50 | → | son0p joins (~ff@181.136.122.143) |
| 16:05:26 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
| 16:07:05 | → | pavonia_ joins (~user@user/siracusa) |
| 16:10:58 | × | pavonia quits (~user@user/siracusa) (Ping timeout: 255 seconds) |
| 16:11:00 | pavonia_ | is now known as pavonia |
| 16:12:51 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:14:36 | → | wroathe joins (~wroathe@50.205.197.50) |
| 16:14:36 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 16:14:36 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:17:28 | × | fendor quits (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection) |
| 16:25:13 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 16:27:09 | <haskellbridge> | <Inst> maralorn: could you help delete the haskellbridge message from the obscenity spammer? |
| 16:28:02 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 16:28:04 | <haskellbridge> | <Inst> Thanks |
| 16:28:28 | <haskellbridge> | <geekosaur> btw @mods is a thing |
| 16:29:11 | × | Simikando quits (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Ping timeout: 260 seconds) |
| 16:29:20 | <haskellbridge> | <geekosaur> (@shapr you should set a highlight on that) |
| 16:29:22 | <haskellbridge> | <Inst> also iirc, weren't you on vacation? |
| 16:29:28 | <haskellbridge> | <geekosaur> no? |
| 16:29:45 | <haskellbridge> | <Inst> iirc you lost access to your matrix account or something like that |
| 16:30:01 | <haskellbridge> | <geekosaur> ?? |
| 16:31:12 | <haskellbridge> | <Inst> i mean a while back, you granted SM admin rights to matrix channel |
| 16:31:37 | <haskellbridge> | <Inst> but tbh, this is an unnecessary discussion, no? |
| 16:31:53 | <haskellbridge> | <geekosaur> 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 |
| 16:32:16 | <haskellbridge> | <Inst> ah okay, sorry to hear it's so |
| 16:34:14 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 16:35:32 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
| 16:35:47 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
| 16:36:25 | → | Simikando joins (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
| 16:38:28 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 16:47:02 | <tomsmeding> | Inst: noone can promise that they won't disappear |
| 16:47:29 | <tomsmeding> | who knows, maybe you're suddenly employed by a bank :p |
| 16:59:49 | → | cpressey joins (~cpressey@host-2-102-9-134.as13285.net) |
| 17:00:54 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
| 17:01:42 | × | vglfr quits (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
| 17:02:37 | → | vglfr joins (~vglfr@88.155.165.25) |
| 17:03:56 | <haskellbridge> | <Inst> 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 |
| 17:04:24 | <geekosaur> | it varies |
| 17:04:29 | <haskellbridge> | <Inst> i was complaining a long time ago that Haskell had difficulty beating Py when it came to IO code, but I realized |
| 17:04:30 | → | AlexNoo_ joins (~AlexNoo@178.34.163.10) |
| 17:04:31 | × | Simikando quits (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Ping timeout: 255 seconds) |
| 17:04:52 | <haskellbridge> | <Inst> basically, if you make annoying point-free IO code in Haskell |
| 17:05:05 | <haskellbridge> | <Inst> you're competitive with idiomatic Python |
| 17:05:32 | <haskellbridge> | <Inst> if python goes to mimic the same thing, you know, with pipelines, python still wins |
| 17:05:51 | <yushyin> | beating in what? |
| 17:05:51 | <haskellbridge> | <Inst> but i feel like it's smelly in py |
| 17:05:53 | <yushyin> | LOC? |
| 17:05:56 | <yushyin> | who cares :D |
| 17:05:58 | × | cpressey quits (~cpressey@host-2-102-9-134.as13285.net) (Ping timeout: 245 seconds) |
| 17:06:30 | <haskellbridge> | <Inst> concision, i guess, and i guess that's not a focus anymore |
| 17:06:46 | × | Alex_test quits (~al_test@94.233.241.182) (Ping timeout: 255 seconds) |
| 17:07:01 | <haskellbridge> | <Inst> 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 |
| 17:07:03 | <geekosaur> | I prefer comprehensibility to code golf, personally |
| 17:07:05 | × | AlexZenon quits (~alzenon@94.233.241.182) (Ping timeout: 255 seconds) |
| 17:07:17 | × | ania123 quits (~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed) |
| 17:07:37 | <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 |
| 17:08:07 | × | AlexNoo quits (~AlexNoo@94.233.241.182) (Ping timeout: 255 seconds) |
| 17:08:15 | AlexNoo_ | is now known as AlexNoo |
| 17:08:29 | <geekosaur> | or you use lens and it doesn't change at all 😛 |
| 17:08:46 | <haskellbridge> | <Inst> the hypothesis i have is that the Haskell code-golfed / point free IO stuff is idiomatic and readable, but the python equivalent is not |
| 17:08:47 | <geekosaur> | (speaking of "idiomatic" short code) |
| 17:08:54 | <haskellbridge> | <Inst> i'm trying to dig up an example |
| 17:09:13 | <haskellbridge> | <Inst> well, simplest would be echo program: |
| 17:09:19 | <haskellbridge> | <Inst> main = getLine >>= putStrln |
| 17:09:42 | <haskellbridge> | <Inst> vs def main(): print(input()) |
| 17:10:06 | <haskellbridge> | <Inst> py version is technically more concise, but it's smelly, whereas the Haskell version isn't, at least, I guess this is subjective? |
| 17:10:36 | <geekosaur> | it's not smelly but imo it's more "advanced mode" |
| 17:11:24 | → | Alex_test joins (~al_test@178.34.163.10) |
| 17:11:26 | <haskellbridge> | <Inst> 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 |
| 17:11:35 | <geekosaur> | also the Haskell one would be one character shorter (ignoring spaces) if `getLine`'s length matched `input` and similarly for `putStrLn` |
| 17:12:15 | <geekosaur> | I think a lot of beginners shy away from `>>=` in favor of do notation |
| 17:12:39 | <geekosaur> | which is arguably bad because `do` hides what's really going on and you'll make mistakes if you don't understand that |
| 17:13:09 | <geekosaur> | I have certainly seen beginner code which assumed that `do` was a quick escape into what they think of as "normal" code |
| 17:15:04 | <haskellbridge> | <Inst> and people go through a do notation is bad stage as well |
| 17:15:25 | → | AlexZenon joins (~alzenon@178.34.163.10) |
| 17:16:51 | → | Simikando joins (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
| 17:17:35 | → | sm joins (~sm@plaintextaccounting/sm) |
| 17:19:39 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:20:43 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds) |
| 17:31:55 | → | billchenchina joins (~billchenc@103.152.35.21) |
| 17:32:30 | → | notzmv joins (~zmv@user/notzmv) |
| 17:33:08 | × | Simikando quits (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Remote host closed the connection) |
| 17:33:53 | → | Simikando joins (~Simikando@adsl-dyn230.91-127-81.t-com.sk) |
| 17:34:15 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:34:56 | → | falafel joins (~falafel@62.175.113.194.dyn.user.ono.com) |
| 17:39:59 | <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. |
| 17:40:54 | <monochrom> | The branch point is then do you want to teach deeper understanding or do you want to teach cargo-culting. |
| 17:41:14 | <geekosaur> | and millennials only want cargo-culting |
| 17:41:26 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 17:41:35 | <geekosaur> | (evidently, from all the errors in my browser js console) |
| 17:42:30 | <dolio> | I think it goes back further than that. |
| 17:43:03 | → | BANNEDue-x joins (~Syzopoe_n@46.34.42.238) |
| 17:43:26 | ← | BANNEDue-x parts (~Syzopoe_n@46.34.42.238) (https://ircnow.org FREE SHELLS AND BOUNCERS) |
| 17:43:41 | <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". |
| 17:44:10 | <monochrom> | IMO that's just teaching cargo-culting but my opinion is known to be unpopular and reactionary. |
| 17:47:49 | <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. |
| 17:50:12 | → | ania123 joins (~ania123@wl-pool2-ont-004.uni-muenster.de) |
| 17:50:28 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:51:16 | <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. |
| 17:51:53 | <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. |
| 17:53:26 | <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. |
| 17:54:26 | <monochrom> | Next, be very careful what kind of people you are attracting to the community. |
| 17:54:46 | <dolio> | Yeah, that's the part I personally don't get. |
| 17:55:15 | <monochrom> | Do not be so naïve as to think that by attracting people you are changing them. |
| 17:55:30 | <monochrom> | NO. After they join, they change the community instead. |
| 17:55:52 | <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. |
| 17:56:04 | <monochrom> | You attract OOP people, you will convert Haskell to OOP, not the other way round. Just look at the popularity of RecordDotSyntax. |
| 17:56:54 | <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. |
| 18:01:49 | <dolio> | Can't use a language in the real world unless it follows arbitrary syntactic conventions. |
| 18:02:47 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 18:03:33 | → | cpressey joins (~cpressey@host-2-102-9-134.as13285.net) |
| 18:03:34 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 18:06:24 | <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. |
| 18:08:06 | <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".) |
| 18:08:29 | <monochrom> | Because the "engineer" title is prestigious, and yet people want it without paying the cost. |
| 18:08:46 | <geekosaur> | s/yet/therefore |
| 18:08:56 | <monochrom> | heh :( |
| 18:09:28 | × | privacy quits (~privacy@user/privacy) (Remote host closed the connection) |
| 18:11:54 | <EvanR> | recently was told semi 2nd hand that haskell is considered bad because it's not approachable |
| 18:12:17 | <geekosaur> | quick gotta turn it into js! |
| 18:12:47 | → | billchenchina- joins (~billchenc@103.152.35.21) |
| 18:13:24 | <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 |
| 18:13:29 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 18:13:32 | × | billchenchina quits (~billchenc@103.152.35.21) (Read error: Connection reset by peer) |
| 18:13:47 | <EvanR> | relative to popular languages |
| 18:13:53 | <EvanR> | other than C |
| 18:14:23 | × | mud quits (~mud@user/kadoban) (Quit: quit) |
| 18:14:45 | <EvanR> | what is this, HTML 4.01 https://www.haskell.org/onlinereport/haskell2010/ |
| 18:15:05 | <EvanR> | a gentle introduction |
| 18:15:16 | <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. |
| 18:15:34 | <EvanR> | get down from your ivory-themed tower! |
| 18:15:58 | → | billchenchina joins (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) |
| 18:16:12 | <monochrom> | I don't make them ugly. I keep them tidy, organized, structured, navigatable. But not going to add round corners. |
| 18:16:34 | <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 |
| 18:17:11 | <geekosaur> | there's more than just eye candy in RTD and friends |
| 18:18:00 | × | billchenchina- quits (~billchenc@103.152.35.21) (Ping timeout: 255 seconds) |
| 18:18:45 | × | Simikando quits (~Simikando@adsl-dyn230.91-127-81.t-com.sk) (Remote host closed the connection) |
| 18:19:10 | <haskellbridge> | <Inst> monochrom: OCaml apparently had a ReasonML disaster where they tried OCaml in JS syntax, then had a huge fight |
| 18:19:21 | <haskellbridge> | <Inst> between the OCaml-style programmers and JS-style programmers, and ReasonML split |
| 18:19:39 | <haskellbridge> | <Inst> Relative to your point about "attracting people, you are changing them" |
| 18:20:19 | <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 |
| 18:20:20 | <EvanR> | if there is an OCaml with JS syntax, then that means there's an OCaml in coffeescript |
| 18:21:27 | <geekosaur> | ph88, because there is only a candidate, it was never actually released |
| 18:22:31 | <ph88> | got it |
| 18:22:43 | <geekosaur> | arguably the "Contents" link in a candidate should point to the candidate, which is something you might file against hackage-server |
| 18:24:05 | <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 |
| 18:24:10 | <geekosaur> | but I have to run |
| 18:29:46 | → | simendsjo joins (~user@84.211.91.241) |
| 18:32:16 | <haskellbridge> | <Inst> 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 |
| 18:33:52 | → | bilegeek joins (~bilegeek@2600:1008:b058:7972:86bd:56d8:83ef:566f) |
| 18:38:22 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
| 18:40:58 | × | billchenchina quits (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Ping timeout: 272 seconds) |
| 18:43:28 | → | qqq joins (~qqq@92.43.167.61) |
| 18:51:39 | × | oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Read error: Connection reset by peer) |
| 18:57:08 | <haskellbridge> | <Inst> https://media.discordapp.net/attachments/968989726633779215/1160651979043909783/image.png?ex=65357063&is=6522fb63&hm=eef198be0dfb0fddb298d1ca9dcafefccf74bbab4de04997d6918d928e97ab92&=&width=2880&height=932 |
| 18:57:10 | <haskellbridge> | <Inst> there we go |
| 18:57:28 | <haskellbridge> | <Inst> EvanR: that's probably the details you were looking for |
| 18:58:04 | <EvanR> | re: that I was looking for details, lets not get carried away |
| 18:59:15 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 19:00:11 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 19:01:10 | × | ania123 quits (~ania123@wl-pool2-ont-004.uni-muenster.de) (Quit: Client closed) |
| 19:01:39 | → | wroathe joins (~wroathe@50.205.197.50) |
| 19:01:40 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 19:01:40 | → | wroathe joins (~wroathe@user/wroathe) |
| 19:02:32 | <haskellbridge> | <Inst> I misunderstood you, then. |
| 19:02:55 | <EvanR> | unless you have an example of coffeescript-ocaml |
| 19:03:51 | → | sm joins (~sm@plaintextaccounting/sm) |
| 19:03:56 | <tomsmeding> | ouch |
| 19:04:37 | × | sm quits (~sm@plaintextaccounting/sm) (Client Quit) |
| 19:08:26 | <EvanR> | I just ran into a funny message in ghci |
| 19:08:43 | <EvanR> | > let m | 5 < 4 = 'A' in m |
| 19:08:45 | <lambdabot> | *Exception: <interactive>:3:5-19: Non-exhaustive patterns in function m |
| 19:09:00 | <tomsmeding> | I mean, it's true |
| 19:09:08 | <EvanR> | is it true that m is a function |
| 19:09:21 | <tomsmeding> | it's a partial function |
| 19:09:27 | <[exa]> | Inst: is there a link to that pls? (I can't see pics here :( ) |
| 19:09:27 | <EvanR> | :thonk: |
| 19:09:27 | <tomsmeding> | oh in that sense |
| 19:09:34 | <tomsmeding> | yes, it's a function of zero arguments |
| 19:09:38 | <EvanR> | lol |
| 19:09:50 | → | Inst joins (~Inst@120.244.192.250) |
| 19:09:52 | <EvanR> | this is haskell, everything's a function |
| 19:09:56 | <tomsmeding> | :t mempty |
| 19:09:56 | <Inst> | https://media.discordapp.net/attachments/968989726633779215/1160651979043909783/image.png?ex=65357063&is=6522fb63&hm=eef198be0dfb0fddb298d1ca9dcafefccf74bbab4de04997d6918d928e97ab92&=&width=2880&height=932 |
| 19:09:57 | <lambdabot> | Monoid a => a |
| 19:10:05 | <tomsmeding> | EvanR: is that function |
| 19:10:05 | <EvanR> | that's more plausibly a function |
| 19:10:09 | <[exa]> | Inst: I mean to the text :D |
| 19:10:23 | <tomsmeding> | :t undefined |
| 19:10:23 | <haskellbridge> | <Inst> i'll pastebin it |
| 19:10:24 | <lambdabot> | a |
| 19:10:27 | <tomsmeding> | EvanR: is that a function :p |
| 19:10:34 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
| 19:10:35 | <EvanR> | :t let m | 5 < 4 = 'A' in m |
| 19:10:36 | <lambdabot> | Char |
| 19:10:44 | <monochrom> | No, m is not a function. m is if 5<4 then 'A' else error "inexhaustive" |
| 19:10:59 | <tomsmeding> | it's a _haskell_ function though |
| 19:11:05 | <EvanR> | wat |
| 19:11:09 | <monochrom> | Intead, generally all bindings and pattern matchings may use guard syntax. |
| 19:11:31 | <monochrom> | i.e., you don't need a function to use guards. |
| 19:11:32 | <probie> | It's not a function, it's a lifted value |
| 19:11:34 | <haskellbridge> | <Inst> tbh, there's an obvious context |
| 19:11:36 | <tomsmeding> | EvanR: monochrom means that it's not a mathematical function because it's partial -- I assume, otherwise monochrom, you're being unclear :p |
| 19:11:46 | <EvanR> | it's not a function in any sense |
| 19:11:49 | <haskellbridge> | <Inst> i.e, if it's in a closure |
| 19:11:56 | <[exa]> | it thunks like a function |
| 19:11:56 | <EvanR> | I'm not even on the fence just joshing you |
| 19:11:59 | <monochrom> | Um the type is Char. That is not a function type. |
| 19:12:15 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 19:12:35 | <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. |
| 19:12:45 | <nshepper1> | everything's a function except the things that aren't |
| 19:13:05 | <Inst> | https://pastebin.com/vhKxXEXA @[exa] |
| 19:13:10 | <[exa]> | Inst: <3 |
| 19:13:58 | <[exa]> | Inst: a cautionary tale about how much we need unix-ish modularized compilers |
| 19:14:21 | <monochrom> | I don't oppose extending "partial" to cover all values and types though. |
| 19:14:57 | <EvanR> | the value isn't partial, that would imply there is some piece of it that is defined xD |
| 19:14:58 | × | Inst quits (~Inst@120.244.192.250) (Quit: Leaving) |
| 19:15:06 | <EvanR> | the type Char might be partial because it includes bottom |
| 19:15:43 | <monochrom> | Yeah but then it's like everyone already accepts that almost every time has bottom. |
| 19:15:48 | <monochrom> | err s/time/type/ |
| 19:16:48 | <EvanR> | so anyway ghci's message is interfering with my blog post about guards xD |
| 19:16:54 | <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". |
| 19:17:08 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 19:17:26 | <EvanR> | if it were a real blog post it would seem that haskell things stuff like m is a function |
| 19:18:01 | <EvanR> | a zero arg function, ok |
| 19:18:02 | <monochrom> | whereas I have long written and enjoyed code like "f x = m + 1 where m | x < 0 = 5 | otherwise = 6" |
| 19:18:13 | <haskellbridge> | <Inst> 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 |
| 19:19:18 | <EvanR> | filing that under haskell curio |
| 19:19:47 | <haskellbridge> | <Inst> the let m| 5 < 4 = 'A' thing? |
| 19:19:51 | <monochrom> | What were you wanting to claim about guards in your blog post? |
| 19:20:02 | <probie> | What does it mean for Haskell to think something is a function? All lifted types are represented by functions, just not Haskell functions |
| 19:20:17 | <EvanR> | demonstrating the expansion of guards into if-then-else (or into pattern matching) which ends in a message |
| 19:20:20 | <ph88> | What does this list comprehension do? https://github.com/martinfinke/qm/blob/master/src/Qm.hs#L111 |
| 19:20:21 | <EvanR> | error message |
| 19:20:25 | × | waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
| 19:20:25 | <EvanR> | and that message is wrong xD |
| 19:20:30 | <probie> | monochrom: I think the complaint was about the error message GHCi gave |
| 19:20:42 | <monochrom> | According to the Haskell Report, (->) is the sole function type. |
| 19:20:53 | <[exa]> | probie: typical naming problem. it is a function in some contexts and not in other contexts :] |
| 19:21:05 | <haskellbridge> | <Inst> EvanR: file a bug report? |
| 19:21:26 | <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. |
| 19:21:50 | <ph88> | is that not just the same as mconcat ? |
| 19:22:08 | <monochrom> | You can also say you don't follow the Haskell Report, you follow some other logic textbook. |
| 19:22:37 | <monochrom> | I'm in #haskell so I follow the Haskell Report whenever reasonable. |
| 19:22:38 | <EvanR> | what should the final error message say, bikeshed time |
| 19:22:58 | <monochrom> | In #ghc I would follow GHC implementation details. |
| 19:23:03 | × | simendsjo quits (~user@84.211.91.241) (Ping timeout: 240 seconds) |
| 19:23:22 | <tomsmeding> | ph88: I guess so, as in the (...) stuff looks like (mconcat sigma) |
| 19:23:26 | <monochrom> | In ##math I would ask the people I'm talking to for their preference. |
| 19:23:58 | <ph88> | tomsmeding, thanks for looking with me |
| 19:24:01 | <[exa]> | EvanR: I'd vote for "in definition of m" |
| 19:24:04 | <haskellbridge> | <Inst> Vairable? |
| 19:24:09 | <monochrom> | Oh wait, GHC error message? OK nevermind! |
| 19:24:13 | <[exa]> | EvanR: (that's also used elsewhere, right?) |
| 19:24:21 | <EvanR> | I'm using that |
| 19:24:39 | <monochrom> | Well error messages are written by absent-minded humans. |
| 19:25:08 | × | falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 258 seconds) |
| 19:25:29 | <monochrom> | And pretty much hardcoded instead of actually dynamically examining the type of the offending thing. |
| 19:25:36 | <haskellbridge> | <Inst> I'm wondering how annoying this would be to fix |
| 19:26:10 | <monochrom> | But this one, s/function/binding/ should be pretty safe. |
| 19:26:21 | <[exa]> | ah yes +1 for binding |
| 19:26:28 | <monochrom> | or even pattern. |
| 19:26:50 | → | Nixkernal_ joins (~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) |
| 19:27:01 | <haskellbridge> | <Inst> Doesn't the Haskell Report call it a variable? |
| 19:27:07 | <monochrom> | % case () of m | 5<4 -> 'A' |
| 19:27:07 | <yahb2> | *** Exception: <interactive>:87:1-25: Non-exhaustive patterns in case |
| 19:27:30 | <tomsmeding> | I'd go for 'definition of' or 'binding' |
| 19:27:56 | × | Benzi-Junior quits (~BenziJuni@88-149-64-112.du.xdsl.is) (Read error: No route to host) |
| 19:27:56 | × | Nixkernal quits (~Nixkernal@119.4.193.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 255 seconds) |
| 19:28:57 | <monochrom> | m is a variable, but wait til you see a general "Just (x : y : []) | 5<4 = ..." |
| 19:29:37 | <monochrom> | In the most generality you can have <pattern> | <guard> = ... for bindings. |
| 19:30:05 | → | Benzi-Junior joins (~BenziJuni@88-149-64-112.du.xdsl.is) |
| 19:32:02 | <haskellbridge> | <Inst> Still, I'm wondering how hard this would be to fix |
| 19:32:39 | <monochrom> | s/hard/long/ |
| 19:32:42 | × | iteratee_ quits (~kyle@162.218.222.207) (Read error: Connection reset by peer) |
| 19:32:48 | <haskellbridge> | <Inst> I guess Non-exhaustive patterns in case suggests that the error message isn't hardcoded only for a single case |
| 19:32:52 | → | iteratee joins (~kyle@162.218.222.207) |
| 19:33:22 | <[Leary]> | You can probably fix it with sed. |
| 19:33:35 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 19:34:18 | <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... |
| 19:35:15 | <haskellbridge> | <Inst> 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. |
| 19:35:24 | <monochrom> | Oh how about two hardcoded messages, one for bindings, one for case. >:) |
| 19:36:03 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 19:39:34 | → | notzmv joins (~zmv@user/notzmv) |
| 19:41:16 | <mauke> | > let m | 5<4 = length in m |
| 19:41:17 | <lambdabot> | error: |
| 19:41:17 | <lambdabot> | • No instance for (Typeable a0) |
| 19:41:17 | <lambdabot> | arising from a use of ‘show_M59663708450690736198’ |
| 19:41:24 | <mauke> | > let m | 5<4 = length in m "" |
| 19:41:25 | <lambdabot> | *Exception: <interactive>:3:5-20: Non-exhaustive patterns in function m |
| 19:45:04 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 19:45:27 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 19:46:21 | → | falafel joins (~falafel@62.175.113.194.dyn.user.ono.com) |
| 19:52:20 | → | emmanuelux_ joins (~emmanuelu@user/emmanuelux) |
| 19:54:52 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 248 seconds) |
| 19:55:19 | <haskellbridge> | <Inst> curious, though, but what do you call use of kleisli arrows and binds in monadic code? Are there blog posts for this? |
| 19:56:48 | <haskellbridge> | <Inst> 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 |
| 19:57:40 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:57:40 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 19:58:40 | × | emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds) |
| 20:01:09 | <monochrom> | I call using >>= "using >>=". |
| 20:01:41 | <monochrom> | I haven't used >=> much, but I would call it "using >=>". |
| 20:02:31 | <monochrom> | And it is not like using do-notation got a more fancy name than "using do-notation". |
| 20:03:37 | <monochrom> | This is where I agree with Feynman. If someone reads "things fall down, this is called gravity" one has learned nothing. |
| 20:05:53 | <haskellbridge> | <Inst> i'm just asking how to search on it, see what the discussion of the topic is like |
| 20:06:09 | <haskellbridge> | <Inst> this is the closest thing i've been able to find |
| 20:06:10 | <haskellbridge> | <Inst> http://wiki.haskell.org/Declaration_vs._expression_style |
| 20:06:32 | <monochrom> | Perhaps there has been no discussion. |
| 20:07:15 | <haskellbridge> | <Inst> 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 |
| 20:08:22 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 20:08:47 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 20:09:03 | × | tv quits (~tv@user/tv) (Ping timeout: 240 seconds) |
| 20:09:27 | <Rembane> | Pointfree? do-notation considered harmful? |
| 20:11:38 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 20:12:06 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:13:11 | <haskellbridge> | <Inst> thanks for the suggestions |
| 20:13:17 | × | RSCASTILHO quits (~RSCASTILH@187.40.126.47) () |
| 20:21:28 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
| 20:22:24 | → | tv joins (~tv@user/tv) |
| 20:23:55 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
| 20:25:57 | → | oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
| 20:29:47 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 20:30:56 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Remote host closed the connection) |
| 20:31:35 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 20:35:05 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 20:36:14 | × | Jackneill quits (~Jackneill@20014C4E1E1DF200F8969E0EBEAF265A.dsl.pool.telekom.hu) (Ping timeout: 255 seconds) |
| 20:44:51 | × | michalz quits (~michalz@185.246.207.221) (Remote host closed the connection) |
| 20:47:05 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:47:38 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 20:48:06 | → | notzmv joins (~zmv@user/notzmv) |
| 20:49:59 | × | myxos quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection) |
| 20:51:54 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
| 21:03:31 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 21:04:06 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
| 21:04:45 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
| 21:04:57 | → | pavonia joins (~user@user/siracusa) |
| 21:08:32 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 272 seconds) |
| 21:09:55 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 21:10:16 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 21:10:27 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer) |
| 21:10:39 | × | falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 240 seconds) |
| 21:10:48 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 21:11:19 | × | acidjnk quits (~acidjnk@p200300d6e7072f71a0e70c533425b336.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 21:14:35 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
| 21:20:36 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 21:25:05 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 240 seconds) |
| 21:26:05 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 21:33:57 | × | vglfr quits (~vglfr@88.155.165.25) (Remote host closed the connection) |
| 21:34:16 | → | vglfr joins (~vglfr@88.155.165.25) |
| 21:36:57 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 21:37:06 | × | vglfr quits (~vglfr@88.155.165.25) (Read error: Connection reset by peer) |
| 21:37:25 | → | vglfr joins (vglfr@gateway/vpn/protonvpn/vglfr) |
| 21:38:34 | × | sabino quits (~sabino@user/sabino) (Ping timeout: 255 seconds) |
| 21:38:56 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 21:38:56 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 21:38:56 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:39:18 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 21:41:24 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
| 21:43:22 | × | aliosablack quits (~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Ping timeout: 272 seconds) |
| 21:51:47 | → | sabino joins (~sabino@user/sabino) |
| 21:53:12 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 21:54:46 | × | vglfr quits (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 272 seconds) |
| 21:57:32 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 248 seconds) |
| 22:03:22 | → | grnman_ joins (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) |
| 22:10:49 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 22:15:41 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 260 seconds) |
| 22:16:49 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds) |
| 22:18:06 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 22:28:51 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 22:29:11 | × | stites quits (~stites@130.44.147.204) (Ping timeout: 260 seconds) |
| 22:29:53 | → | stites joins (~stites@2607:fb91:dc3:1267:8194:4057:3670:88d7) |
| 22:32:26 | × | grnman_ quits (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 255 seconds) |
| 22:33:09 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
| 22:33:40 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 22:34:01 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:38:07 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
| 22:50:33 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 22:53:25 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 22:53:34 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 22:55:13 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 255 seconds) |
| 23:05:10 | × | stites quits (~stites@2607:fb91:dc3:1267:8194:4057:3670:88d7) (Read error: Connection reset by peer) |
| 23:05:31 | → | stites joins (~stites@130.44.147.204) |
| 23:05:34 | → | califax_ joins (~califax@user/califx) |
| 23:06:19 | × | califax quits (~califax@user/califx) (Ping timeout: 252 seconds) |
| 23:06:40 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 23:06:51 | califax_ | is now known as califax |
| 23:10:02 | → | xigua joins (~xigua@user/xigua) |
| 23:11:24 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 272 seconds) |
| 23:13:45 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 23:18:19 | × | NinjaTrappeur quits (~ninja@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 264 seconds) |
| 23:19:00 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 23:23:07 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) (Remote host closed the connection) |
| 23:24:14 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 23:27:55 | → | NinjaTrappeur joins (~ninja@about/aquilenet/vodoo/NinjaTrappeur) |
| 23:28:36 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 260 seconds) |
| 23:33:05 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 23:40:17 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 23:45:35 | × | myyo quits (~myyo@75-166-145-203.hlrn.qwest.net) (Ping timeout: 240 seconds) |
| 23:53:37 | Guest3051 | is now known as sa |
| 23:55:55 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:21c9:e2cd:7450:1f71) |
| 23:56:12 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 23:56:18 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 23:58:51 | → | myyo joins (~myyo@75-166-145-203.hlrn.qwest.net) |
| 23:59:11 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds) |
All times are in UTC on 2023-10-08.