2025/08/08

Newest at the top

2025-08-08 12:48:58 +0200marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-08-08 12:48:30 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-08-08 12:47:15 +0200athan(~athan@syn-047-132-161-157.res.spectrum.com) (Ping timeout: 276 seconds)
2025-08-08 12:46:56 +0200SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder
2025-08-08 12:44:14 +0200poscat(~poscat@user/poscat) poscat
2025-08-08 12:43:43 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-08-08 12:39:30 +0200ubert(~Thunderbi@91.141.76.34.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
2025-08-08 12:39:14 +0200poscat(~poscat@user/poscat) poscat
2025-08-08 12:39:08 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2025-08-08 12:38:49 +0200haskellbridgesm needs to find a better setup that's similarly convenient
2025-08-08 12:38:39 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-08-08 12:35:51 +0200 <haskellbridge> <sm> aha
2025-08-08 12:35:10 +0200 <mauke> not specifically, but I have ublock origin configured to block all third-party scripts by default
2025-08-08 12:34:45 +0200michalz(~michalz@185.246.207.201)
2025-08-08 12:33:51 +0200 <haskellbridge> <sm> mauke: yikes, thanks for letting me know. You have js disabled ?
2025-08-08 12:32:49 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
2025-08-08 12:32:12 +0200michalz(~michalz@185.246.207.218) (Remote host closed the connection)
2025-08-08 12:30:06 +0200 <kuribas> So there would need to be some completeness property that prevents this, however most typesystems aren't complete.
2025-08-08 12:29:41 +0200 <kuribas> If "forall a b. a -> b" has a substitution error, so checks as "forall a. a -> a", it would still be sound, but reject valid programs.
2025-08-08 12:28:40 +0200 <kuribas> I was more thinking about formal proofs, but the idea is the same.
2025-08-08 12:27:39 +0200sprotte24(~sprotte24@p200300d16f43d3003d43dd3d16486e1e.dip0.t-ipconnect.de)
2025-08-08 12:25:16 +0200Guest84(~Guest84@2401:4900:1c52:d1bb:cc6f:4e7c:df27:efc5) (Quit: Client closed)
2025-08-08 12:24:47 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 244 seconds)
2025-08-08 12:20:47 +0200 <[exa]> (I'd say that would work just right, but given the sheer spectrum of stupid bugs that may happen in unification I wouldn't bet on it formally)
2025-08-08 12:17:51 +0200 <[exa]> kuribas: if I got the question right, you're asking on whether having (quickcheck?) tests on the 2 properties passing implies that the internal "tools" in the typesystem (substitution) are working as intended?
2025-08-08 12:17:12 +0200trickard_trickard
2025-08-08 12:16:21 +0200 <kuribas> If I mess up the substitution for forall, the type system may be still sound, but reject valid programs.
2025-08-08 12:15:36 +0200img(~img@user/img) img
2025-08-08 12:15:34 +0200 <int-e> mauke: https://publish-01.obsidian.md/access/599da60310a78cfd30ea6fd228437374/Haskell%20minimap.md is human readable ;)
2025-08-08 12:14:16 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2025-08-08 12:03:52 +0200 <mauke> sm: sorry, not entirely blank. there is a single animated svg on it, spinning endlessly
2025-08-08 12:03:45 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au)
2025-08-08 12:03:31 +0200trickard_(~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-08-08 12:02:53 +0200 <kuribas> Isn't rust closer to C++ though? Haskell is more high level than C++. It doesn't give you much control about memory layout and allocation though.
2025-08-08 12:02:17 +0200 <mauke> but after using haskell, ocaml's syntax feels weird
2025-08-08 12:01:52 +0200 <mauke> for a "halfway step" (static types, type inference, mostly functional, algebraic types, currying) without laziness (or type classes), you could look at ocaml
2025-08-08 12:01:51 +0200 <[exa]> Guest84: there are various parts of many programming languages that help. Myself I'd recommend prolog first (so that you're able to code in templates easily) and Haskell helps with the "correct by construction" feeling (which is kinda present in C++ as the "keep all local state consistent" approach...more of a soft-skill imo.)
2025-08-08 12:00:55 +0200 <mauke> sm: I love looking at blank pages
2025-08-08 12:00:30 +0200 <kuribas> I can recommend https://www.seas.upenn.edu/~cis1940/spring13/
2025-08-08 12:00:20 +0200 <haskellbridge> <sm> and more stuff: https://joyful.com/Haskell+minimap
2025-08-08 11:58:15 +0200 <mauke> Guest84: it's been a long time since I started learning haskell, but have you seen https://www.haskell.org/get-started/ ?
2025-08-08 11:56:32 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds)
2025-08-08 11:55:46 +0200 <Guest84> I even have some (read as very little) experience of functional style c++ and lisp.
2025-08-08 11:55:24 +0200 <Guest84> Where do I start with ?
2025-08-08 11:54:14 +0200 <Guest84> I do have a background with C++ for 10 years but I cant say I ever like OOPS.
2025-08-08 11:54:13 +0200 <Guest84> A smart C++ programmer recommend me that I learn haskell to get better at C++.
2025-08-08 11:52:53 +0200 <kuribas> For example, would it catch bugs in substitution?
2025-08-08 11:52:44 +0200 <kuribas> If I implement a type system and type checker, would the progress and preservation properties garantee it is implemented correctly?
2025-08-08 11:52:27 +0200oxapentane(~oxapentan@user/oxapentane) oxapentane
2025-08-08 11:51:55 +0200oxapentane(~oxapentan@user/oxapentane) (Remote host closed the connection)