Logs: liberachat/#haskell
| 2021-07-11 16:12:37 | → | [exa] joins (exa@user/exa/x-3587197) |
| 2021-07-11 16:13:22 | <dmj`> | :t Control.Exception.evaluate . Control.DeepSeq.force . Data.Map.Strict.fromList |
| 2021-07-11 16:13:24 | <lambdabot> | (Control.DeepSeq.NFData k, Control.DeepSeq.NFData a, Ord k) => [(k, a)] -> IO (M.Map k a) |
| 2021-07-11 16:13:51 | <EvanR> | jeez |
| 2021-07-11 16:13:59 | <monochrom> | But IO may not have been involved originally. |
| 2021-07-11 16:14:06 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) |
| 2021-07-11 16:14:08 | <Guest12> | I think it has to be |
| 2021-07-11 16:14:15 | <Guest12> | there isn't really a concept of "order" outside IO |
| 2021-07-11 16:14:33 | × | Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
| 2021-07-11 16:14:33 | <monochrom> | You have the potential of creating an XY problem "now I need unsafePerformIO too". |
| 2021-07-11 16:14:46 | × | dajoer quits (~david@user/gvx) (Quit: leaving) |
| 2021-07-11 16:14:49 | <Guest12> | if you say "at creation", I don't know what that means outside IO |
| 2021-07-11 16:15:32 | <oso> | the map lives inside a custom data type with other fields, when an instance is created is when I want the map constructed |
| 2021-07-11 16:15:48 | → | hololeap joins (~hololeap@user/hololeap) |
| 2021-07-11 16:15:54 | <EvanR> | yeah so a strict field |
| 2021-07-11 16:16:10 | → | aweinstock joins (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |
| 2021-07-11 16:16:27 | <monochrom> | Or the asker has the wrong mental model. |
| 2021-07-11 16:16:54 | <EvanR> | Guest12 is still right that, 'when that instance is created' leads to another question |
| 2021-07-11 16:17:17 | <Guest12> | if you want it evaluated the first time it's called, then i think you want a strict field. but this is still going to defer to the first time it's called |
| 2021-07-11 16:17:48 | <monochrom> | Also, lazy evaluation has order and timeline too. |
| 2021-07-11 16:17:50 | <Guest12> | if you want it pre-evaluated before it's called, I think you need to do that in IO |
| 2021-07-11 16:18:02 | × | ahdyt quits (~ahdyt@36.80.188.104) (Quit: Client closed) |
| 2021-07-11 16:18:18 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) (Ping timeout: 240 seconds) |
| 2021-07-11 16:19:22 | <monochrom> | One of {IO, threads, sparks} has to be involved before the question even matters. |
| 2021-07-11 16:20:29 | <oso> | i suppose it really doesn't matter, the instance is meant to be used in batch processing so the cost is amortized over the size of the batch -- i just got frustrated having to run my tests twice to get the "actual" runtime cost of a search |
| 2021-07-11 16:22:18 | <EvanR> | nah you should be able to compute the table ahead of time then use it |
| 2021-07-11 16:22:38 | <EvanR> | just have to use the right shaped tool |
| 2021-07-11 16:23:35 | <EvanR> | if you're in IO, use evaluate, for example |
| 2021-07-11 16:24:32 | → | ahdyt joins (~ahdyt@36.80.188.104) |
| 2021-07-11 16:25:10 | <ahdyt> | https://paste.tomsmeding.com/Q5GVfbeB |
| 2021-07-11 16:25:11 | <ahdyt> | hi folks, is this what called cabal hell? |
| 2021-07-11 16:26:17 | <sclv> | it was otherwise known as the "diamond dependency problem" like here https://stackoverflow.com/questions/25869041/whats-the-reason-behind-cabal-dependency-hell/25870174#25870174 |
| 2021-07-11 16:26:44 | <sclv> | what you have is certainly some dependency problem, but its likely a much simpler and easier to resolve one |
| 2021-07-11 16:26:50 | <davean> | ahdyt: no thats a direct conflict |
| 2021-07-11 16:26:59 | × | chris-the-slurpa quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2021-07-11 16:26:59 | <ahdyt> | okay? |
| 2021-07-11 16:27:04 | <ahdyt> | how to fix that anyway? |
| 2021-07-11 16:27:40 | <sclv> | in this case note the line: `(conflict: pkg-config package gobject-introspection-1.0>=1.32, not found in |
| 2021-07-11 16:27:40 | <sclv> | the pkg-config database)` |
| 2021-07-11 16:28:08 | <sclv> | that's nothing about haskell dependencies. that's about needing the system lib that provides that available |
| 2021-07-11 16:28:22 | <sclv> | (and in particular, the -devel version of the lib with headers, etc) |
| 2021-07-11 16:28:33 | <ahdyt> | ah okay so the c deps |
| 2021-07-11 16:28:36 | <sclv> | you need to figure out what provides that and install it via apt-get or whatever your system package manager is |
| 2021-07-11 16:31:28 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:6d00:2ab2:6519:235b) |
| 2021-07-11 16:32:42 | × | anandprabhu quits (~anandprab@94.202.243.198) (Remote host closed the connection) |
| 2021-07-11 16:33:26 | → | __monty__ joins (~toonn@user/toonn) |
| 2021-07-11 16:37:32 | × | jonathanx quits (~jonathan@94.234.33.210) (Ping timeout: 252 seconds) |
| 2021-07-11 16:37:46 | → | chris-the-slurpa joins (~chris@81.96.113.213) |
| 2021-07-11 16:40:57 | → | jonathanx joins (~jonathan@94.234.33.210) |
| 2021-07-11 16:42:06 | × | chris-the-slurpa quits (~chris@81.96.113.213) (Ping timeout: 258 seconds) |
| 2021-07-11 16:43:02 | → | chris-the-slurpa joins (~chris@81.96.113.213) |
| 2021-07-11 16:44:24 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 258 seconds) |
| 2021-07-11 16:45:38 | → | yauhsien joins (~yauhsien@118-167-64-241.dynamic-ip.hinet.net) |
| 2021-07-11 16:47:09 | → | Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
| 2021-07-11 16:47:53 | → | Guest9 joins (~Guest9@103.250.145.129) |
| 2021-07-11 16:48:25 | × | jonathanx quits (~jonathan@94.234.33.210) (Remote host closed the connection) |
| 2021-07-11 16:48:42 | → | jonathanx joins (~jonathan@94.234.33.210) |
| 2021-07-11 16:50:11 | <hololeap> | i'm not sure what the name for it is, but there's a pattern where you make a type family in order to check a constraint over a type-level list |
| 2021-07-11 16:50:27 | × | yauhsien quits (~yauhsien@118-167-64-241.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
| 2021-07-11 16:50:34 | × | jonathanx quits (~jonathan@94.234.33.210) (Remote host closed the connection) |
| 2021-07-11 16:50:44 | <hololeap> | is there a way to construct this so that the superclasses are inferred, because currently I have to list every single one when I use this |
| 2021-07-11 16:51:36 | → | jonathanx joins (~jonathan@94.234.33.210) |
| 2021-07-11 16:51:44 | × | jonathanx quits (~jonathan@94.234.33.210) (Client Quit) |
| 2021-07-11 16:52:01 | → | MQ-17J joins (~MQ-17J@8.21.10.15) |
| 2021-07-11 16:54:34 | × | ahdyt quits (~ahdyt@36.80.188.104) (Quit: Client closed) |
| 2021-07-11 16:56:08 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 2021-07-11 16:57:01 | <Guest12> | do you have a specific/minimal example of what you're trying to do? |
| 2021-07-11 16:57:19 | × | chris-the-slurpa quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2021-07-11 16:58:49 | <hololeap> | yeah |
| 2021-07-11 16:59:09 | <hololeap> | http://sprunge.us/iEEXvk |
| 2021-07-11 16:59:54 | → | ahdyt joins (~ahdyt@36.80.188.104) |
| 2021-07-11 17:00:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-07-11 17:00:25 | → | ubert joins (~Thunderbi@p2e5a50e5.dip0.t-ipconnect.de) |
| 2021-07-11 17:00:32 | → | neceve joins (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
| 2021-07-11 17:00:55 | <hololeap> | you can see that I have to explicitally that the Functor, Foldable, and Traversable constraints are satisfied in order to derive Traversable for ProductNF |
| 2021-07-11 17:01:17 | <hololeap> | just stating that the Traversable constraint is satisfied doesn't imply the others here |
| 2021-07-11 17:04:34 | → | chris-the-slurpa joins (~chris@81.96.113.213) |
| 2021-07-11 17:05:51 | × | Guest12 quits (~Guest12@187.83.249.216.dyn.smithville.net) (Quit: Client closed) |
| 2021-07-11 17:07:14 | × | ahdyt quits (~ahdyt@36.80.188.104) (Quit: Client closed) |
| 2021-07-11 17:07:57 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 2021-07-11 17:08:35 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 2021-07-11 17:09:45 | × | hiruji quits (~hiruji@user/hiruji) (Read error: Connection reset by peer) |
| 2021-07-11 17:10:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 2021-07-11 17:10:55 | → | hiruji joins (~hiruji@user/hiruji) |
| 2021-07-11 17:13:46 | × | hiruji quits (~hiruji@user/hiruji) (Read error: Connection reset by peer) |
| 2021-07-11 17:14:04 | → | hiruji joins (~hiruji@user/hiruji) |
| 2021-07-11 17:17:05 | × | hiruji quits (~hiruji@user/hiruji) (Read error: Connection reset by peer) |
| 2021-07-11 17:17:53 | → | hiruji joins (~hiruji@user/hiruji) |
| 2021-07-11 17:24:40 | × | hiruji quits (~hiruji@user/hiruji) (Read error: Connection reset by peer) |
| 2021-07-11 17:24:49 | → | hiruji` joins (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) |
| 2021-07-11 17:25:05 | × | dyniec quits (~dyniec@mail.dybiec.info) (Quit: WeeChat 3.0) |
| 2021-07-11 17:25:59 | × | hiruji` quits (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Read error: Connection reset by peer) |
| 2021-07-11 17:27:03 | → | hiruji joins (~hiruji@user/hiruji) |
| 2021-07-11 17:32:59 | <dmj`> | hololeap: I don't think there's a way to derive all 3 in one go |
| 2021-07-11 17:36:52 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 2021-07-11 17:37:32 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
| 2021-07-11 17:40:02 | <hololeap> | dmj`: do you know what limitation I'm running into here? GHC doesn't have a problem like this when things are derived normally |
| 2021-07-11 17:40:22 | <hololeap> | oh, actually I think you misunderstand |
| 2021-07-11 17:41:08 | → | warnz joins (~warnz@2600:1700:77c0:5610:acd9:fdbc:f96e:2452) |
| 2021-07-11 17:42:04 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
All times are in UTC.