Logs: liberachat/#haskell
| 2025-10-20 19:21:44 | <tccq> | people's setups? |
| 2025-10-20 19:24:58 | <bwe> | EvanR: No, I haven't looked how json value -> application type parser are done yet. But will do. |
| 2025-10-20 19:24:58 | <monochrom> | I haven't needed jump-to-def for locals, so haskell-mode suffices for me. |
| 2025-10-20 19:25:18 | <monochrom> | err, I haven't needed completion for locals. |
| 2025-10-20 19:25:28 | trickard_ | is now known as trickard |
| 2025-10-20 19:25:35 | <bwe> | probie: wow, didn't think that this would be possible. |
| 2025-10-20 19:25:42 | → | Googulator8 joins (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) |
| 2025-10-20 19:26:03 | × | Googulator7 quits (~Googulato@92-249-221-245.pool.digikabel.hu) (Quit: Client closed) |
| 2025-10-20 19:26:04 | <monochrom> | I can fetch types, global and local. |
| 2025-10-20 19:26:55 | <tccq> | do you get jump to def for prelude or standard packages? |
| 2025-10-20 19:27:02 | <monochrom> | No. |
| 2025-10-20 19:27:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 19:30:34 | <tccq> | hmm. Maybe I will drop the lsp part and just try to configure haskell-mode better. Probably with htags and dabbrev I should be set |
| 2025-10-20 19:32:32 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-20 19:34:45 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2025-10-20 19:34:54 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-20 19:39:28 | × | gustrb quits (~gustrb@191.243.134.87) (Ping timeout: 244 seconds) |
| 2025-10-20 19:40:06 | × | mastarija quits (~mastarija@89-164-108-176.dsl.iskon.hr) (Quit: Client closed) |
| 2025-10-20 19:43:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 19:48:33 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-10-20 19:49:41 | × | AlexZenon quits (~alzenon@85.174.182.163) (Ping timeout: 256 seconds) |
| 2025-10-20 19:53:29 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2025-10-20 19:54:22 | × | Googulator8 quits (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-20 19:54:37 | → | Googulator8 joins (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) |
| 2025-10-20 19:59:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 20:04:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-10-20 20:08:28 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-20 20:10:02 | → | ephilalethes joins (~noumenon@113.51-175-156.customer.lyse.net) |
| 2025-10-20 20:13:49 | × | gustrb quits (~gustrb@191.243.134.87) (Ping timeout: 264 seconds) |
| 2025-10-20 20:15:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 20:15:27 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 2025-10-20 20:15:37 | × | Googulator8 quits (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-20 20:15:38 | → | Googulator52 joins (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) |
| 2025-10-20 20:18:41 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2025-10-20 20:20:08 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-20 20:21:13 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-20 20:22:39 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2025-10-20 20:26:26 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-10-20 20:26:56 | → | AlexZenon joins (~alzenon@85.174.182.163) |
| 2025-10-20 20:27:01 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 264 seconds) |
| 2025-10-20 20:28:32 | <chromoblob> | DeepSeek stole its name from Haskell's DeepSeq |
| 2025-10-20 20:28:47 | × | gustrb quits (~gustrb@191.243.134.87) (Ping timeout: 256 seconds) |
| 2025-10-20 20:31:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 20:35:34 | × | Googulator52 quits (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-20 20:35:37 | → | Googulator47 joins (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) |
| 2025-10-20 20:35:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-20 20:37:37 | → | Square joins (~Square4@user/square) |
| 2025-10-20 20:38:32 | → | Square2 joins (~Square@user/square) |
| 2025-10-20 20:39:42 | <bwe> | EvanR: You are actually right. I am solving the wrong problem: Currently I parse ld+json (embedded machine readable data in html) to 'Maybe a' using Aeson. Only to then to re-use the 'Maybe a' records (dto) to extract the required fields and store them in a non-Maybe constructor. Why not parsing the values directly into a constructor where required fields have a non-Maybe type and optional one's a Maybe type? I get the errors of the missing bits for free w |
| 2025-10-20 20:39:42 | <bwe> | ithout needing to reinvent the wheel. |
| 2025-10-20 20:40:20 | <EvanR> | yes |
| 2025-10-20 20:40:33 | <EvanR> | parse "don't validate" (parse = validate) |
| 2025-10-20 20:42:09 | × | Square quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 2025-10-20 20:42:20 | <bwe> | I wanted to finish the partly done parsing job by validating. |
| 2025-10-20 20:47:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 20:47:37 | <EvanR> | partly done parsing *scream emoji* |
| 2025-10-20 20:48:06 | <EvanR> | if it's really invalid then it shouldn't parse |
| 2025-10-20 20:54:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-20 20:55:25 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 256 seconds) |
| 2025-10-20 20:59:16 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 2025-10-20 21:04:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 21:08:35 | <yin> | also, make illegal states unrepresentable |
| 2025-10-20 21:08:54 | × | lisq_ quits (~quassel@lis.moe) () |
| 2025-10-20 21:08:56 | <EvanR> | that might be more trouble than its worth |
| 2025-10-20 21:09:04 | → | lisq joins (~quassel@lis.moe) |
| 2025-10-20 21:09:39 | <EvanR> | like how the real projective plane is this weird space that needs 4 dimensions, or it's just a half a sphere, ignore the other half |
| 2025-10-20 21:09:46 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2025-10-20 21:10:09 | × | michalz quits (~michalz@185.246.207.221) (Remote host closed the connection) |
| 2025-10-20 21:10:41 | <EvanR> | actually 5 |
| 2025-10-20 21:13:13 | <monochrom> | I only needed 3 back then. |
| 2025-10-20 21:13:18 | <monochrom> | Inflation! |
| 2025-10-20 21:14:12 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-20 21:14:37 | <EvanR> | it's a 2D space so you only need 2 really |
| 2025-10-20 21:14:45 | <bwe> | EvanR: I admit initially the dto data constructor just collected the data. Design criterion was to not fail even if some fields can't be populated (for debugging purposes). Hence I ended up with the "everything is Maybe" dto constructor. Second requirement was then to roll a domain data constructor that has only required fields. Now, the hassle turns out to be how to translate between them. |
| 2025-10-20 21:15:31 | <bwe> | EvanR: I wonder how I might be more aware next time when I am opening the pandoras box with validating instead of parsing. |
| 2025-10-20 21:16:23 | <EvanR> | if it's business apps, I might just veer on the side of "this has no structure, even if some boss said on some date that it did" |
| 2025-10-20 21:17:05 | <EvanR> | but if it really does, there's always versioning your data types and doing type checked migrations |
| 2025-10-20 21:17:15 | <EvanR> | and there is a different parser for each version |
| 2025-10-20 21:20:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 21:21:47 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 2025-10-20 21:25:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-10-20 21:25:37 | → | Googulator80 joins (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) |
| 2025-10-20 21:25:39 | × | Googulator47 quits (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-20 21:27:57 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 2025-10-20 21:33:49 | <EvanR> | monochrom, 2 dimensions to get in, 3 to visualize it with intersections, 4 without intersections, 5 to preserve distances and angles |
| 2025-10-20 21:36:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 21:37:02 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 2025-10-20 21:41:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-10-20 21:52:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 21:55:50 | × | tccq quits (~user@user/tccq) (Remote host closed the connection) |
| 2025-10-20 21:57:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2025-10-20 21:58:13 | × | gustrb quits (~gustrb@191.243.134.87) (Ping timeout: 264 seconds) |
| 2025-10-20 21:59:58 | → | gustrb joins (~gustrb@191.243.134.87) |
| 2025-10-20 22:03:35 | × | tromp quits (~textual@2001:1c00:3487:1b00:242b:79a0:e1f9:7ea5) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-10-20 22:08:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-10-20 22:10:48 | × | Googulator80 quits (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-10-20 22:11:05 | → | Googulator80 joins (~Googulato@2a01-036d-0106-03fa-0485-6a66-0733-0e38.pool6.digikabel.hu) |
| 2025-10-20 22:13:03 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-10-20 22:14:22 | × | Tuplanolla quits (~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) (Ping timeout: 260 seconds) |
| 2025-10-20 22:23:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
All times are in UTC.