Logs: freenode/#haskell
| 2020-10-27 13:08:01 | <Raito_Bezarius> | 8.10 |
| 2020-10-27 13:08:36 | <Raito_Bezarius> | enabling GADT made it work |
| 2020-10-27 13:09:05 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 2020-10-27 13:09:55 | <dminuoso> | It's possible this is due to some changes in 8.10 |
| 2020-10-27 13:10:23 | <dminuoso> | "GHC now performs more validity checks on inferred type signatures." |
| 2020-10-27 13:10:27 | <dminuoso> | That's very non-descript. |
| 2020-10-27 13:10:34 | <dminuoso> | But Im guessing that's why |
| 2020-10-27 13:11:17 | <geekosaur> | this might be worth asking haskell-cafe about, if it's affecting random Megaparsec parsers then it might be surprising to a bunch of people |
| 2020-10-27 13:11:36 | <geekosaur> | lthough 8.10 has been out for a while now so it should have already caused an uproar, hm |
| 2020-10-27 13:12:12 | → | danza joins (~francesco@151.53.87.185) |
| 2020-10-27 13:12:17 | <Raito_Bezarius> | Well, I'm okay with enabling type families or GADT meanwhile |
| 2020-10-27 13:13:29 | <geekosaur> | I'm kinda not so comfortable with it tbh. Megaparsec seems a strange place for a hidden dependency on GADTs to arise |
| 2020-10-27 13:14:14 | <Raito_Bezarius> | Could one of you verify in a REPL I'm not saying stupid things? |
| 2020-10-27 13:14:26 | <Raito_Bezarius> | I just imported a bunch of megaparsec classic things, everything is built-in |
| 2020-10-27 13:14:28 | <dminuoso> | Raito_Bezarius: Im very sure this is why. |
| 2020-10-27 13:14:31 | <merijn> | dminuoso: I think it's basically like before where GHC would infer types that required extensions that weren't enabled |
| 2020-10-27 13:14:47 | <merijn> | And then when it (correctly) demanded those extensions be enabled, stuff broke |
| 2020-10-27 13:14:50 | <dminuoso> | Raito_Bezarius: The release notes even lists a similar example, albeit with a different extension. |
| 2020-10-27 13:14:58 | <Raito_Bezarius> | Fair enough |
| 2020-10-27 13:15:09 | <dminuoso> | merijn: Oh because it affected the semantics of other code? |
| 2020-10-27 13:15:15 | <dminuoso> | Like ScopedTypeVariables? |
| 2020-10-27 13:15:17 | × | whatisRT quits (~whatisRT@2002:5b41:6a33:0:c56a:ceb4:6140:c4a1) (Read error: Connection reset by peer) |
| 2020-10-27 13:15:26 | × | tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
| 2020-10-27 13:15:51 | <merijn> | dminuoso: No, stuff like, if you left out a type signature and GHC inferred one that used MultiParamTypeclasses, then it would allow the inferred type *even* if MPTC wasn't enabled |
| 2020-10-27 13:15:55 | <merijn> | Which is, of course, wrong |
| 2020-10-27 13:16:02 | <dminuoso> | (Say because you're doing something like `(\(e :: FooException) -> ...)`, then enabling ScopedTypeVariables could actually alter the meaning in other places where if you have ExplicitForAll |
| 2020-10-27 13:16:22 | <dminuoso> | mmm |
| 2020-10-27 13:16:40 | <merijn> | So it used to allow types with extensions that weren't enabled *iff* the types were inferred, which is a bug, but one you can accidentally rely on |
| 2020-10-27 13:16:43 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds) |
| 2020-10-27 13:16:49 | × | ptrcmd quits (~ptrcmd@unaffiliated/petercommand) (Remote host closed the connection) |
| 2020-10-27 13:17:12 | → | xerox__ joins (~xerox@unaffiliated/xerox) |
| 2020-10-27 13:17:13 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 2020-10-27 13:17:29 | <dminuoso> | merijn: I cant even fathom what kind of engineering complexity language extensions brings with them because you have precisely this kind of cross-module friction. |
| 2020-10-27 13:17:30 | × | Franciman quits (~francesco@host-82-54-10-114.retail.telecomitalia.it) (Read error: Connection reset by peer) |
| 2020-10-27 13:17:47 | → | Franciman joins (~francesco@host-82-54-10-114.retail.telecomitalia.it) |
| 2020-10-27 13:18:03 | <merijn> | So it looks like, in Raito_Bezarius's example is that due to the lack of type signature, the inferred type has megaparsec Token constraint, which uses type families, but type families isn't enabled in his code |
| 2020-10-27 13:18:10 | <dminuoso> | merijn: Right. |
| 2020-10-27 13:18:18 | <merijn> | So writing out a non-polymorphic type would *also* fix the issue |
| 2020-10-27 13:18:21 | <dminuoso> | merijn: Im just saying the release note could have explained this better |
| 2020-10-27 13:18:23 | <Raito_Bezarius> | merijn: I see |
| 2020-10-27 13:18:23 | <dminuoso> | I *assumed* what you said |
| 2020-10-27 13:18:54 | <merijn> | Raito_Bezarius: If you write out a specific type, then the constraint is already solved and the extension unneeded |
| 2020-10-27 13:18:54 | <dminuoso> | I sometimes wish, GHC would roll out such things with deprecation notices |
| 2020-10-27 13:18:56 | <dminuoso> | like |
| 2020-10-27 13:19:02 | <dminuoso> | "This is going to fail in a future GHC" |
| 2020-10-27 13:19:06 | × | PragCypher quits (~cypher@li1507-98.members.linode.com) (Quit: ZNC 1.7.5 - https://znc.in) |
| 2020-10-27 13:19:09 | <merijn> | dminuoso: Where do you draw the line, though? |
| 2020-10-27 13:19:09 | → | ptrcmd joins (~ptrcmd@unaffiliated/petercommand) |
| 2020-10-27 13:19:20 | <merijn> | Does every bugfix need a deprecation warning? |
| 2020-10-27 13:19:20 | → | PragCypher joins (~cypher@li1507-98.members.linode.com) |
| 2020-10-27 13:19:34 | <merijn> | dminuoso: See the endless discussion on the TH change I got temporarily rolled back in 8.10 |
| 2020-10-27 13:19:40 | <dminuoso> | Which TH change? |
| 2020-10-27 13:20:12 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
| 2020-10-27 13:20:49 | <merijn> | That typeclass constraint (incorrectly) are allowed to violate the staging/splicing rules |
| 2020-10-27 13:20:52 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
| 2020-10-27 13:20:54 | <merijn> | https://gitlab.haskell.org/ghc/ghc/-/issues/17816 |
| 2020-10-27 13:21:07 | → | denisse joins (~spaceCat@gateway/tor-sasl/alephzer0) |
| 2020-10-27 13:22:07 | <dminuoso> | merijn: Perhaps GHC releases should be tested against stackage. |
| 2020-10-27 13:22:12 | <merijn> | They are |
| 2020-10-27 13:22:17 | <merijn> | But once again |
| 2020-10-27 13:22:25 | <merijn> | Where's the line? |
| 2020-10-27 13:22:50 | <merijn> | The behaviour in that ticket is *clearly* a bug that violates the definition of TH as it is specified |
| 2020-10-27 13:22:51 | <dminuoso> | 1.73% breakage |
| 2020-10-27 13:24:02 | <merijn> | Is that including transitive dependencies? |
| 2020-10-27 13:24:02 | × | mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Read error: Connection reset by peer) |
| 2020-10-27 13:24:15 | <merijn> | Because then you probably will be unable to ever fix anything |
| 2020-10-27 13:24:32 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 2020-10-27 13:24:56 | xerox__ | is now known as xerox_ |
| 2020-10-27 13:25:04 | <dminuoso> | Unrelatedly |
| 2020-10-27 13:25:06 | <dminuoso> | Im sad now |
| 2020-10-27 13:25:08 | <dminuoso> | % % Just 'a' <**> (Just 'b' <&> (,)) |
| 2020-10-27 13:25:08 | <yahb> | dminuoso: ; <interactive>:183:1: error: parse error on input `%' |
| 2020-10-27 13:25:13 | <dminuoso> | % Just 'a' <**> (Just 'b' <&> (,)) |
| 2020-10-27 13:25:14 | <yahb> | dminuoso: Just ('b','a') |
| 2020-10-27 13:25:16 | <dminuoso> | % Just 'a' <**> Just 'b' <&> (,) |
| 2020-10-27 13:25:16 | <yahb> | dminuoso: ; <interactive>:185:15: error:; * Couldn't match type `Char' with `Char -> a'; Expected type: Maybe (Char -> a); Actual type: Maybe Char; * In the second argument of `(<**>)', namely Just 'b'; In the first argument of `(<&>)', namely Just 'a' <**> Just 'b'; In the expression: Just 'a' <**> Just 'b' <&> (,); * Relevant bindings include it :: Maybe (b -> (a, b)) (bound |
| 2020-10-27 13:25:21 | <dminuoso> | Why is the precedence all wrong here? :( |
| 2020-10-27 13:26:51 | × | vacm quits (~vacwm@70.23.92.191) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-27 13:27:14 | <dminuoso> | merijn: But I see what you're getting at. |
| 2020-10-27 13:27:19 | <dminuoso> | I mean for bugfixes its hard |
| 2020-10-27 13:27:25 | <dminuoso> | But when you *know* you're making breaking changes |
| 2020-10-27 13:27:34 | <dminuoso> | Its not too much to ask for a deprecation notice one major release in advance |
| 2020-10-27 13:27:46 | <merijn> | dminuoso: -Wcompat exists |
| 2020-10-27 13:27:54 | <merijn> | But, sadly, not enabled by default |
| 2020-10-27 13:28:14 | <dminuoso> | merijn: Does -Wcompat work with *GHC* changes? |
| 2020-10-27 13:28:42 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2020-10-27 13:28:48 | <merijn> | for those added |
| 2020-10-27 13:28:48 | <dminuoso> | I mean only if they receive a particular warning for it |
| 2020-10-27 13:28:54 | <dminuoso> | Like, star-is-type |
| 2020-10-27 13:30:01 | → | ggole joins (~ggole@2001:8003:8119:7200:b94d:2b16:8058:a9b7) |
| 2020-10-27 13:31:05 | × | jespada quits (~jespada@90.254.243.98) (Ping timeout: 240 seconds) |
| 2020-10-27 13:32:45 | → | jespada joins (~jespada@90.254.243.98) |
| 2020-10-27 13:33:01 | → | tromp joins (~tromp@dhcp-077-249-230-040.chello.nl) |
| 2020-10-27 13:33:15 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 2020-10-27 13:33:54 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-nwqswzdnuoofdofv) (Quit: Connection closed for inactivity) |
| 2020-10-27 13:34:25 | → | knupfer joins (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de) |
| 2020-10-27 13:34:25 | × | knupfer quits (~Thunderbi@200116b82cb7c4006c9b6afffea7b391.dip.versatel-1u1.de) (Client Quit) |
| 2020-10-27 13:34:38 | → | knupfer joins (~Thunderbi@mue-88-130-61-249.dsl.tropolys.de) |
| 2020-10-27 13:36:22 | → | gothnbass joins (~kvirc@111.red-83-37-117.dynamicip.rima-tde.net) |
| 2020-10-27 13:36:35 | <Raito_Bezarius> | Let us suppose that I'd like to define a character literal as something which is an ASCII char which is not \ or " and accept the escaped versions as char literals |
All times are in UTC.