Logs: liberachat/#haskell
| 2025-12-30 14:54:46 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 2025-12-30 14:58:05 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 15:00:01 | × | Brumaire quits (~no@94.140.114.73) (Ping timeout: 264 seconds) |
| 2025-12-30 15:03:01 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-30 15:06:13 | × | ttybitnik quits (~ttybitnik@user/wolper) (Remote host closed the connection) |
| 2025-12-30 15:09:05 | × | aman quits (~aman@user/aman) (Ping timeout: 245 seconds) |
| 2025-12-30 15:10:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 15:17:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-30 15:22:14 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-12-30 15:26:07 | × | araujo quits (~araujo@216.73.163.51) (Ping timeout: 240 seconds) |
| 2025-12-30 15:27:59 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2025-12-30 15:30:50 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 15:32:13 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 246 seconds) |
| 2025-12-30 15:35:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-30 16:11:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 16:11:40 | × | tt1231607 quits (~tt1231@75.185.104.199) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-30 16:12:53 | → | tt1231607 joins (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) |
| 2025-12-30 16:16:03 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 2025-12-30 16:16:10 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-30 16:17:24 | jmcantrell_ | is now known as jmcantrell |
| 2025-12-30 16:25:48 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 16:26:13 | → | Pozyomka joins (~pyon@user/pyon) |
| 2025-12-30 16:31:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-30 16:41:53 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 16:46:38 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-30 16:51:21 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-30 16:54:10 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-30 16:56:09 | × | shaeto quits (~Shaeto@user/shaeto) (Ping timeout: 252 seconds) |
| 2025-12-30 16:58:47 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 17:02:31 | × | Inline quits (~User@cgn-195-14-221-74.nc.de) (Ping timeout: 246 seconds) |
| 2025-12-30 17:03:37 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-30 17:09:19 | → | wennefer0 joins (~wennefer0@user/wennefer0) |
| 2025-12-30 17:11:30 | → | aetepe joins (~aetepe@188.119.22.20) |
| 2025-12-30 17:12:20 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 17:13:40 | × | wennefer0 quits (~wennefer0@user/wennefer0) (Ping timeout: 245 seconds) |
| 2025-12-30 17:16:56 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-30 17:18:25 | → | janus joins (janus@user/janus) |
| 2025-12-30 17:19:06 | <janus> | is it correct that equality constraints can not be affected by quantified types? |
| 2025-12-30 17:19:26 | <janus> | like, if i have a program, and i want to run type inference on it |
| 2025-12-30 17:20:03 | <janus> | then, if it uses type class methods, to execute the program, i need to know which instace to pick |
| 2025-12-30 17:20:48 | <janus> | now, what i don't understand, is whether the parts of type inference that relate to quantifications can run last, or whether they must be interleaved with other type checking steps |
| 2025-12-30 17:22:41 | × | Buliarous quits (~gypsydang@46.232.210.139) (Remote host closed the connection) |
| 2025-12-30 17:23:43 | <janus> | intuitively, it seems that they could run last, since you can't e.g. use the knowledge that you have a certain set of instances to deduce what a type variable in a quantifier is |
| 2025-12-30 17:24:24 | <janus> | for example, if I have _only_ Eq Bool (and not Eq Int), and i see `a == b` I can't deduce that a and b must be Bool, IIRC |
| 2025-12-30 17:26:43 | <ncf> | well, of course not. Bool isn't the only type in the universe with an Eq instance |
| 2025-12-30 17:27:37 | <ncf> | what "parts of type inference that relate to quantifications" do you have in mind? |
| 2025-12-30 17:29:49 | × | jreicher quits (~user@user/jreicher) (Ping timeout: 246 seconds) |
| 2025-12-30 17:31:34 | → | jreicher joins (~user@user/jreicher) |
| 2025-12-30 17:32:19 | <c_wraith> | Broadly, Haskell types assume that a type variable might be instantiated at a type that you know nothing about when writing the code that uses it. |
| 2025-12-30 17:32:38 | <c_wraith> | Even when that's not actually possible, like when using DataKinds |
| 2025-12-30 17:34:22 | <c_wraith> | There are some some important technical simplifications enabled by that, but the real value is just having a single set of rules. |
| 2025-12-30 17:36:13 | <ncf> | as opposed to what? |
| 2025-12-30 17:36:54 | → | Buliarous joins (~gypsydang@46.232.210.139) |
| 2025-12-30 17:37:37 | → | weary-traveler joins (~user@user/user363627) |
| 2025-12-30 17:40:28 | <c_wraith> | As opposed to saying that the open world assumption only applies in some cases, and then needing to learn rules about when it does and when it doesn't. |
| 2025-12-30 17:40:59 | → | Brumaire joins (~no@94.140.114.73) |
| 2025-12-30 17:42:59 | <c_wraith> | (also, I think it would be literally impossible to have a compiler fully solve types without the open world assumption. I think you run into the halting problem.) |
| 2025-12-30 17:58:39 | <[exa]> | janus: if you only have single-parameter typeclasses as in THIH, the two-step approach should AFAIK work. On the other hand, with more advanced stuff (type families, MPTCs) you can essentially simulate functions on types, and you have to mix the checking with the typelevel computation. (E.g., type unification may depend on the "result" of a type family application.) |
| 2025-12-30 18:00:49 | <[exa]> | janus: for the former, I think there are even languages in the wild that do it that way -- after the type inference&checking is complete you can specialize ("monomorphize") stuff as you like (w.r.t. to the constraints), and you'll never hit issues. |
| 2025-12-30 18:03:45 | <[exa]> | janus: btw btw, for some definition of your "parts of type inference that relate to quantifications", THIH might actually qualify there as two-step. |
| 2025-12-30 18:03:50 | → | Everything joins (~Everythin@172-232-54-192.ip.linodeusercontent.com) |
| 2025-12-30 18:13:20 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 18:19:58 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-30 18:25:01 | × | DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2025-12-30 18:25:25 | → | DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK) |
| 2025-12-30 18:25:33 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-30 18:28:26 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 2025-12-30 18:28:45 | × | StrayB1ts quits (~straybits@d205-206-102-121.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 2025-12-30 18:30:33 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2025-12-30 19:00:58 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-30 19:04:00 | → | xstill_ joins (xstill@fimu/xstill) |
| 2025-12-30 19:04:21 | × | spew quits (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-30 19:06:42 | → | mmohammadi9812 joins (~mohammad@141.148.231.175) |
| 2025-12-30 19:11:13 | × | Brumaire quits (~no@94.140.114.73) (Ping timeout: 244 seconds) |
| 2025-12-30 19:11:59 | → | Brumaire joins (~no@94.140.114.73) |
| 2025-12-30 19:14:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 19:16:24 | × | Brumaire quits (~no@94.140.114.73) (Ping timeout: 252 seconds) |
| 2025-12-30 19:19:28 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-12-30 19:21:22 | → | Brumaire joins (~no@94.140.114.73) |
| 2025-12-30 19:26:54 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-12-30 19:30:36 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 19:35:09 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-30 19:35:35 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 2025-12-30 19:36:06 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-12-30 19:39:08 | → | corecaps joins (~quassel@user/corecaps) |
| 2025-12-30 19:46:15 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 19:50:45 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-30 19:54:24 | × | aetepe quits (~aetepe@188.119.22.20) (Ping timeout: 260 seconds) |
| 2025-12-30 19:54:54 | × | mmohammadi9812 quits (~mohammad@141.148.231.175) (Remote host closed the connection) |
| 2025-12-30 19:58:20 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-12-30 19:59:32 | → | pavonia joins (~user@user/siracusa) |
| 2025-12-30 20:03:56 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 20:09:01 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-30 20:15:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2025-12-30 20:16:43 | × | Everything quits (~Everythin@172-232-54-192.ip.linodeusercontent.com) (Quit: leaving) |
| 2025-12-30 20:20:12 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-12-30 20:30:01 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds) |
| 2025-12-30 20:31:33 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-12-30 20:42:20 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-12-30 20:43:05 | × | Brumaire quits (~no@94.140.114.73) (Ping timeout: 265 seconds) |
All times are in UTC.