2025-02-01 00:01:07 +0100 | ubert | (~Thunderbi@p200300ecdf4e63eb92aaad72729f1b5d.dip0.t-ipconnect.de) (Quit: ubert) |
2025-02-01 00:01:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
2025-02-01 00:02:08 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-01 00:07:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 00:08:01 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2025-02-01 00:08:02 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit) |
2025-02-01 00:11:39 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 265 seconds) |
2025-02-01 00:11:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-01 00:12:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 00:14:08 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2025-02-01 00:17:09 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-02-01 00:19:39 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2025-02-01 00:20:08 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-02-01 00:22:24 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-02-01 00:28:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 00:28:30 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds) |
2025-02-01 00:32:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 00:43:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 00:45:00 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2025-02-01 00:46:08 +0100 | jinsun | (~jinsun@user/jinsun) jinsun |
2025-02-01 00:46:50 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-01 00:47:58 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 00:51:22 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-02-01 00:52:04 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) ezzieyguywuf |
2025-02-01 00:55:02 +0100 | <Leary> | kaol: Both ghcid and ghciwatch (given the right flags) allow you to effectively use the repl with `-- $> foo` comments in your code, though the latter is smarter about it---it actually loads the host module so its internals are in scope. |
2025-02-01 00:55:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 01:00:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-01 01:01:22 +0100 | jinsun | (~jinsun@user/jinsun) () |
2025-02-01 01:08:00 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds) |
2025-02-01 01:09:01 +0100 | <haskellbridge> | <sm> Leary: could you expand that a little ? $> foo comments ? |
2025-02-01 01:10:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 01:12:09 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2025-02-01 01:15:06 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 01:18:13 +0100 | <Leary> | sm: If you use the `--allow-eval` or `--enable-eval` flags in ghcid or ghciwatch respectively, they look for comments of the form `-- $> <code>` in your source to evaluate. |
2025-02-01 01:19:22 +0100 | malte | (~malte@mal.tc) (Remote host closed the connection) |
2025-02-01 01:22:52 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-02-01 01:23:12 +0100 | malte | (~malte@mal.tc) malte |
2025-02-01 01:23:17 +0100 | Guest96 | (~Guest96@81-207-104-14.fixed.kpn.net) |
2025-02-01 01:23:59 +0100 | Guest96 | (~Guest96@81-207-104-14.fixed.kpn.net) (Client Quit) |
2025-02-01 01:26:02 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 01:26:04 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
2025-02-01 01:26:05 +0100 | ljdarj1 | ljdarj |
2025-02-01 01:28:13 +0100 | <haskellbridge> | <sm> good to know! |
2025-02-01 01:30:44 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-02-01 01:32:50 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-02-01 01:35:14 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-01 01:39:45 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-02-01 01:44:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 01:48:37 +0100 | alp | (~alp@2001:861:8ca0:4940:291:464f:2c61:f1c2) (Remote host closed the connection) |
2025-02-01 01:48:54 +0100 | alp | (~alp@2001:861:8ca0:4940:be55:7820:aa2d:6e12) |
2025-02-01 01:52:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-01 01:52:36 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2025-02-01 01:53:11 +0100 | ec | (~ec@gateway/tor-sasl/ec) ec |
2025-02-01 01:53:44 +0100 | alp | (~alp@2001:861:8ca0:4940:be55:7820:aa2d:6e12) (Ping timeout: 260 seconds) |
2025-02-01 02:03:16 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 02:08:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-02-01 02:09:50 +0100 | sprotte24 | (~sprotte24@p200300d16f06b9001d5c2b08794be0ce.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-02-01 02:18:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 02:19:17 +0100 | otto_s | (~user@p5de2fd05.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2025-02-01 02:21:12 +0100 | otto_s | (~user@p5b0448ee.dip0.t-ipconnect.de) |
2025-02-01 02:24:20 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-01 02:24:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-02-01 02:28:54 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-02-01 02:35:03 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 02:39:21 +0100 | Guest22 | (~Guest62@c-73-217-79-154.hsd1.co.comcast.net) |
2025-02-01 02:39:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 02:45:22 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f83f8f1a3a9ad07643b.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2025-02-01 02:50:25 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 02:54:57 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
2025-02-01 02:58:41 +0100 | Guest22 | (~Guest62@c-73-217-79-154.hsd1.co.comcast.net) (Quit: Client closed) |
2025-02-01 03:04:19 +0100 | xff0x | (~xff0x@ai096095.d.east.v6connect.net) (Ping timeout: 260 seconds) |
2025-02-01 03:06:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 03:10:36 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 03:13:06 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-01 03:13:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 03:15:32 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-02-01 03:16:01 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2025-02-01 03:16:19 +0100 | euleritian | (~euleritia@77.23.250.232) |
2025-02-01 03:16:50 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9526:2be3:6fc8:68b2) |
2025-02-01 03:17:34 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 260 seconds) |
2025-02-01 03:17:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 03:28:58 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-01 03:29:18 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
2025-02-01 03:30:09 +0100 | tavare | (~tavare@user/tavare) tavare |
2025-02-01 03:31:19 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-02-01 03:32:33 +0100 | euleritian | (~euleritia@77.23.250.232) (Remote host closed the connection) |
2025-02-01 03:32:51 +0100 | euleritian | (~euleritia@77.23.250.232) |
2025-02-01 03:33:02 +0100 | euouae | (~euouae@user/euouae) euouae |
2025-02-01 03:33:17 +0100 | <euouae> | Hello I was using Debug.Trace to check up on sharing |
2025-02-01 03:33:34 +0100 | <euouae> | but e.g. `let y = trace "y-demanded" 1 in (y, y)` will print two y-demanded messages. Why? I thought 'y' would be shared in the pair expression |
2025-02-01 03:33:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-02-01 03:33:48 +0100 | <euouae> | Is it just because sharing (for some reason) didn't happen there? |
2025-02-01 03:34:10 +0100 | <geekosaur> | did you use optimization? |
2025-02-01 03:34:19 +0100 | <geekosaur> | (if you were doing it in ghci, you weren't) |
2025-02-01 03:34:24 +0100 | <int-e> | compare let y = trace "y-demanded" 1 :: Integer in (y, y) |
2025-02-01 03:34:38 +0100 | <int-e> | then figure out why adding a type signature makes a difference |
2025-02-01 03:34:45 +0100 | <geekosaur> | oh, right |
2025-02-01 03:35:29 +0100 | <int-e> | the remark about optimizations is valid too of course |
2025-02-01 03:36:07 +0100 | <EvanR> | that's so tricky |
2025-02-01 03:36:23 +0100 | <euouae> | because the type inference prevents it from being shared? |
2025-02-01 03:36:34 +0100 | <geekosaur> | type inference didn't happen |
2025-02-01 03:36:38 +0100 | <geekosaur> | there's a piece missing |
2025-02-01 03:36:50 +0100 | <geekosaur> | well, it did but it didn't reach a final result |
2025-02-01 03:36:55 +0100 | <int-e> | :t 1 |
2025-02-01 03:36:56 +0100 | <lambdabot> | Num p => p |
2025-02-01 03:37:09 +0100 | <euouae> | it being Num doesn't tell me much I don't know what to make of it |
2025-02-01 03:37:13 +0100 | <EvanR> | 1 is like a function waiting to be given a Num instance |
2025-02-01 03:37:24 +0100 | <EvanR> | rather than a number |
2025-02-01 03:37:33 +0100 | <geekosaur> | :t let y = 1 in (y,y) |
2025-02-01 03:37:34 +0100 | <lambdabot> | (Num a, Num b) => (a, b) |
2025-02-01 03:37:57 +0100 | <geekosaur> | think about that one for a bit |
2025-02-01 03:38:12 +0100 | <euouae> | well, so it is type inference right |
2025-02-01 03:38:18 +0100 | <euouae> | because I can do :: (Int, Double) |
2025-02-01 03:38:47 +0100 | <EvanR> | :t let y = 1 in (y,y) :: (Int, Double) |
2025-02-01 03:38:48 +0100 | <lambdabot> | (Int, Double) |
2025-02-01 03:38:53 +0100 | <EvanR> | now it's a pair of numbers |
2025-02-01 03:38:54 +0100 | <int-e> | well sharing and lack thereof is firmly a runtime phenomenon |
2025-02-01 03:39:03 +0100 | <int-e> | so it's not *just* type inference |
2025-02-01 03:39:25 +0100 | <euouae> | Yeah, `let x = trace "foo" 1 in (x :: Int, x :: Int)` will still print two foos |
2025-02-01 03:39:38 +0100 | <EvanR> | pair of numbers vs "like a function waiting for two different Num instances, that may or may not happen to be the same instance" |
2025-02-01 03:39:40 +0100 | <euouae> | it's something more than that |
2025-02-01 03:40:30 +0100 | <euouae> | when you say function do you mean type function |
2025-02-01 03:40:37 +0100 | <EvanR> | no |
2025-02-01 03:40:41 +0100 | <euouae> | the `p` argument in Num p => p? |
2025-02-01 03:40:50 +0100 | <EvanR> | no the => in Num p => p |
2025-02-01 03:41:07 +0100 | <geekosaur> | as long as it has a constraint, it's like a partially applied function. (=> looks like -> for a reason) the thing that needs to be applied is an instance dictionary |
2025-02-01 03:41:16 +0100 | <int-e> | Concretely at runtime, the argument is a Num dictionary for p. |
2025-02-01 03:41:18 +0100 | nitrix | (~nitrix@user/meow/nitrix) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-02-01 03:41:31 +0100 | <euouae> | I haven't heard of dictionary before |
2025-02-01 03:41:32 +0100 | <geekosaur> | by the time you apply it to the tuple, it's too late to go back and do sharing. if you specify it in the let, it can share |
2025-02-01 03:42:03 +0100 | <int-e> | (Dictionaries are an implementation detail of type classes.) |
2025-02-01 03:42:12 +0100 | <geekosaur> | have you reached typeclasses yet? |
2025-02-01 03:42:26 +0100 | <euouae> | No I just roughly know they have to do with interfaces |
2025-02-01 03:42:32 +0100 | <EvanR> | D: |
2025-02-01 03:42:35 +0100 | <int-e> | (And there are alternatives... notably, JHC passed type descriptors instead.) |
2025-02-01 03:42:37 +0100 | nitrix | (~nitrix@user/meow/nitrix) nitrix |
2025-02-01 03:42:39 +0100 | tabaqui1 | (~root@87.200.129.102) tabaqui |
2025-02-01 03:43:24 +0100 | <EvanR> | is passing type descriptors tangibly different in practice |
2025-02-01 03:43:27 +0100 | <geekosaur> | "interfaces" is a flawed attempt to understand typeclasses in terms of something better known, much like all the failed monad tutorials floating around the internet |
2025-02-01 03:43:57 +0100 | <euouae> | failure does not worry me |