Logs on 2024-09-09 (liberachat/#haskell)
| 00:00:07 | × | xff0x quits (~xff0x@2405:6580:b080:900:5825:9cdb:90f7:52b0) (Client Quit) |
| 00:02:03 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 00:05:58 | → | Axman6 joins (~Axman6@user/axman6) |
| 00:06:39 | → | xff0x joins (~xff0x@2405:6580:b080:900:55c2:e74c:3e3:5f94) |
| 00:07:36 | <xacktm> | hello, I'm trying to parse an HTML page with xml-conduit by ignoring the HTML <head> boilerplate to get to the <body> data but can't work out how to use the provided ignore* functions to accomplish that - any hints? https://bpa.st/7YMVS |
| 00:11:58 | <xacktm> | oh wait, I got it to compile... wrapped parens around the bit after >> like: (ignoreTree "head" ignoreAttrs) >> (tagIgnoreAttrs "body" $ manyYield parseNode) |
| 00:12:26 | <xacktm> | thanks rubber ducks ^^ |
| 00:13:11 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:18:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 00:18:32 | <mauke> | the parens in (ignoreTree "head" ignoreAttrs) are redundant |
| 00:20:00 | × | spew quits (~spew@201.141.99.170) (Ping timeout: 272 seconds) |
| 00:20:29 | <mauke> | the problem is that $ has low precedence, so `a >> b $ c` parses as `(a >> b) $ c`, when you wanted `a >> (b $ c)` |
| 00:21:44 | → | spew joins (~spew@201.141.99.170) |
| 00:22:16 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 00:25:01 | × | ZharMeny quits (~ZharMeny@user/ZharMeny) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)) |
| 00:26:33 | × | xff0x quits (~xff0x@2405:6580:b080:900:55c2:e74c:3e3:5f94) (Ping timeout: 276 seconds) |
| 00:26:42 | <xacktm> | thanks, yes that error did confuse me where to put the parens - I overlooked that $, thinking I could simply chain |
| 00:27:24 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 00:28:59 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:30:45 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 00:33:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 00:36:55 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 00:38:11 | × | tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 00:41:15 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 00:44:46 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:49:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 00:59:39 | × | Everything quits (~Everythin@109.162.122.37) (Quit: leaving) |
| 00:59:44 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 01:00:34 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:02:28 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 01:05:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 01:07:01 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 01:07:21 | × | auri quits (~auri@fsf/member/auri) () |
| 01:07:46 | → | weary-traveler joins (~user@user/user363627) |
| 01:09:36 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 01:16:21 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:21:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 01:21:42 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 01:22:31 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:24:33 | → | xff0x joins (~xff0x@om126166210134.28.openmobile.ne.jp) |
| 01:26:01 | <Axman6> | xacktm: ignoreTree "head" ignoreAttrs >> tagIgnoreAttrs "body" (manyYield parseNode) is how I would write that |
| 01:26:09 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 01:27:05 | → | auri joins (~auri@fsf/member/auri) |
| 01:27:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 01:32:34 | × | troojg quits (~troojg@user/troojg) (Ping timeout: 260 seconds) |
| 01:34:42 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 01:38:11 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:39:58 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
| 01:40:00 | × | xff0x quits (~xff0x@om126166210134.28.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 01:42:51 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 01:44:45 | <xacktm> | hm yes, that is a bit clearer |
| 01:45:02 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:45:54 | → | ACuriousMoose joins (~ACuriousM@156.34.161.188) |
| 01:50:28 | → | Guest55 joins (~Guest55@c-71-229-185-228.hsd1.co.comcast.net) |
| 01:50:42 | × | Guest55 quits (~Guest55@c-71-229-185-228.hsd1.co.comcast.net) (Client Quit) |
| 01:53:59 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:54:39 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 01:59:04 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 01:59:24 | <haskellbridge> | <Bowuigi> Is there some resource on syntactic experiments for functional languages? I have seen some really interesting ideas (do/codo/arrow notation, indentation-based grouping, etc) but I don't know if there is a central place for them |
| 01:59:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 02:00:56 | <haskellbridge> | <Bowuigi> Indentation-based grouping seems interesting for languages that don't have Haskell-style pattern matching, but rather use eliminators and/or first class patterns and/or optics |
| 02:04:16 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 02:08:44 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 02:09:46 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:14:45 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 02:18:50 | × | comonad1 quits (~comonad@p200300d02705e800d14b563ba919432f.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 02:22:12 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 02:25:34 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:27:40 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 02:29:27 | → | comonad joins (~comonad@p200300d02705e800d14b563ba919432f.dip0.t-ipconnect.de) |
| 02:30:27 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 02:35:58 | × | spew quits (~spew@201.141.99.170) (Quit: spew) |
| 02:41:21 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:41:55 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 02:41:58 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 02:42:04 | × | terrorjack4 quits (~terrorjac@static.48.15.202.116.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
| 02:42:22 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 02:42:30 | → | greenflower joins (~greenflow@125.16.7.78) |
| 02:43:43 | → | terrorjack4 joins (~terrorjac@2a01:4f8:c17:dc9f::) |
| 02:46:12 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 02:48:39 | × | td_ quits (~td@i53870918.versanet.de) (Ping timeout: 246 seconds) |
| 02:50:43 | → | td_ joins (~td@i5387092B.versanet.de) |
| 02:57:07 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:02:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 03:03:42 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 03:04:54 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 03:09:18 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:14:12 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 03:14:17 | <ski> | Bowuigi : "Indentation-based grouping seems interesting for languages that don't have Haskell-style pattern matching, but rather use eliminators and/or first class patterns and/or optics" -- why ? (and "first class patterns" meaning ?) |
| 03:18:31 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 03:25:05 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:28:50 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 03:29:12 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds) |
| 03:30:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:30:40 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 03:35:12 | → | aforemny_ joins (~aforemny@2001:9e8:6cde:3200:4b2a:73ea:fa78:d732) |
| 03:36:14 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 03:36:21 | × | aforemny quits (~aforemny@2001:9e8:6cfd:5300:79d5:7cd7:efda:1b62) (Ping timeout: 276 seconds) |
| 03:40:52 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:45:53 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 03:48:54 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 03:52:32 | × | sourcetarius quits (~sourcetar@user/sourcetarius) (Quit: zzz) |
| 03:52:43 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 03:55:51 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
| 04:02:09 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 04:12:26 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:19:59 | → | misterfish joins (~misterfis@84.53.85.146) |
| 04:20:00 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 04:26:32 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 04:31:48 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:34:39 | → | arahael_ joins (~arahael@user/arahael) |
| 04:36:27 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 04:41:30 | × | arahael quits (~arahael@user/arahael) (Ping timeout: 252 seconds) |
| 04:47:35 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:52:50 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 04:54:58 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 04:59:56 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
| 05:00:26 | <haskellbridge> | <Bowuigi> "First class patterns" are functions that act like small scale pattern matches (like checking if a constructor tag matches and running an action if it does), they are described in a calculus form in a paper of the same name by B. Jay and D. Kessner |
| 05:00:37 | <haskellbridge> | <Bowuigi> Kesner* |
| 05:02:22 | <haskellbridge> | <Bowuigi> A more modern formulation can be found in "Optimizing First-Class Pattern Matching" by J. Smits, T. Hartman and J. Cockx |
| 05:02:57 | → | michalz joins (~michalz@185.246.207.203) |
| 05:03:20 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:04:03 | <haskellbridge> | <Bowuigi> As usual, it can be modelled with row types. Pattern matching on the constructor is equivalent to many variant decompositions or to a single variant elimination, pattern matching on fields is equivalent to record patterns, add some combinators and done, reusable patterns |
| 05:04:54 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 05:05:36 | <haskellbridge> | <Bowuigi> Any kind of first class pattern matching can be eventually optimized to the usual pattern matching so their optimization methods also apply |
| 05:07:12 | <haskellbridge> | <Bowuigi> If with "why" you mean why is it a good idea to use indentation to group expressions on these cases, consider the map function for Church-encoded lists |
| 05:07:36 | × | arahael_ quits (~arahael@user/arahael) (Ping timeout: 246 seconds) |
| 05:07:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 05:10:22 | <haskellbridge> | <Bowuigi> (I hope IRC is fine with multi-line messages) |
| 05:10:22 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/ZocllxsAxFUSJmQebtytfPyz (3 lines) |
| 05:10:23 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:14:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 05:16:13 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 05:17:42 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 05:18:33 | → | qqe joins (~qqq@92.43.167.61) |
| 05:22:47 | <mauke> | <+haskellbridge> ... long message truncated: https://kf8nh.com/_matrix/media/v3/download/kf8nh.com/ZocllxsAxFUSJmQebtytfPyz (3 lines |
| 05:23:58 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 05:24:09 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 05:25:41 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 248 seconds) |
| 05:26:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:26:58 | → | xff0x joins (~xff0x@om126166210134.28.openmobile.ne.jp) |
| 05:27:01 | → | michalz joins (~michalz@185.246.207.200) |
| 05:27:03 | → | arahael joins (~arahael@user/arahael) |
| 05:28:15 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 05:28:49 | <haskellbridge> | <Bowuigi> Yeah that works too |
| 05:33:18 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 05:34:05 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:36:50 | × | mstksg quits (~jle`@2603:8001:3b02:84d4:a690:69a1:4e16:510b) (Quit: WeeChat 4.2.2) |
| 05:39:36 | → | jle` joins (~jle`@2603:8001:3b02:84d4:1e01:15c4:e899:3d70) |
| 05:41:22 | × | arahael quits (~arahael@user/arahael) (Read error: Connection reset by peer) |
| 05:41:54 | × | jle` quits (~jle`@2603:8001:3b02:84d4:1e01:15c4:e899:3d70) (Client Quit) |
| 05:42:43 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 05:43:46 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 05:44:23 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:44:44 | → | jle` joins (~jle`@2603:8001:3b02:84d4:1413:617c:6ead:3f73) |
| 05:46:16 | → | euleritian joins (~euleritia@dynamic-176-006-140-223.176.6.pool.telefonica.de) |
| 05:48:11 | → | acidjnk_new joins (~acidjnk@p200300d6e72cfb21181cd9b506c11910.dip0.t-ipconnect.de) |
| 05:48:57 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
| 05:49:20 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 05:53:03 | → | CiaoSen joins (~Jura@2a05:5800:2b2:3500:ca4b:d6ff:fec1:99da) |
| 06:00:10 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:01:00 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 06:05:31 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 06:07:33 | × | xff0x quits (~xff0x@om126166210134.28.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 06:08:21 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 06:11:16 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:12:58 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 06:16:06 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:20:31 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:23:00 | → | Square2 joins (~Square4@user/square) |
| 06:26:00 | × | Squared quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 06:27:05 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:34:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 06:36:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:36:33 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 06:40:17 | × | TMA quits (tma@twin.jikos.cz) (Ping timeout: 248 seconds) |
| 06:41:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 06:42:00 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:42:01 | → | TMA joins (tma@twin.jikos.cz) |
| 06:42:21 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:44:58 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 265 seconds) |
| 06:51:53 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:54:43 | × | ft quits (~ft@p4fc2a393.dip0.t-ipconnect.de) (Quit: leaving) |
| 06:54:49 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 06:56:47 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:58:52 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 07:02:09 | × | CiaoSen quits (~Jura@2a05:5800:2b2:3500:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds) |
| 07:04:07 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 07:04:39 | × | euleritian quits (~euleritia@dynamic-176-006-140-223.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:04:57 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:07:40 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:08:20 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 07:17:20 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 07:18:26 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 07:18:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:23:09 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 07:25:18 | → | EarlPitts joins (~EarlPitts@20014C4C1C6E6700A4006D5FAF3CEF25.catv.pool.telekom.hu) |
| 07:26:04 | × | talismanick quits (~user@2601:644:937c:ed10:536b:7670:fffc:851a) (Ping timeout: 260 seconds) |
| 07:28:05 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:34:47 | → | kuribas joins (~user@ptr-17d51epau2xs89jopnb.18120a2.ip6.access.telenet.be) |
| 07:36:34 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 07:37:26 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 07:41:05 | → | srazkvt joins (~sarah@user/srazkvt) |
| 07:41:27 | <kuribas> | I want to participate in munichac with my hasqlator library. |
| 07:41:48 | <kuribas> | Would you say that Applicative/Monoid/Functor are Beginner level, or intermediate level? |
| 07:42:45 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 07:43:34 | <kuribas> | What about phantom variables with lifted DataKinds? I have a single type family. |
| 07:44:54 | <kuribas> | The lower level of my library just uses Applicative/Monoid, I'd say that's pretty standard haskell? |
| 07:47:49 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:50:58 | → | sourcetarius joins (~sourcetar@user/sourcetarius) |
| 07:52:47 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:53:04 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 07:53:57 | <Unicorn_Princess> | kuribas, i'd say applicative/monoid/functor are intermediate level for non-haskellers, and beginner-level for haskellers |
| 07:54:40 | <Unicorn_Princess> | but then i'm sure there's a mind-bending way of using them that'd make them intermediate/advanced |
| 07:55:22 | <Unicorn_Princess> | in any case the surest way to find out would be to check how older submissions were categorized |
| 07:55:43 | <dminuoso> | kuribas: Depends on how you spin it. |
| 07:55:57 | × | hgolden_ quits (~hgolden@146.70.173.37) (Ping timeout: 246 seconds) |
| 07:56:01 | <dminuoso> | If you forego the generalization and focus on just `fmap/<*>/<+>` at a specific instance, it's beginner level. |
| 07:56:04 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:56:18 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 07:56:22 | → | hgolden joins (~hgolden@169.150.203.10) |
| 07:56:51 | <dminuoso> | You can even assist that by providing bindings at those specific types. |
| 07:57:06 | → | misterfish joins (~misterfis@87.215.131.102) |
| 07:57:29 | <dminuoso> | Like if we had `thenIO :: IO a -> (a -> IO b) -> IO b`, and `pureIO :: a -> IO a`, I think much of the monad scare would just... not exist. |
| 07:57:58 | <dminuoso> | (In fact, this is even why we have `map`) |
| 08:00:15 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:01:14 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 08:01:39 | <kuribas> | Unicorn_Princess: I would think people who attend a haskell conference already no so minimum haskell. |
| 08:01:48 | <kuribas> | Including Monads and Applicatives. |
| 08:02:13 | → | rickbx joins (~rick@38.42.185.148) |
| 08:02:36 | × | rickbx quits (~rick@38.42.185.148) (Remote host closed the connection) |
| 08:02:41 | <kuribas> | dminuoso: right, people working on this would not have to make their own instances, so you could say it's beginner friendly... |
| 08:02:59 | → | rickbx joins (~rick@38.42.185.148) |
| 08:04:29 | <dminuoso> | Well this is not necessarily about "making their own instances", but rather using the polymorphic interface can be intimidating for beginners. |
| 08:04:37 | → | arahael joins (~arahael@user/arahael) |
| 08:04:48 | <kuribas> | right |
| 08:05:04 | → | arahael_ joins (~arahael@user/arahael) |
| 08:05:27 | <dminuoso> | The confusion arises because the generalization of these interfaces is only relevant if a) you are writing that interface to begin with, or b) you want to provide some polymorphic library function yourself that uses the former primitive. |
| 08:06:05 | <dminuoso> | But if a user uses `>>=` they see a bizarre looking operator, and an intimiating class name, both of which are mostly irrelevant to the task at hand. |
| 08:06:05 | <kuribas> | Not sure I get your second point... |
| 08:06:32 | <dminuoso> | Well say Im exposing `double :: Functor f -> f Int -> f Int` rather than `double :: [Int] -> [Int]` |
| 08:06:35 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 08:06:35 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 08:06:41 | <dminuoso> | Or even more confusing |
| 08:06:52 | <dminuoso> | double :: (Num a, Functor f) => f a -> f a |
| 08:07:00 | <kuribas> | Yeah, the applicative operator is hard to grasp, but if composing it is easy, just put <$> first, then <*> |
| 08:07:13 | <dminuoso> | Im saying using it at a particular instance is simnple. |
| 08:07:17 | × | srazkvt quits (~sarah@user/srazkvt) (Ping timeout: 248 seconds) |
| 08:07:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 08:07:58 | <dminuoso> | With some implicit understanding of f `(<*> @IO)` 1 `(<$> IO)` 2 |
| 08:08:01 | <dminuoso> | if it were. |
| 08:08:29 | <kuribas> | There is not a lot of polymorphism at the lower level: https://hackage.haskell.org/package/hasqlator-mysql-0.1.0/docs/Database-MySQL-Hasqlator.html |
| 08:08:32 | <dminuoso> | That way you're no longer talking about Applicative, but some particular functions that can attribute clear and explainable behavior to. |
| 08:09:01 | <kuribas> | right, abstraction is difficult. |
| 08:09:13 | → | __monty__ joins (~toonn@user/toonn) |
| 08:09:14 | <kuribas> | Before you actually understand the things it's abstracting over. |
| 08:10:41 | × | EarlPitts quits (~EarlPitts@20014C4C1C6E6700A4006D5FAF3CEF25.catv.pool.telekom.hu) (Remote host closed the connection) |
| 08:12:01 | × | rickbx quits (~rick@38.42.185.148) (Ping timeout: 248 seconds) |
| 08:13:17 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:15:22 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 08:16:31 | → | EarlPitts joins (~EarlPitts@20014C4C1C6E6700A4006D5FAF3CEF25.catv.pool.telekom.hu) |
| 08:18:43 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 08:19:45 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 08:20:37 | → | oo_miguel joins (~Thunderbi@78.10.207.45) |
| 08:21:27 | → | Guest12 joins (~Guest12@210.115.223.46) |
| 08:22:35 | <kuribas> | I am on a waitlist :( I already bought a busticket and hotel... |
| 08:24:41 | × | qqe quits (~qqq@92.43.167.61) (Quit: Lost terminal) |
| 08:26:35 | → | srazkvt joins (~sarah@user/srazkvt) |
| 08:29:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:35:04 | → | CiaoSen joins (~Jura@2a05:5800:2b2:3500:ca4b:d6ff:fec1:99da) |
| 08:35:15 | → | chele joins (~chele@user/chele) |
| 08:37:27 | → | EvanR_ joins (~EvanR@user/evanr) |
| 08:37:47 | × | EvanR quits (~EvanR@user/evanr) (Read error: Connection reset by peer) |
| 08:39:42 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 08:39:49 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 246 seconds) |
| 08:44:04 | → | Axman6 joins (~Axman6@user/axman6) |
| 08:46:45 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 08:49:09 | → | todi joins (~todi@p57803331.dip0.t-ipconnect.de) |
| 08:49:58 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 08:49:58 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:50:55 | × | cfricke quits (~cfricke@user/cfricke) (Remote host closed the connection) |
| 08:52:18 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:53:17 | × | cfricke quits (~cfricke@user/cfricke) (Remote host closed the connection) |
| 08:53:34 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:54:45 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 08:56:32 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 08:58:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:03:29 | × | CrunchyFlakes quits (~CrunchyFl@31.18.102.35) (Ping timeout: 260 seconds) |
| 09:03:56 | × | bcksl quits (~bcksl@user/bcksl) (Quit: \) |
| 09:03:57 | × | end quits (~end@user/end/x-0094621) (Quit: end) |
| 09:04:50 | → | sus0 joins (zero@user/zeromomentum) |
| 09:05:45 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:06:45 | → | Axma40506 joins (~Axman6@user/axman6) |
| 09:08:39 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 240 seconds) |
| 09:10:30 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 09:10:34 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 09:10:54 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 09:11:15 | × | EarlPitts quits (~EarlPitts@20014C4C1C6E6700A4006D5FAF3CEF25.catv.pool.telekom.hu) (Remote host closed the connection) |
| 09:11:38 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 09:12:06 | → | CrunchyFlakes joins (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) |
| 09:14:17 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:15:48 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
| 09:15:52 | mal1 | is now known as lieven |
| 09:19:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 09:22:33 | → | bcksl joins (~bcksl@user/bcksl) |
| 09:23:04 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 09:23:28 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 09:25:02 | × | CrunchyFlakes quits (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) (Read error: Connection reset by peer) |
| 09:30:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:31:58 | → | end joins (~end@user/end/x-0094621) |
| 09:34:23 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 09:35:00 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 09:35:44 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:44:22 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 09:46:20 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 09:46:39 | <ski> | Bowuigi : reminds me of "SRFI 49: Indentation-sensitive syntax" by Egill Möller in 2005-07-22 at <https://srfi.schemers.org/srfi-49/srfi-49.html> ; "SRFI 110: Sweet-expressions (t-expressions)" by David A. Wheeler,Alan Manuel K. Gloria in 2013-09-09 at <https://srfi.schemers.org/srfi-110/srfi-110.html> ; "SRFI 119: wisp: simpler indentation-sensitive scheme" by Arne Babenhauserheide in 2015-06-23 at |
| 09:46:45 | <ski> | <https://srfi.schemers.org/srfi-119/srfi-119.html> |
| 09:50:45 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 09:56:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:59:05 | → | murgeljm joins (~murgeljm@APN-122-12-44-gprs.simobil.net) |
| 10:00:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 10:02:46 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 10:02:47 | × | turlando quits (~turlando@user/turlando) () |
| 10:03:18 | → | turlando joins (~turlando@user/turlando) |
| 10:06:47 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 10:07:14 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 10:08:29 | → | califax joins (~califax@user/califx) |
| 10:09:25 | → | Axman6 joins (~Axman6@user/axman6) |
| 10:11:03 | × | srazkvt quits (~sarah@user/srazkvt) (Ping timeout: 252 seconds) |
| 10:11:15 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 10:11:26 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:11:31 | × | Axma40506 quits (~Axman6@user/axman6) (Ping timeout: 246 seconds) |
| 10:12:16 | → | califax joins (~califax@user/califx) |
| 10:15:03 | → | john2 joins (~john@2406:5a00:241a:5600:f0eb:f825:2ac6:1387) |
| 10:19:20 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 10:19:27 | → | benjaminl_ joins (~benjaminl@c-76-144-12-233.hsd1.or.comcast.net) |
| 10:19:27 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 10:20:23 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 10:20:51 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds) |
| 10:21:01 | × | benjaminl quits (~benjaminl@user/benjaminl) (Ping timeout: 265 seconds) |
| 10:21:06 | → | alexherbo2 joins (~alexherbo@2a02-8440-3106-cf87-a4cc-9bf0-cfc8-04ba.rev.sfr.net) |
| 10:22:14 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 10:26:40 | × | turlando quits (~turlando@user/turlando) () |
| 10:27:09 | → | turlando joins (~turlando@user/turlando) |
| 10:27:30 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 10:31:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:33:06 | × | turlando quits (~turlando@user/turlando) (Ping timeout: 265 seconds) |
| 10:35:42 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 10:40:06 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 10:40:50 | → | euleritian joins (~euleritia@dynamic-176-006-133-025.176.6.pool.telefonica.de) |
| 10:41:23 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 10:42:35 | × | greenflower quits (~greenflow@125.16.7.78) (Quit: Ping timeout (120 seconds)) |
| 10:46:22 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
| 10:46:37 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:49:51 | → | ZharMeny joins (~ZharMeny@user/ZharMeny) |
| 10:51:43 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 10:54:56 | → | ash3en joins (~Thunderbi@89.246.174.164) |
| 10:56:32 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:00:15 | Guest12 | is now known as vincent42 |
| 11:01:22 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 11:02:09 | × | sourcetarius quits (~sourcetar@user/sourcetarius) (Ping timeout: 246 seconds) |
| 11:02:25 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:04:52 | → | CrunchyFlakes joins (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) |
| 11:04:59 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 260 seconds) |
| 11:07:09 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 11:07:33 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 11:08:18 | × | CrunchyFlakes quits (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) (Read error: Connection reset by peer) |
| 11:08:48 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 246 seconds) |
| 11:09:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:09:44 | × | foul_owl quits (~kerry@157.97.134.165) (Ping timeout: 255 seconds) |
| 11:10:29 | → | misterfish joins (~misterfis@87.215.131.102) |
| 11:11:42 | × | vincent42 quits (~Guest12@210.115.223.46) (Changing host) |
| 11:11:42 | → | vincent42 joins (~Guest12@user/vincent42) |
| 11:12:04 | → | CrunchyFlakes joins (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) |
| 11:12:21 | × | ash3en quits (~Thunderbi@89.246.174.164) (Ping timeout: 248 seconds) |
| 11:13:42 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 11:14:54 | × | vincent42 quits (~Guest12@user/vincent42) (Quit: Connection closed) |
| 11:16:21 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:16:50 | → | ash3en joins (~Thunderbi@89.246.174.164) |
| 11:21:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 11:21:55 | → | foul_owl joins (~kerry@157.97.134.167) |
| 11:25:17 | → | vincent42 joins (~vincent42@user/vincent42) |
| 11:25:24 | × | ash3en quits (~Thunderbi@89.246.174.164) (Ping timeout: 260 seconds) |
| 11:25:41 | × | vincent42 quits (~vincent42@user/vincent42) (Client Quit) |
| 11:27:24 | → | vincent42 joins (~vincent42@user/vincent42) |
| 11:30:43 | × | foul_owl quits (~kerry@157.97.134.167) (Read error: Connection reset by peer) |
| 11:31:31 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:32:02 | → | vincent4228 joins (~vincent42@user/vincent42) |
| 11:32:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:32:29 | × | vincent4228 quits (~vincent42@user/vincent42) (Client Quit) |
| 11:34:02 | × | vincent42 quits (~vincent42@user/vincent42) (Quit: Connection closed) |
| 11:36:12 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 11:36:56 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 11:37:19 | → | hacklschorsch joins (~flo@vantaa.latfa.net) |
| 11:39:51 | <hacklschorsch> | Hi all! What's a good Haskell job board? |
| 11:40:05 | <hacklschorsch> | (We have an open position that I would like to re-post) |
| 11:43:43 | <haskellbridge> | <maerwald> hacklschorsch: Not reddit, not discourse |
| 11:43:52 | <haskellbridge> | <maerwald> Post on haskell weekly |
| 11:44:24 | → | vincent42 joins (~vincent42@user/vincent42) |
| 11:44:38 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 11:45:29 | × | vincent42 quits (~vincent42@user/vincent42) (Client Quit) |
| 11:46:08 | → | vincent45 joins (uid574193@id-574193.hampstead.irccloud.com) |
| 11:47:48 | → | foul_owl joins (~kerry@157.97.134.164) |
| 11:47:52 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:48:17 | × | misterfish quits (~misterfis@87.215.131.102) (Remote host closed the connection) |
| 11:48:35 | → | misterfish joins (~misterfis@87.215.131.102) |
| 11:49:05 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 11:49:14 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 11:49:49 | × | mechap quits (~mechap@user/mechap) (Read error: Connection reset by peer) |
| 11:50:09 | × | cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com)) |
| 11:52:14 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 11:52:28 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 11:52:56 | vincent45 | is now known as vpark42 |
| 11:53:04 | vpark42 | is now known as vincent42 |
| 11:53:22 | × | vincent42 quits (uid574193@id-574193.hampstead.irccloud.com) (Changing host) |
| 11:53:22 | → | vincent42 joins (uid574193@user/vincent42) |
| 11:56:32 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 12:02:28 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 12:03:39 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:04:11 | → | cheater joins (~Username@user/cheater) |
| 12:08:45 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 244 seconds) |
| 12:08:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 12:11:58 | → | turlando joins (~turlando@user/turlando) |
| 12:12:30 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 12:17:18 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:18:44 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 12:19:20 | <hacklschorsch> | Thanks maerwald! |
| 12:20:41 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:21:43 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 12:22:13 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 12:23:05 | → | ash3en joins (~Thunderbi@89.246.174.164) |
| 12:24:38 | × | ash3en quits (~Thunderbi@89.246.174.164) (Client Quit) |
| 12:25:57 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 12:26:38 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 245 seconds) |
| 12:27:30 | × | euleritian quits (~euleritia@dynamic-176-006-133-025.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:27:48 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 12:29:29 | <haskellbridge> | <sm> There's often plenty of job posts on those too.. seems ok if clearly labelled ? Is there a policy link ? |
| 12:29:50 | <cheater> | posts there are encouraged |
| 12:30:27 | <Leary> | Haskell weekly gets posted to them anyway. |
| 12:30:49 | <cheater> | of course, given that they're just comment threads, people are free to point out BS posts and bad previous experiences |
| 12:31:02 | <haskellbridge> | <sm> hacklschorsch: have a look at the recent ones, anticipating all the FAQs you'll get creates a good impression |
| 12:31:35 | <cheater> | i guess the FAQs taken from that would be "do you make cruise missiles" and "are you paying an acceptable wage" |
| 12:33:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:33:09 | × | alexherbo2 quits (~alexherbo@2a02-8440-3106-cf87-a4cc-9bf0-cfc8-04ba.rev.sfr.net) (Remote host closed the connection) |
| 12:34:08 | <haskellbridge> | <maerwald> cheater: yeah, or spam it with political nonsense or slander |
| 12:35:14 | <haskellbridge> | <maerwald> the etiquette is just incredibly bad... reddit is the worst, discourse is somewhat more strict. But I'd rather not have anyone comment if I'd do job postings |
| 12:36:12 | <cheater> | well i mean, if companies try to run a phd level position with barely livable wages, "get laughed out of the room" is the right response |
| 12:37:34 | <haskellbridge> | <maerwald> yeah, promoting more trash commenting, sweet |
| 12:38:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 12:39:32 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 12:39:39 | <cheater> | there's gotta be a line in the sand somewhere, lol |
| 12:40:21 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds) |
| 12:40:53 | <cheater> | ok so what would you call "high quality commenting" in such a situation? |
| 12:41:43 | → | gaff joins (~gaff@49.207.232.248) |
| 12:41:48 | × | gaff quits (~gaff@49.207.232.248) (Client Quit) |
| 12:45:05 | <haskellbridge> | <maerwald> insightful comments |
| 12:46:18 | <haskellbridge> | <maerwald> most people don't care about your political opinion and are not 15 years old (as in: don't need a warning about capitalism and specific industries) |
| 12:47:21 | <haskellbridge> | <maerwald> if you see a job posting where you _think_ the salary is low... provide information about similar jobs that have higher salaries (help people understand average market rate specific to Haskell in a specific position) |
| 12:47:48 | <haskellbridge> | <maerwald> there are websites for that |
| 12:48:39 | <cheater> | ok so give me an example comment for a job that requires 5 years of haskell experience and pays $60k |
| 12:48:50 | <cheater> | that insightfully expresses the money is laughably low |
| 12:48:50 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:48:53 | → | athan joins (~athan@syn-098-153-145-140.biz.spectrum.com) |
| 12:50:59 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds) |
| 12:51:06 | <haskellbridge> | <maerwald> cheater: where is the company located? |
| 12:51:23 | <haskellbridge> | <maerwald> not enough information to comment |
| 12:51:27 | <cheater> | nowhere, it's remote |
| 12:51:49 | <haskellbridge> | <maerwald> You didn't answer the question lol |
| 12:51:58 | <haskellbridge> | <maerwald> I didn't ask whether it's remote, but where the company is located |
| 12:51:59 | <cheater> | that's exactly your answer |
| 12:52:05 | <haskellbridge> | <maerwald> the company has a location lol |
| 12:52:08 | <haskellbridge> | <maerwald> otherwise it's not a company |
| 12:52:10 | <cheater> | many job posts are from companies that are fully remote and there is no one central location |
| 12:52:12 | <haskellbridge> | <maerwald> you have to register it |
| 12:52:19 | <haskellbridge> | <maerwald> yes there is |
| 12:52:24 | <cheater> | ok fine. it's registered in the virgin islands |
| 12:52:24 | <haskellbridge> | <maerwald> where the company is registered |
| 12:52:43 | <haskellbridge> | <maerwald> I have no idea about the rates and situation there |
| 12:52:50 | <cheater> | and there you go |
| 12:53:12 | <haskellbridge> | <maerwald> correct: if you don't have insightful information, don't comment |
| 12:53:35 | <haskellbridge> | <maerwald> if I see 60k for a bank in Singapore, I'd definitely comment |
| 12:53:37 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 12:54:03 | <cheater> | ok fine, what would you comment there? |
| 12:55:39 | <haskellbridge> | <maerwald> it's probably half of the average market rate, depending on position even less |
| 12:56:09 | <haskellbridge> | <maerwald> you don't have to add a moral dimension |
| 12:57:01 | <cheater> | ok, so you're upset that people add a moral dimension to their arguments |
| 12:57:02 | <haskellbridge> | <sm> maerwald: it may be annoying but some people do care about that and if it's posted on a discussion forum used to open discussion, there'll be discussion |
| 12:57:18 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 246 seconds) |
| 12:57:20 | <cheater> | like "this wage is immoral" is something that would upset you? |
| 12:57:42 | <haskellbridge> | <sm> job posters can manage this a bit by anticipating the FAQs |
| 12:58:36 | <haskellbridge> | <maerwald> cheater: it degrades etiquette, causes useless flamewars and people saying "blockchain is a scam". How insightful |
| 12:58:36 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 12:59:06 | <haskellbridge> | <maerwald> I have such trashtalk discussions in private... but in public? Jeez. |
| 13:00:23 | <cheater> | how does "this wage is unfit" directly cause "blockchain is a scam"? |
| 13:00:59 | <cheater> | and also, how does a comment on a wage being immoral "degrade etiquette"? |
| 13:01:12 | <cheater> | i don't see your logic on either of those |
| 13:02:52 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 13:02:58 | <haskellbridge> | <maerwald> "blockchain is a scam" and other noteworthy comments about companies like meta are common on reddit |
| 13:03:07 | → | ash3en joins (~Thunderbi@89.246.174.164) |
| 13:03:10 | × | Square2 quits (~Square4@user/square) (Ping timeout: 272 seconds) |
| 13:03:21 | <cheater> | sure, but where's the causality chain that you were presenting just 4 minutes ago? |
| 13:03:58 | <haskellbridge> | <maerwald> you misunderstood my comment I think |
| 13:04:09 | <cheater> | <maerwald> cheater: it degrades etiquette, causes useless flamewars and people saying "blockchain is a scam" |
| 13:04:15 | <haskellbridge> | <maerwald> and I'm not sure what we're arguing about here |
| 13:04:22 | <cheater> | you said that "this wage is immoral" causes people saying "blockchain is a scam" |
| 13:04:30 | <cheater> | i'd like you to explain this |
| 13:04:38 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:05:01 | <haskellbridge> | <maerwald> no I didn't |
| 13:05:21 | <cheater> | ok, so what did you mean when you said, to quote exactly: causes useless flamewars and people saying "blockchain is a scam" |
| 13:05:57 | <haskellbridge> | <maerwald> I was referring to the moral dimension |
| 13:06:25 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds) |
| 13:06:39 | <cheater> | idk, i wouldn't say that someone arguing about morality of job wages immediately invites discussion about the morality of specific jobs |
| 13:06:50 | <haskellbridge> | <maerwald> look at reddit |
| 13:07:05 | <cheater> | yeah, i have. i don't see what you're painting here |
| 13:07:12 | <haskellbridge> | <maerwald> or discourse, where people even make comments about the voting habits of CEOs |
| 13:07:25 | → | ystael joins (~ystael@user/ystael) |
| 13:07:37 | <haskellbridge> | <maerwald> I get it... elections are coming up in the US and people feel the need to save the world |
| 13:07:45 | <haskellbridge> | <maerwald> and yet I still don't care |
| 13:07:48 | × | CiaoSen quits (~Jura@2a05:5800:2b2:3500:ca4b:d6ff:fec1:99da) (Ping timeout: 246 seconds) |
| 13:08:02 | <cheater> | you're refering to the thread about anduril. people made those comments without any previous comments about the morality or not of their wages. there were no such comments. therefore there can be no such causality. |
| 13:08:09 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 13:08:22 | <haskellbridge> | <maerwald> I'm not talking about wages |
| 13:08:23 | <cheater> | they would be making those comments whether or not people put wages into question (which they didn't, which proves it) |
| 13:08:26 | <cheater> | well i am |
| 13:08:28 | <haskellbridge> | <maerwald> you're not listening, I think we're done here |
| 13:08:36 | <haskellbridge> | <maerwald> have a good day |
| 13:09:03 | <cheater> | my initial hypothesis was that it's good that people can talk about bad previous experiences and companies trying to run haskell tax |
| 13:09:21 | → | misterfish joins (~misterfis@87.215.131.102) |
| 13:10:08 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 13:10:11 | <cheater> | you responded to this saying that talking about job wages in terms of whether they're moral is not good, because discussions of morality generally in your opinion devolve to surveys of CEO voting habits and whether it's moral to work for some industry |
| 13:10:51 | <cheater> | that's not a causality |
| 13:10:51 | <haskellbridge> | <maerwald> please stop misrepresenting what I said |
| 13:11:04 | <cheater> | that's an exact rundown of what you said |
| 13:11:22 | <cheater> | you can go ahead and clarify what you said |
| 13:11:29 | <haskellbridge> | <maerwald> it's not |
| 13:11:34 | <cheater> | ok, fine, how is it not? |
| 13:11:52 | <haskellbridge> | <maerwald> I'm not interested anymore |
| 13:12:14 | <cheater> | it looks to me like you painted yourself into a corner here |
| 13:12:42 | <haskellbridge> | <maerwald> looks to my like you're trying to troll here |
| 13:12:54 | <haskellbridge> | <maerwald> would you like me to ping the mods? |
| 13:15:19 | <hacklschorsch> | Woa what peace please. I was having lunch, now come back (late) to a meeting and also check IRC and (first: thank you all for the many answers!) into the midst of some stand-off haha |
| 13:15:34 | <hacklschorsch> | I'll get back asap |
| 13:16:07 | <haskellbridge> | <thirdofmay18081814goya> reading https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/multi.pdf anyone have thoughts on it |
| 13:16:36 | <cheater> | lol |
| 13:17:54 | <haskellbridge> | <sm> maerwald I see no trolling here |
| 13:18:16 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:19:07 | <haskellbridge> | <thirdofmay18081814goya> apparently invalid pdf for some, here's the home: https://www.microsoft.com/en-us/research/publication/type-classes-an-exploration-of-the-design-space/ |
| 13:19:45 | × | mulk quits (~mulk@p5b112b2e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 13:20:34 | <haskellbridge> | <sm> what's the quickest way to track down the spelling of the language extension to turn off partial warnings ? |
| 13:20:36 | haskellbridge | sm tried and failed |
| 13:21:40 | <cheater> | sm: in vim, something like C-X C-L ? |
| 13:22:16 | <haskellbridge> | <sm> if you don't have a haskell-configured vim handy :) |
| 13:22:18 | <cheater> | sm: do you mean the partial matches warnings? |
| 13:22:27 | <haskellbridge> | <sm> yup |
| 13:22:38 | <haskellbridge> | <sm> ah no, I mean the new one for using partial functions like head |
| 13:22:53 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 13:23:27 | <cheater> | C-X C-L is standard vim and not haskell related |
| 13:23:40 | <cheater> | idk about the new one, haven't encountered it |
| 13:23:50 | <cheater> | C-X C-L is line completion |
| 13:24:10 | <cheater> | so if you already have a file open that does that, you can complete the line to that |
| 13:24:59 | <Leary> | sm: man ghc /-Wno-x |
| 13:26:14 | <haskellbridge> | <sm> Leary: that's quick, but doesn't find it alas |
| 13:26:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:28:06 | <haskellbridge> | <sm> would this be a language extension, or a ghc option ? |
| 13:28:06 | <Leary> | sm: The warning should show `-Wx-partial`. That implies you want `-Wno-x-partial`. I'm not aware that this functionality is connected to any language extension. |
| 13:28:49 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 13:29:25 | <haskellbridge> | <sm> yup Maybe that explains it. I found -Wpartial-fields -Wno-partial-fields, neither of which sounds right. |
| 13:29:42 | <haskellbridge> | <sm> guess I'll search for how I silenced it last time |
| 13:30:40 | <haskellbridge> | <sm> ...though that could take a while. I wish things like this could be quick-referenced more quickly. |
| 13:32:34 | <Leary> | Uh. Maybe you missed the second sentence? |
| 13:33:55 | → | srazkvt joins (~sarah@user/srazkvt) |
| 13:34:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:34:30 | <haskellbridge> | <sm> Leary: oh, you think -Wno-x-partial is the ghc option I'm looking for ? Could be, I missed that spelling because it's not in my "man ghc" (which is ghc 9.8) |
| 13:35:17 | <Leary> | Right, it doesn't list the categories themselves, but it gives you the format. You get the category from the warning itself. |
| 13:36:10 | <Leary> | (because the categories are arbitrarily extensible, there's no point trying to maintain a list of "standard" ones) |
| 13:36:26 | <haskellbridge> | <sm> You're right - {-# OPTIONS_GHC -Wno-x-partial #-} is what I was needing. "man ghc" wasn't quite good enough since I was working on a runhaskell script in a ghc 9.10 project. Thanks for the pointers |
| 13:36:54 | <haskellbridge> | <sm> (system ghc was 9.8, and this is a 9.10-specific feature) |
| 13:38:57 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 13:39:05 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 13:39:32 | → | mulk joins (~mulk@p5b112b2e.dip0.t-ipconnect.de) |
| 13:39:43 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 264 seconds) |
| 13:41:40 | <cheater> | sm: the listing of GHC flags is incomplete in the places i look for them, and it's annoying. docs are getting better but idk if it's fully solved. but yes, -Wx implies the existence of a -Wno-x |
| 13:42:26 | <cheater> | (let's be honest though, the correct fix to that warning is to get rid of partial functions though) |
| 13:42:37 | <cheater> | -though |
| 13:42:51 | <haskellbridge> | <sm> Agreed. A related question, should I have guessed that this would be a ghc option not a language extension ? the line seems a bit fuzzy to me |
| 13:44:05 | <haskellbridge> | <sm> not agreed on the fix, at this time I only wanted to silence warnings about head in this script :) |
| 13:45:21 | <haskellbridge> | <sm> yes I would fix it later as you suggest, fine fine |
| 13:46:03 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
| 13:47:02 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 13:47:09 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 13:48:08 | <cheater> | yes, i was confused at first when you mentioned extension |
| 13:48:13 | <cheater> | warnings are compiler options |
| 13:48:20 | <cheater> | or rather |
| 13:48:26 | <cheater> | warnings settings are compiler options |
| 13:48:59 | → | xff0x joins (~xff0x@2405:6580:b080:900:979f:5e3e:76e8:a33b) |
| 13:49:05 | <cheater> | but yes, a language pragma can turn them off. some people have a mental shortcut to thinking that language pragmas are "how i do extensions", which is fair, but can confuse you into looking into the wrong place apparently :) |
| 13:49:51 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:53:47 | <Leary> | sm: The distinction /can/ be fuzzy, but in this case it shouldn't be. These warnings are purely generated by WARNING /pragmata/, not Haskell proper, so strictly speaking they have no relation to the language, only the compiler. |
| 13:54:58 | × | vincent42 quits (uid574193@user/vincent42) (Quit: Connection closed for inactivity) |
| 13:54:58 | <cheater> | Leary: that's actually a super good way of thinking about this, thank you |
| 13:55:01 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 13:56:22 | × | ash3en quits (~Thunderbi@89.246.174.164) (Ping timeout: 272 seconds) |
| 14:01:00 | × | arahael_ quits (~arahael@user/arahael) (Ping timeout: 246 seconds) |
| 14:01:11 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 14:05:37 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 14:06:08 | × | CrunchyFlakes quits (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) (Read error: Connection reset by peer) |
| 14:07:11 | <hacklschorsch> | Thanks again maerwald, cheater, Leary, sm. Helpful! Have a good week y'all |
| 14:07:22 | <cheater> | same! enjoy your week |
| 14:08:45 | <sm> | good luck! |
| 14:09:16 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:09:29 | → | CrunchyFlakes joins (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) |
| 14:09:38 | × | athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Ping timeout: 265 seconds) |
| 14:09:54 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 14:10:29 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 14:19:16 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 14:19:24 | × | mesaoptimizer quits (~mesaoptim@user/PapuaHardyNet) (Quit: mesaoptimizer) |
| 14:19:26 | <haskellbridge> | <sm> element is showing me some of this recent irc chat out of order, and I'm having trouble fixing it. Apologies in advance if this next click resends some messages. |
| 14:19:34 | → | mesaoptimizer joins (~mesaoptim@user/PapuaHardyNet) |
| 14:22:11 | × | CrunchyFlakes quits (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) (Read error: Connection reset by peer) |
| 14:24:45 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 14:25:20 | → | CrunchyFlakes joins (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) |
| 14:26:33 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 14:27:56 | <cheater> | it's showing me everything in order |
| 14:28:12 | × | murgeljm quits (~murgeljm@APN-122-12-44-gprs.simobil.net) (Remote host closed the connection) |
| 14:28:19 | <cheater> | i think you just slipped up and admitted to being a time lord |
| 14:29:00 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 14:30:45 | × | CrunchyFlakes quits (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) (Read error: Connection reset by peer) |
| 14:31:05 | → | CrunchyFlakes joins (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) |
| 14:32:31 | <haskellbridge> | <sm> It gets confused again every time I try to fix it by clearing cache and reloading/restarting. I'll hope that the next bridge restart will fix it.. but probably not.. |
| 14:33:00 | <cheater> | hehe |
| 14:33:05 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 14:33:15 | <Rembane> | Maybe the previous will? |
| 14:33:45 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 14:33:53 | <cheater> | lmao |
| 14:34:04 | <cheater> | see, the pragmatic developer would have bought this and called it a day https://www.ebay.co.uk/itm/296479710435 |
| 14:34:42 | <cheater> | sure, it won't give you five nines |
| 14:34:45 | <cheater> | but it'll give you nine fives |
| 14:38:06 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 14:38:22 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 14:38:55 | EvanR_ | is now known as EvanR |
| 14:41:03 | → | killy joins (~killy@staticline-31-183-181-204.toya.net.pl) |
| 14:42:43 | × | CrunchyFlakes quits (~CrunchyFl@ip-109-42-114-219.web.vodafone.de) (Ping timeout: 244 seconds) |
| 14:43:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 14:46:56 | <haskellbridge> | <Bowuigi> ski re:SRFI yeah, that is where I got the idea from. It probably works better for Lisp than it does for Haskell but it can't hurt to try |
| 14:51:52 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 14:55:03 | → | ash3en joins (~Thunderbi@89.246.174.164) |
| 14:55:24 | × | ash3en quits (~Thunderbi@89.246.174.164) (Client Quit) |
| 14:55:38 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 255 seconds) |
| 14:56:24 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 14:57:19 | → | ash3en joins (~Thunderbi@89.246.174.164) |
| 14:57:23 | × | ash3en quits (~Thunderbi@89.246.174.164) (Client Quit) |
| 14:59:37 | → | athan joins (~athan@2600:382:1f2b:73cc:7880:341e:685d:d35b) |
| 15:03:24 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 260 seconds) |
| 15:03:55 | <zfnmxt> | I'm having issues trying to capture writes to "stdout" in a "Tasty" test using a function "testIO": https://www.pastery.net/cvyegm/ Specifically, the issue is that the captured output is sometimes polluted with output to "stdout" from "Tasty". Putting a delay just before "testIO" is executed (like doing something stupid like pure $ sum [0..99999]) fixes it, but I was hoping there's a more robust approach. I tried flushing "stdout" at the start of "stdout"... |
| 15:04:00 | <zfnmxt> | ... as well as setting "stdout" to "NoBuffering" using "hSetBuffering", but neither worked. Any tips/ideas? |
| 15:05:53 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 15:09:13 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:10:13 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 15:14:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 15:15:13 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
| 15:16:12 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 15:16:12 | ChanServ | sets mode +v haskellbridge |
| 15:17:37 | → | rosco joins (~rosco@175.136.158.234) |
| 15:20:17 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:23:11 | <dmj`> | I will say, claude.ai is nice from FromJSON instances |
| 15:23:15 | <dmj`> | for* |
| 15:23:36 | <cheater> | did claude.ai write that message :) |
| 15:23:46 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 15:27:26 | × | califax quits (~califax@user/califx) (Read error: Connection reset by peer) |
| 15:28:50 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 15:28:55 | → | califax joins (~califax@user/califx) |
| 15:29:28 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
| 15:29:47 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 15:33:44 | → | spew joins (~spew@201.141.99.170) |
| 15:34:04 | <mauke> | for the record, I do not agree with this "having morals (or talking about morals) is bad manners" stance |
| 15:36:12 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 15:36:36 | <dmj`> | cheater: yes, I did |
| 15:38:46 | <cheater> | mauke: appreciate the clarification |
| 15:38:59 | <cheater> | dmj`: appreciate the qualification |
| 15:40:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:40:15 | <dmj`> | cheater: we should let AIs run our IRC accounts, trained on log files |
| 15:40:50 | × | srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
| 15:41:10 | → | raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
| 15:41:47 | → | hiecaq joins (~hiecaq@user/hiecaq) |
| 15:44:58 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 15:48:15 | <dmj`> | "did you try removing the type signature and letting GHC infer it for you" |
| 15:49:20 | <glguy> | deriving FromJSON via ClaudeAI |
| 15:54:39 | <dmj`> | what could possibly go wrong |
| 15:54:45 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 15:55:10 | → | athan_ joins (~athan@2600:382:1f2b:73cc:7880:341e:685d:d35b) |
| 15:55:19 | × | athan quits (~athan@2600:382:1f2b:73cc:7880:341e:685d:d35b) (Ping timeout: 260 seconds) |
| 15:55:35 | × | sp1ff quits (~user@c-73-11-70-111.hsd1.wa.comcast.net) (Remote host closed the connection) |
| 15:55:36 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:58:14 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 15:58:28 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 16:00:25 | → | eron joins (~eron@179.98.5.91) |
| 16:00:38 | ← | eron parts (~eron@179.98.5.91) () |
| 16:00:48 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 16:01:31 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 16:03:40 | → | simendsjo joins (~user@84.211.91.108) |
| 16:04:36 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 16:06:18 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 16:11:06 | <haskellbridge> | <thirdofmay18081814goya> in Haskell we distinguish between normal types and type classes because of the time complexity of type inference in higher universes right? |
| 16:11:24 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:11:33 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 16:14:10 | × | aforemny_ quits (~aforemny@2001:9e8:6cde:3200:4b2a:73ea:fa78:d732) (Ping timeout: 244 seconds) |
| 16:14:21 | <ski> | no |
| 16:14:48 | → | aforemny joins (~aforemny@2001:9e8:6ce5:1500:20e4:f28d:e540:f289) |
| 16:14:53 | <ski> | type classes are properties/predicates/relations on types |
| 16:15:00 | <mreh> | do orphan just instances not work? compiler is warning me and the instance doesn't seem to be recognised |
| 16:15:14 | <mreh> | s/just instances/instances just |
| 16:15:34 | <haskellbridge> | <thirdofmay18081814goya> ski: it's not immediately obvious why then we need a separate representation instead of making them a higher-order type |
| 16:16:20 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 16:16:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:16:25 | <monochrom> | Coherence. |
| 16:16:49 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 16:17:27 | <ski> | required instances of type classes are automatically synthesized from instances and instance "rules" (instances with contexts) at the top-level. and there's a uniqueness of this synthesis, guaranteeing that you don't get different behaviour for an instance of a particular type, in different contexts, in the same program |
| 16:18:05 | <monochrom> | If my binary search tree functions are typed "insert :: (a -> a -> Ordering) -> a -> BST a -> BST a" and "isMember :: (a -> a -> Ordering) -> a -> BST a -> Bool", then it is prone to the user error that they use one comparator for insert and a different one for isMember. |
| 16:18:06 | <ski> | (assuming you don't use a few particular language extensions) |
| 16:18:51 | <haskellbridge> | <thirdofmay18081814goya> monochrom: hm of what sort of thing is this a property of? is this a property of lambda calculi ? or of set of inference/rewrite rules? |
| 16:19:34 | <ski> | .. you can simulate ML functors generating a structure with an abstract type, by returning a record of operations whose types are collectively existentially quantified |
| 16:19:35 | <monochrom> | I don't understand the question. Under my misinterpretation, answer: Human fallibility? |
| 16:20:25 | <ski> | thirdofmay18081814goya : plain lambda calculi don't tend to have type classes |
| 16:21:18 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:21:35 | <haskellbridge> | <thirdofmay18081814goya> hm i will meditate on these answers ty |
| 16:22:02 | <mreh> | is it possible to add a derived instance to a newtype that I haven't defined? |
| 16:22:19 | <ski> | (something like `makeBSTStructure :: (a -> a -> Ordering) -> exists bst. (a -> bst -> bst,a -> bst -> Bool,..a..bst..)') |
| 16:22:32 | <Rembane> | thirdofmay18081814goya: Would this paper perhaps give some food for meditations? https://www.researchgate.net/profile/Stephen-Blott/publication/2710954_How_to_Make_Ad-Hoc_Polymorphism_Less_Ad_Hoc/links/553e01f20cf2fbfe509b81f8/How-to-Make-Ad-Hoc-Polymorphism-Less-Ad-Hoc.pdf |
| 16:22:45 | <ski> | mreh : `StandaloneNewtypeDeriving' ? |
| 16:23:14 | <haskellbridge> | <thirdofmay18081814goya> Rembane: niiice ty! |
| 16:23:25 | <ski> | er, s/Newtype// |
| 16:23:41 | <mreh> | ski: yes, but I'm still getting a `No instance` compiler error |
| 16:23:55 | <mreh> | GeneralizedNewtypeDeriving + StandaloneDeriving |
| 16:24:15 | <ski> | is the `newtype' exported abstractly ? |
| 16:24:17 | <mreh> | also the compiler is warning about an orphan instance, so I'm not sure if I'm wrong |
| 16:24:40 | <mreh> | ski: you mean is the constructor visible? |
| 16:25:10 | <ski> | sure |
| 16:25:30 | <mreh> | It appears to be: https://hackage.haskell.org/package/reflex-0.9.3.0/docs/Reflex-PerformEvent-Base.html#t:PerformEventT |
| 16:25:47 | <mreh> | It's actually two levels of newtype nesting... |
| 16:26:00 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 16:26:10 | <mreh> | They possible missed a MonadAsyncException instance on the topmost one. |
| 16:26:25 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 16:26:51 | × | rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal) |
| 16:28:12 | ski | wouldn't know |
| 16:28:14 | × | killy quits (~killy@staticline-31-183-181-204.toya.net.pl) (Quit: leaving) |
| 16:28:31 | <ski> | ("Note that, despite the name, `PerformEventT' is not an instance of `MonadTrans'.") |
| 16:28:53 | <mreh> | Yeah... :\ |
| 16:29:05 | <ski> | you added a `deriving instance ...' declaration, yes ? |
| 16:29:23 | <mreh> | yeah, I added in my own module |
| 16:29:24 | <Leary> | thirdoftoolongtotype: It's basically a matter of `(->) :: Type -> (Type -> Type)` for manually-supplied requirements and `(=>) :: Constraint -> (Type -> Type)` (morally) for compiler-supplied requirements. What should `Int => ...` or `Num a -> ...` even mean, if they kind checked? Best that they just don't. |
| 16:30:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:30:41 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 16:31:06 | <ski> | (it's not clear what you had in mind, with "higher universes" or "set of inference/rewrite rules") |
| 16:31:44 | <mreh> | Anyway, I'm making life hard for myself so I can integrate GPipe's ContextT into the transformer stack of my reflex app and have somewhat elegant code. |
| 16:36:10 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 16:37:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:37:55 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6) |
| 16:40:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:40:48 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
| 16:40:53 | → | tomboy65 joins (~tomboy64@user/tomboy64) |
| 16:42:18 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 16:42:44 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 16:44:34 | × | raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
| 16:49:30 | → | Guest17 joins (~Guest17@210.176.229.129) |
| 16:52:51 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:57:57 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 16:58:21 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 16:58:53 | → | Inst_ joins (~Inst@user/Inst) |
| 17:01:09 | × | Inst quits (~Inst@user/Inst) (Ping timeout: 248 seconds) |
| 17:05:09 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:06:54 | × | itaipu quits (~itaipu@168.121.99.162) (Ping timeout: 276 seconds) |
| 17:07:50 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 17:08:39 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:11:15 | Inst_ | is now known as Inst |
| 17:13:10 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 17:13:29 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 17:17:25 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:18:24 | × | ZharMeny quits (~ZharMeny@user/ZharMeny) (Ping timeout: 272 seconds) |
| 17:21:15 | → | itaipu joins (~itaipu@168.121.99.111) |
| 17:23:35 | → | ZharMeny joins (~ZharMeny@user/ZharMeny) |
| 17:24:26 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:26:56 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 17:29:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 17:30:33 | → | Megant joins (megant@user/megant) |
| 17:31:46 | → | ash3en joins (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) |
| 17:32:34 | → | ft joins (~ft@p4fc2a393.dip0.t-ipconnect.de) |
| 17:32:54 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds) |
| 17:33:42 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:33:56 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 17:37:48 | <cheater> | having T and not being Trans should be forbidden |
| 17:38:33 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:40:13 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:44:51 | × | ash3en quits (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) (Quit: ash3en) |
| 17:45:14 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 17:45:28 | → | ash3en joins (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) |
| 17:48:22 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 17:50:00 | <mauke> | haha |
| 17:51:18 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 17:51:20 | <EvanR> | PerformEvent<T> |
| 17:51:28 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 17:54:08 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 17:54:34 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:57:36 | × | athan_ quits (~athan@2600:382:1f2b:73cc:7880:341e:685d:d35b) (Ping timeout: 276 seconds) |
| 17:58:35 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 17:59:57 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:01:12 | ski | . o O ( `PerformOdd' ) |
| 18:03:43 | × | Guest17 quits (~Guest17@210.176.229.129) (Quit: Client closed) |
| 18:06:41 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 18:07:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 18:09:34 | <d34df00d> | Leary: `Num a ->` is easy — it's a user-supplied dictionary of the `Num` methods. |
| 18:10:22 | <d34df00d> | `Int =>` can be interpreted as «find some int a fill it in here», which doesn't make much sense for ints, but could be more interesting for types that only have (at most) one inhabitant and that are non-trivial. |
| 18:11:05 | <monochrom> | :( |
| 18:11:50 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 18:13:02 | <EvanR> | haskell doesn't "find some dictionary" it finds THE dictionary and slaps you around with a large trout if there's more than one option |
| 18:13:20 | <EvanR> | I'm not sure how you can do that with Int |
| 18:17:09 | <dolio> | There would have to be a declaration somewhere of which Int is the Int. |
| 18:18:16 | <geekosaur> | right, I was just thinking "so how is this not `Monoid`, with all the problems that come from needing to `newtype` for different `Monoid`s"? |
| 18:18:21 | <tomsmeding> | I didn't follow the discussion, but is -XImplicitParameters relevant here? |
| 18:18:40 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:18:41 | <dolio> | Or you would have to only work with a local assumption that there is a the Int, which is basically ImplicitParameters. |
| 18:18:45 | <geekosaur> | wiring that into ghc seems like a non-scalable and generally unfortunate option |
| 18:20:42 | <monochrom> | IMO this is all over-engineering where "Num a ->" and "Int =>" are simply errors but one goes out of their ways to rationalize legalizing them. |
| 18:21:15 | <geekosaur> | agreed |
| 18:21:47 | <geekosaur> | but someone somewhere will have their pet use case |
| 18:21:54 | × | ash3en quits (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) (Ping timeout: 260 seconds) |
| 18:22:26 | <EvanR> | yet another technology which solves the already working solution of pass an Int in to function xD |
| 18:22:34 | <Leary> | d34df00d: These are /possible/ choices, but they aren't /good/ choices. If you really want, you can easily simulate them both anyway. |
| 18:23:10 | <Leary> | (`Dict (Num a)`; `class Choice a where choice :: a`) |
| 18:23:30 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 18:23:58 | <dolio> | Yeah, the other problem is there's no mechanism for referring to the Int, because it isn't a class. |
| 18:25:19 | <dolio> | When you define e.g. Default, you make up a name for referring to the value. |
| 18:25:44 | <dolio> | Or when you use an implicit parameter, it comes with a name. |
| 18:26:28 | <probie> | You could probably have `(T :: Type) => ...` as a claim that T is inhabited. Since you can't refer to the inhabitant, it doesn't matter which one is chosen |
| 18:26:59 | <EvanR> | it's so implicit that you don't even have to write where it's used |
| 18:27:04 | <EvanR> | haskell decides where it is used for you |
| 18:27:10 | <d34df00d> | EvanR: hence "have (at most) one inhabitant" |
| 18:27:21 | <d34df00d> | Then _any_ dictionary would be _the_ dictionary. |
| 18:27:42 | <EvanR> | I was responding to your characterization of that as "is more interesting in case there is at most 1 inhabitant" implying it's fine to make no sense sometimes xD |
| 18:27:46 | <EvanR> | unlike typeclasses |
| 18:28:13 | <EvanR> | which always make sense in that respect |
| 18:29:31 | → | rvalue- joins (~rvalue@user/rvalue) |
| 18:29:32 | × | leah2 quits (~leah@vuxu.org) (Ping timeout: 244 seconds) |
| 18:30:04 | <d34df00d> | I'm curious how to combine coherence with more liberal interpretation of `Foo =>`. |
| 18:30:05 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds) |
| 18:30:39 | <d34df00d> | That'd allow combining all^W a reasonable set of the nice features of classes a-la-Idris with coherence properties of Haskell ones. |
| 18:31:30 | <d34df00d> | probie: I wouldn't want to mix the notion of implicit auto-searched arguments with the notion of erasure/irrelevance/etc. |
| 18:32:35 | <EvanR> | since you can't refer to the implicit dictionary, it might serve a purpose as a compile time logic check |
| 18:33:09 | <EvanR> | Foo is a proposition defined somewhere, and the compiler won't compile this function/term until it can (automatically) prove Foo, but that's it |
| 18:33:21 | → | leah2 joins (~leah@vuxu.org) |
| 18:33:30 | <d34df00d> | Why can't I refer to it? |
| 18:33:38 | <EvanR> | because it has no name? |
| 18:33:43 | rvalue- | is now known as rvalue |
| 18:33:48 | <d34df00d> | Also, are we talking about actuall haskell or some hypothetical language? |
| 18:34:26 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:34:28 | <d34df00d> | (or not-hypothetical-but-not-haskell, that's also always an option!) |
| 18:36:08 | → | ash3en joins (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) |
| 18:36:39 | <monochrom> | Clearly "Int =>" is hypothetical. |
| 18:38:57 | <d34df00d> | In this case I claim that a language where we have such auto arguments, and were it's a sugar for `{auto _ : Foo} ->` (note the underscore) is practical. |
| 18:39:15 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 18:39:21 | <d34df00d> | Then, we can also have `{auto name : Foo} ->`, which also makes sense. |
| 18:40:24 | <d34df00d> | Hence, given `nameful : {auto n : Foo} -> ...; nameful = .. use n ...` we can have `nameless : Foo => ...; nameless = nameful`, and that's all still practical. |
| 18:41:51 | <EvanR> | ok yeah then it has a name |
| 18:42:21 | <EvanR> | but I still like my previous joke that the implicit argment also gets used somewhere implicitly so you don't have to type anything! |
| 18:42:28 | × | ash3en quits (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) (Ping timeout: 245 seconds) |
| 18:43:59 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 18:46:26 | <d34df00d> | yay extensionality! |
| 18:47:49 | <probie> | Haskell is already a bit of a mess. How many inhabitants does `() -> ()` have? |
| 18:48:29 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
| 18:49:38 | <probie> | I think for any of this to make sense, we need the language to be total, otherwise `auto` can just always pick `let x = x in x` |
| 18:49:40 | <d34df00d> | Can I plead the fifth? |
| 18:50:13 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:53:41 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 18:54:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 18:56:11 | <sprout> | probie: how many? |
| 18:57:43 | <dolio> | At least 4. |
| 18:58:51 | <sprout> | superficially, I would assume 5 |
| 18:59:03 | <sprout> | but no idea |
| 18:59:40 | <geekosaur> | I count 4, but I'm probably missing a possibility |
| 18:59:44 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 272 seconds) |
| 19:00:21 | <sprout> | the four combination of bottom and unit in a function type, and bottom itself. so I counted five |
| 19:00:32 | <sprout> | no idea whether that is anything near correct though |
| 19:00:37 | <geekosaur> | ah, right, that's the one I missed |
| 19:01:05 | <EvanR> | 1 |
| 19:01:24 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 260 seconds) |
| 19:01:32 | <EvanR> | or infinity |
| 19:01:54 | <sprout> | elaborate! |
| 19:02:05 | <EvanR> | if the answer or 4 or 5 that is so ripe for a star trek reference about lights |
| 19:02:35 | <EvanR> | I'll ask you one more time. How many inhabitants of () -> () do you see |
| 19:04:28 | <sprout> | well, okay, infinity makes sense too. we'ld need to define inhabitant for haskell properly first |
| 19:05:39 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:06:07 | <mauke> | > length [error (show n) | n <- [0 ..]] |
| 19:06:13 | <lambdabot> | mueval-core: Time limit exceeded |
| 19:07:05 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:07:46 | <dolio> | The function must be monotone. |
| 19:07:59 | <mauke> | assuming all bottoms are equal, what's the 5th one? |
| 19:08:17 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 19:08:24 | <dolio> | It's the one where people forgot the function must be monotone. :) |
| 19:08:47 | <mauke> | like, boring? |
| 19:10:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 19:10:58 | <sprout> | only democracy can save us here. 1, 4, 5, or inf |
| 19:11:21 | <EvanR> | the 1 4 5 infinity rule |
| 19:11:58 | <mauke> | undefined, const undefined, id, const () |
| 19:12:19 | <EvanR> | \() -> bottom |
| 19:12:53 | <d34df00d> | > fix error |
| 19:12:54 | <lambdabot> | "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex... |
| 19:12:55 | <mauke> | that's const undefined |
| 19:13:10 | <EvanR> | it's observably the same |
| 19:13:22 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds) |
| 19:14:38 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 19:21:25 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:26:24 | → | ash3en joins (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) |
| 19:26:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 19:28:57 | × | Me-me quits (~me-me@user/me-me) (Remote host closed the connection) |
| 19:29:37 | → | Me-me joins (~me-me@kc.randomserver.name) |
| 19:32:12 | → | pwug joins (~pwug@user/pwug) |
| 19:33:57 | <Leary> | mauke: It's `\x -> unsafePerformIO ((evaluate x $> undefined) `catch` \SomeException{} -> pure ())`, duh. |
| 19:37:07 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:37:11 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:38:03 | → | athan joins (~athan@syn-098-153-145-140.biz.spectrum.com) |
| 19:38:55 | <geekosaur> | is that even safe in unsafePerformIO? |
| 19:39:53 | <Leary> | % magic () |
| 19:39:54 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:29:51 in interactive:Ghci7 |
| 19:39:57 | <Leary> | % magic undefined |
| 19:39:57 | <yahb2> | () |
| 19:40:08 | <Leary> | Safe and pure! |
| 19:40:23 | <Leary> | Good enough for your average "Haskell" library. |
| 19:40:33 | <Leary> | (though I was mostly joking) |
| 19:42:02 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 19:42:35 | <mauke> | that technically violates my stated assumptions |
| 19:42:36 | × | athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Ping timeout: 246 seconds) |
| 19:44:13 | <mauke> | % magic (last (repeat ())) |
| 19:44:15 | <yahb2> | <timeout> |
| 19:45:45 | <dolio> | At least in the version of that supported by the Haskell report, there is essentially no guarantee about what that term does. |
| 19:46:29 | <dolio> | So a compiler is free to choose on of the actual semantic values. |
| 19:46:34 | <dolio> | One of, even. |
| 19:51:06 | → | CiaoSen joins (~Jura@2a05:5800:206:9700:ca4b:d6ff:fec1:99da) |
| 19:51:21 | × | simendsjo quits (~user@84.211.91.108) (Ping timeout: 246 seconds) |
| 19:52:59 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:53:45 | <dmj`> | wonder if we had a whole program optimizer if we could get away with a conservative GC, since fusion / unboxing would be global across deps. |
| 19:54:06 | <probie> | sprout: I'd have claimed 4; undefined, one of (\_ -> undefined, \() -> undefined), \() -> () and \_ -> (). But my point was that it wasn't 1 |
| 19:54:59 | <haskellbridge> | <thirdofmay18081814goya> type inference is performed only on terms with no free variables, right? where all subterms are annotated at least with a type variable? |
| 19:58:07 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 19:58:26 | → | athan joins (~athan@2600:382:2c2a:786c:a62e:28bc:97b8:21a6) |
| 19:58:28 | <ski> | that would make it hard to do type inference on e.g. `\x -> x'. or `\b -> not b || b' |
| 19:58:45 | <ski> | (note that the latter has `not' and `(||)' as free variables) |
| 20:01:02 | <ski> | thirdofmay18081814goya : perhaps "Polymorphic Type Inference" by Michael I. Schwartzbach in 1995-03 at <https://cs.au.dk/~amoeller/mis/typeinf.pdf> could be interesting |
| 20:01:22 | <mauke> | :t \b -> ?or b (?not b) |
| 20:01:23 | <lambdabot> | (?not::t1 -> t2, ?or::t1 -> t2 -> t3) => t1 -> t3 |
| 20:08:47 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:10:51 | × | ash3en quits (~Thunderbi@2a02:3100:7e70:9c00:d19d:5a51:2f62:3ca4) (Quit: ash3en) |
| 20:12:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:13:44 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 20:14:40 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 20:15:22 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 20:16:09 | <haskellbridge> | <thirdofmay18081814goya> ski: this made me realize i have no clue what i mean by bound/free ty |
| 20:17:38 | <haskellbridge> | <thirdofmay18081814goya> lambda calculi don't have those |
| 20:18:08 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 20:18:32 | <haskellbridge> | <thirdofmay18081814goya> or well, i would have separated variable symbols from those of functions and constants |
| 20:18:49 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 20:18:57 | <haskellbridge> | <thirdofmay18081814goya> only variable symbols having a notion of bound/unbound defined |
| 20:19:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:19:23 | → | sourcetarius joins (~sourcetar@user/sourcetarius) |
| 20:19:47 | × | pwug quits (~pwug@user/pwug) (Remote host closed the connection) |
| 20:20:07 | <haskellbridge> | <thirdofmay18081814goya> (this is dumb ignore it) |
| 20:24:34 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:24:58 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 20:25:39 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 20:29:42 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 20:36:26 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:37:18 | → | pwug joins (~pwug@user/pwug) |
| 20:40:21 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:40:33 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 20:41:14 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 20:42:21 | × | pwug quits (~pwug@user/pwug) (Remote host closed the connection) |
| 20:45:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 20:47:21 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 20:50:01 | <tomsmeding> | thirdofmay: type systems typically define a judgement Γ |- t : τ, where Γ is the environment in which this type should be checked |
| 20:50:18 | <tomsmeding> | that allows you to _check_ open terms just fine |
| 20:50:42 | <tomsmeding> | type inference is mostly just performing type checking symbolically and seeing whether you can solve the resulting constraint system |
| 20:50:49 | × | foul_owl quits (~kerry@157.97.134.164) (Ping timeout: 245 seconds) |
| 20:50:56 | <tomsmeding> | (possibly formulated as a more efficient algorithm than doing literally that) |
| 20:54:53 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 20:55:35 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 20:56:07 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:58:13 | <tomsmeding> | mauke: now I'm sad that `?or` is not a thing |
| 21:00:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:01:38 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:02:19 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:04:14 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 21:04:14 | <mauke> | same |
| 21:05:13 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:05:20 | → | foul_owl joins (~kerry@174-21-143-250.tukw.qwest.net) |
| 21:05:54 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:09:08 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:09:50 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:10:24 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: so just to be sure, any term that will be type-checked must be well-typed first, right? |
| 21:10:51 | <haskellbridge> | <thirdofmay18081814goya> or is well-typing the result of type inference? |
| 21:11:02 | × | michalz quits (~michalz@185.246.207.200) (Remote host closed the connection) |
| 21:11:53 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:12:31 | <monochrom> | Not sure if that is technical or philosophical. |
| 21:12:53 | <tomsmeding> | type _checking_ takes an untyped bit of syntax and deduces the type of that term, if that can be done consistently. The proof of that result also gives types of the subterms |
| 21:13:15 | <tomsmeding> | type _inference_ is just beefed-up type checking that can handle some types being unspecified |
| 21:13:21 | <monochrom> | Iff a term passes type checking, it is well-typed. Iff type inference succeeds for a term, it is well-typed. |
| 21:13:41 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: hm I see ty |
| 21:13:59 | <haskellbridge> | <thirdofmay18081814goya> monochrom: right makes sense |
| 21:16:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:19:11 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:21:45 | <haskellbridge> | <thirdofmay18081814goya> right right, type checking consists of taking a typing judgment and establishing whether there exists a corresponding derivation |
| 21:23:21 | <haskellbridge> | <thirdofmay18081814goya> and type inference takes a term and a context and produces a typing judgment |
| 21:24:33 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:25:14 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:26:14 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 21:27:42 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:32:15 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 21:33:24 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 21:41:25 | <tomsmeding> | thirdofmay: not sure that's an accurate description of "type inference" |
| 21:42:03 | <tomsmeding> | it's more than that: with type inference, in addition to not needing to annotate the top-level type, one typically expects to need to annotate less types _inside_ the term too |
| 21:42:30 | <tomsmeding> | e.g. without type inference, in STLC, lambdas need their argument to be annotated |
| 21:43:07 | <tomsmeding> | with type inference, I would expect that to be unnecessary (if the type can be inferred in some other way); in this case, for this subexpression, it is an element of Γ that is unknown, not the result type |
| 21:43:28 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:44:24 | × | athan quits (~athan@2600:382:2c2a:786c:a62e:28bc:97b8:21a6) (Ping timeout: 246 seconds) |
| 21:45:38 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:46:18 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: maybe a recursive definition that begins at the first untyped term in the context, for a given context and untyped term? |
| 21:46:19 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:47:32 | <tomsmeding> | but in my example, it's not a term that is untyped, it's a _binder_ that's untyped |
| 21:48:08 | <tomsmeding> | without type inference, in STLC, '\x:T -> x' can be checked, assuming that T is a valid type |
| 21:48:10 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 21:48:43 | <tomsmeding> | actually, let's make that the polymorphic lambda calculus, not STLC |
| 21:49:01 | <tomsmeding> | then with type inference, I would expect '\x -> x' to be well-typed by the type checker (which also does inference) |
| 21:49:10 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: "t" or "x" in "Λt" or "λx"? |
| 21:49:15 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:49:22 | <tomsmeding> | indeed |
| 21:49:27 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 21:49:45 | <tomsmeding> | in neither case am I annotating the type of the _term_ x, or the term '\x:T -> x' |
| 21:49:56 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:50:20 | <tomsmeding> | and yet, () |- (\x:T -> x) : T -> T can be checked without type inference! |
| 21:51:33 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 21:51:39 | <tomsmeding> | it's a bit slippery to try to assign mathematically rigorous definitions to the words "type checking" and "type inference", because although they have fairly specific conventional meanings, these meanings are a bit fluid in practice, especially when considering type checkers for various kinds of languages |
| 21:52:27 | × | CiaoSen quits (~Jura@2a05:5800:206:9700:ca4b:d6ff:fec1:99da) (Ping timeout: 246 seconds) |
| 21:52:58 | <tomsmeding> | i.e. for the standard family of lambda calculi it's all quite clear, but what is the boundary between a type checker and a type inferencer for a logic programming language? |
| 21:53:11 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 21:53:15 | <monochrom> | I don't think we even have a rigorous definition of "type". :) |
| 21:53:33 | <tomsmeding> | also that :p |
| 21:53:52 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 21:54:00 | <monochrom> | We have a social consensus. We also have a social consensus on horses, white horses, and programming languages. |
| 21:54:39 | <tomsmeding> | and because lambda calculi tend to be studied by mathematically inclined people, the naming conventions tend to be fairly mathematically principled |
| 21:54:52 | <monochrom> | No one will define "white horse", "programming language" rigorously. And yet there is no problem. |
| 21:55:08 | <tomsmeding> | famous example of this kind of situation: what does "pure" mean |
| 21:55:22 | <tomsmeding> | (though that one does cause miscommunications sometimes) |
| 21:55:23 | <ski> | "what is the boundary between a type checker and a type inferencer for a logic programming language?" -- what deviation do you have in mind ? |
| 21:56:13 | <tomsmeding> | ski: do you need to annotate logical variables (metavariables? I don't know this terminology, sorry)? |
| 21:56:17 | <ski> | @where purely-functional |
| 21:56:17 | <lambdabot> | "What is a Purely Functional Language?" by Amr Sabry in 1993-01 at <https://www.cs.indiana.edu/~sabry/papers/purelyFunctional.ps> |
| 21:56:22 | <tomsmeding> | i.e. local variables on a right-hand side |
| 21:56:54 | <tomsmeding> | if you don't, does that mean that you have type inference going on? |
| 21:57:02 | <monochrom> | . o O ( A purely functional language is not a functional language haha ) |
| 21:57:05 | <haskellbridge> | <thirdofmay18081814goya> am processing |
| 21:57:24 | <ski> | traditionally (i.e. Prolog) there's no explicit binders (like quantifiers). Mercury and lambdaProlog does have explicit quantifiers, though |
| 21:57:36 | <tomsmeding> | right |
| 21:57:44 | <tomsmeding> | but doesn't that prove my point? |
| 21:57:52 | <ski> | Mercury does type inference, as does lambdaProlog |
| 21:58:05 | <ski> | tomsmeding : dunno .. since i didn't get what your point was |
| 21:58:22 | <tomsmeding> | ski: fair, I'm having trouble articulating it :p |
| 21:59:08 | <tomsmeding> | say, in Prolog, if you have an implicitly quantified variable on the right-hand side: f(X) :- X = Y, Y = foo. or something |
| 21:59:14 | <tomsmeding> | (I forget how prolog works, I hope that's syntax) |
| 21:59:15 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:59:26 | <tomsmeding> | in prolog you annotate nothing of course |
| 21:59:41 | <tomsmeding> | but does that fact (that you annotate nothing) mean that there is not only type checking going on, but also type inference? |
| 21:59:45 | <tomsmeding> | or is that a nonsense question |
| 21:59:52 | <ski> | (they also allow implicit quantification, if you're fine with universally quantifying clauses at the outermost level (cf. implicit universal quantification at the outermost level of type signatures, in Haskell)) |
| 22:00:20 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:00:27 | <ski> | in Mercury, there's type inference, for that clause, yes |
| 22:00:48 | <ski> | in Prolog .. well, it's not statically typed, so neither type inference nor type checking |
| 22:00:59 | <tomsmeding> | hm |
| 22:01:23 | <tomsmeding> | monochrom: you said that "type" isn't even rigorously defined, did you have a good "weird language" in mind here :p |
| 22:01:40 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: i think a formal statement that resolves this would be: "\x:T -> x" is not a typing judgment and can only be type-checked by being such a typing judgment, so the only possibility for producing a well-typed program must be to first run type inference to produce "{} |- \x:T -> x : T -> T" |
| 22:01:45 | <haskellbridge> | <thirdofmay18081814goya> no? |
| 22:01:50 | <monochrom> | Does COBOL count? >:) |
| 22:01:54 | <ski> | the interpretation of that clause, in Prolog (borrowing Mercury syntax to explicate the implicit quantification), is |
| 22:02:11 | <ski> | all [X,Y] ( f(X) :- X = Y,Y = foo ). |
| 22:02:18 | <ski> | while, in Mercury, it would be |
| 22:02:24 | <monochrom> | I haven't seen a weird language. People have a surprisingly good and uncontrovserial consensus. |
| 22:02:32 | <tomsmeding> | thirdofmay: '\x:T -> x' is a _term_, and a term is not the same as a judgement, indeed |
| 22:02:34 | <ski> | all [X] ( f(X) :- some [Y] ( X = Y,Y = foo ) ). |
| 22:02:51 | <ski> | which is of course logically equivalent to the former |
| 22:02:57 | <sprout> | type has a lot of competing possible meanings. abstract label as in type theory, a set as in set theory, a catagory, or something corresponding to something in the operational semantics |
| 22:03:05 | <ski> | .. but this difference sometimes matters |
| 22:03:12 | <monochrom> | OK, one more try. Does set theory count? >:D |
| 22:03:20 | <sprout> | and that are only 4 of the top of my head |
| 22:03:40 | → | CiaoSen joins (~Jura@2a05:5800:206:9700:ca4b:d6ff:fec1:99da) |
| 22:03:49 | <ski> | (.. although, in some cases, Prolog behaves as if it does the latter. but this is outside of the core theory of plain Horn clauses) |
| 22:03:58 | <sprout> | ah, logical proposition too. let's not foget curry howard |
| 22:04:07 | <sprout> | *forget |
| 22:04:23 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: hm but then where is the problem? |
| 22:04:34 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 22:05:04 | <haskellbridge> | <thirdofmay18081814goya> if we want a program that takes a partially annotated context and produces a well-typed context or the proposition that it can't be typed, we have all we need no? |
| 22:05:13 | <sprout> | hmm, don't lay in an awkward position on the couch maybe |
| 22:05:15 | <tomsmeding> | thirdofmay: at this point you'd first have to specify exactly what the inputs to, and outputs of, your type checking/inference algorithms are |
| 22:05:25 | sprout | sits up |
| 22:05:41 | <tomsmeding> | and at that point we're talking more about particular algorithms than about the overarching theory |
| 22:06:09 | <tomsmeding> | can the algorithm handle open terms? If so, does it take a list of variables with Maybe Type annotations, or something else? |
| 22:06:25 | <tomsmeding> | there's not a _whole_ lot of possible variations here |
| 22:06:29 | <haskellbridge> | <thirdofmay18081814goya> tomsmeding: a partially annotated context, so an ordered set containing either typing judgments or terms |
| 22:06:47 | <tomsmeding> | not typing jugements, pairs of a name and a type |
| 22:07:00 | <ski> | tomsmeding : Mercury borrows quite heavily from Haskell (and the MLs), in the type system |
| 22:07:00 | <haskellbridge> | <thirdofmay18081814goya> yeah that works better |
| 22:07:08 | <ski> | (it even has type classes ..) |
| 22:07:29 | <tomsmeding> | ok people I dunno right |
| 22:07:54 | <tomsmeding> | if you want to get this technical, write the definitions down rigorously in mathematical language, instead of in English |
| 22:08:03 | <tomsmeding> | then we can talk about technicalities |
| 22:08:17 | <tomsmeding> | also it's past midnight here, so I'm off to bed |
| 22:08:33 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 22:08:49 | <haskellbridge> | <thirdofmay18081814goya> ty for help |
| 22:09:14 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 22:09:23 | ski | . o O ( hypothetical judgements, parameterized judgments -- "Judgements as Types correspondence", a la LF (Twelf implementation) ) |
| 22:10:59 | <Rembane> | This twelf? https://twelf.org/ |
| 22:12:06 | <ski> | yes |
| 22:12:46 | <ski> | ("LF" stands for "Logical Framework") |
| 22:12:58 | <Rembane> | Thank you! |
| 22:13:27 | × | CiaoSen quits (~Jura@2a05:5800:206:9700:ca4b:d6ff:fec1:99da) (Ping timeout: 265 seconds) |
| 22:13:46 | <ski> | (Twelf is a dependently typed logic programming language) |
| 22:15:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:15:14 | <Rembane> | That seems incredibly powerful. Its syntax doesn't look too horrible too! |
| 22:16:05 | <ski> | it's for sure an interesting system |
| 22:16:23 | <haskellbridge> | <thirdofmay18081814goya> what would be some good use cases? |
| 22:16:34 | <haskellbridge> | <thirdofmay18081814goya> type checker for one |
| 22:18:45 | <ski> | focus on applications have more been on the side of specifying logical systems, or inference systems relating to programming languages (type systems, operational semantics), and then to prove theorems about these systems. but one can also write programs to compute things, (more or less) in the style of usual logic programming |
| 22:19:09 | → | meygerjos joins (~meygerjos@user/meygerjos) |
| 22:19:43 | <haskellbridge> | <thirdofmay18081814goya> neat |
| 22:19:45 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 22:20:17 | <ski> | lambdaProlog is a related system, sharing quite a bit of the background. it's not dependently typed, though, and it has (some) more facilities for more traditional programming |
| 22:20:56 | <ski> | it's especially nice for doing HOAS (Higher-Order Abstract Syntax) |
| 22:22:12 | <meygerjos> | i'm offering lessons in category theory https://meygerjos.com/ - also this is my first time on irc so lmk if i'm doing self-promotion in an inappropriate way |
| 22:22:25 | <ski> | the main features of it, over traditional Prolog (and not considering it being statically typed), are (a) lambda terms (with unification); (b0) implication goals; and (b1) universal quantification goals |
| 22:22:52 | <haskellbridge> | <thirdofmay18081814goya> ski: lambda terms is all i need |
| 22:23:05 | <haskellbridge> | <thirdofmay18081814goya> and "fix" |
| 22:23:06 | <ski> | even without (a), (b0) and (b1) can sometimes be quite nice, in logic programming. however, only (a) without (b0) and (b1) tends to be cumbersome |
| 22:26:13 | <ski> | (one could also argue that (b1) naturally calls for (a) in cases, and perhaps also that (b0) is less useful without (b1). with (b0) you can introduce local clauses, but to get lexical scoping, hiding a local definition, you also need (b1)) |
| 22:27:45 | <ski> | (.. of course, one could always introduce an "ad hoc" construction for lexical scoping of loca definitions .. but it's quite nicer for these to naturally fall out of already traditionally accepted logical connectives) |
| 22:28:41 | <ski> | oh .. and Twelf also have these (a),(b0),(b1) |
| 22:29:38 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 22:29:53 | → | Squared joins (~Square@user/square) |
| 22:30:20 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 22:30:41 | <ski> | thirdofmay18081814goya : however, the lambda terms they have are restricted, can't perform arbitrary computation (but you do get beta- and eta- conversion) in that there is e.g. no `case' construction on sum types. to compute stuff, you use predicates, as in Prolog |
| 22:30:49 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:31:46 | <ski> | (Mercury does have general computing functions .. but it doesn't have unification of functions, apart from the trivial cases when one or both sides are unconstrained variables) |
| 22:33:17 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 22:33:45 | <ski> | (oh, no `fix' in lambdaProlog,Twelf, either. (well-typed) lambda terms have terminating reduction) |
| 22:33:58 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 22:35:58 | × | Me-me quits (~me-me@kc.randomserver.name) (Changing host) |
| 22:35:58 | → | Me-me joins (~me-me@user/me-me) |
| 22:35:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 22:36:04 | × | tv quits (~tv@user/tv) (Ping timeout: 260 seconds) |
| 22:36:34 | × | oo_miguel quits (~Thunderbi@78.10.207.45) (Ping timeout: 252 seconds) |
| 22:37:12 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 22:37:54 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 22:43:17 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 22:44:15 | × | EvanR quits (~EvanR@user/evanr) (Quit: Leaving) |
| 22:46:36 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:48:55 | → | gentauro joins (~gentauro@user/gentauro) |
| 22:50:49 | <haskellbridge> | <thirdofmay18081814goya> i'm definitely looking at logic programming the second i have a chance |
| 22:50:51 | <haskellbridge> | <thirdofmay18081814goya> am very curious |
| 22:51:15 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 22:51:15 | × | acidjnk_new quits (~acidjnk@p200300d6e72cfb21181cd9b506c11910.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 22:52:33 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 22:53:15 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 22:56:09 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 246 seconds) |
| 22:56:13 | × | meygerjos quits (~meygerjos@user/meygerjos) (Ping timeout: 245 seconds) |
| 22:59:18 | → | athan joins (~athan@syn-098-153-145-140.biz.spectrum.com) |
| 22:59:58 | → | hgolden_ joins (~hgolden@static-198-44-129-51.cust.tzulo.com) |
| 23:02:05 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:02:45 | × | hgolden quits (~hgolden@169.150.203.10) (Ping timeout: 265 seconds) |
| 23:03:23 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:03:30 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 23:04:41 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:05:29 | → | k_hachig_ joins (~k_hachig@2607:fea8:351d:ef0:f026:cab8:26a0:8d01) |
| 23:06:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 23:13:38 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 23:14:20 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 23:15:40 | × | athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
| 23:16:54 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:17:16 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 23:17:59 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 23:21:14 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 23:21:55 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 23:22:17 | k_hachig_ | is now known as k_hachig |
| 23:25:27 | → | raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
| 23:27:39 | × | k_hachig quits (~k_hachig@2607:fea8:351d:ef0:f026:cab8:26a0:8d01) (Ping timeout: 246 seconds) |
| 23:33:39 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:36:28 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 23:37:10 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 23:39:00 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 23:40:51 | → | pavonia joins (~user@user/siracusa) |
| 23:43:59 | → | hgolden__ joins (~hgolden@23.162.40.28) |
| 23:44:31 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 264 seconds) |
| 23:46:12 | × | hgolden_ quits (~hgolden@static-198-44-129-51.cust.tzulo.com) (Ping timeout: 246 seconds) |
| 23:49:27 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:50:30 | → | EvanR joins (~EvanR@user/evanr) |
| 23:50:38 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 23:52:05 | <haskellbridge> | <thirdofmay18081814goya> huh, lean4 typeclass resolution is the result of logic programming research |
| 23:53:14 | <geekosaur> | I could see that, yes |
| 23:53:17 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 23:54:08 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 23:55:55 | × | raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 265 seconds) |
| 23:57:33 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Remote host closed the connection) |
| 23:58:01 | <geekosaur> | I'm pretty sure I could describe GHC's constraint resolution (and certain I could describe standard Haskell's typeclass resolution) in Prolog, but the state of the art in logic programming has changed a bit since the last time I did anything with Prolog |
| 23:58:15 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
All times are in UTC on 2024-09-09.