2025/05/01

Newest at the top

2025-05-01 09:47:09 +0200Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2025-05-01 09:46:30 +0200DigitteknohippieDigit
2025-05-01 09:45:52 +0200xff0x(~xff0x@2409:251:9040:2c00:60ef:2712:38d8:542e)
2025-05-01 09:40:56 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-05-01 09:33:49 +0200jco(~jco@78-70-217-44-no600.tbcn.telia.com) (Quit: leaving)
2025-05-01 09:31:20 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-05-01 09:30:54 +0200rvalue(~rvalue@user/rvalue) rvalue
2025-05-01 09:29:11 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 265 seconds)
2025-05-01 09:28:59 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-05-01 09:27:47 +0200sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer)
2025-05-01 09:27:06 +0200 <tomsmeding> it does
2025-05-01 09:27:00 +0200 <haskellbridge> <hellwolf> having the proper type inference foundation helps
2025-05-01 09:26:44 +0200 <tomsmeding> s/less/fewer/
2025-05-01 09:26:39 +0200 <tomsmeding> perhaps it gets even better in a dependently-typed language; even less arbitrary restrictions
2025-05-01 09:26:35 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-05-01 09:25:52 +0200 <tomsmeding> somehow puzzling with all the ways you can do something to find the nicest one in haskell is not too bad, and doing the same in C++ (which is just as much of a kitchen sink) makes you want to tear your hair out
2025-05-01 09:25:08 +0200 <tomsmeding> it's great!
2025-05-01 09:25:03 +0200 <haskellbridge> <hellwolf> the fun that Haskell gives
2025-05-01 09:24:50 +0200 <haskellbridge> <hellwolf> yea, i have seen that. it's a mini type tetris game
2025-05-01 09:24:42 +0200 <tomsmeding> haskell is not a turing tarpit :p
2025-05-01 09:24:24 +0200 <tomsmeding> there are way too many ways to do it
2025-05-01 09:24:06 +0200 <haskellbridge> <hellwolf> "timtowdi", but in Haskell
2025-05-01 09:23:42 +0200 <tomsmeding> but I've seen cases where these kinds of situations can be made more readable by putting some well-chosen type variable orderings on a few functions (with explicit `forall`), resulting in the majority of the ambiguous situations being resolvable by a single type application
2025-05-01 09:23:24 +0200 <haskellbridge> <hellwolf> i use interchangeably, sometimes one style reads better than another
2025-05-01 09:22:57 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds)
2025-05-01 09:22:54 +0200 <tomsmeding> but far from always, and certainly the result is not always easier to read
2025-05-01 09:22:45 +0200 <haskellbridge> <hellwolf> yeah, there are cases where i don't care about the specific type var
2025-05-01 09:22:38 +0200 <tomsmeding> sometimes such things can be replaced with type applications to e.g. `f` here
2025-05-01 09:22:23 +0200 <tomsmeding> right
2025-05-01 09:22:16 +0200 <haskellbridge> <hellwolf> let x = f y :: T a _
2025-05-01 09:22:11 +0200 <tomsmeding> if so, that sounds perfectly fine to me
2025-05-01 09:21:58 +0200 <tomsmeding> to fix inference issues?
2025-05-01 09:21:47 +0200 <tomsmeding> you're saying that you put a full type signature on the top-level function but use PTSs inside local where- or let-bound functions?
2025-05-01 09:21:12 +0200tomsmedingis failing to parse that sentence properly
2025-05-01 09:20:53 +0200 <haskellbridge> <hellwolf> *sometimes
2025-05-01 09:20:27 +0200 <haskellbridge> <hellwolf> i would use partial type signature inside function where someone i use (:: A a b) for documentation purposes when the mini type tetris game being non-trivial
2025-05-01 09:19:34 +0200 <tomsmeding> in any case, this is an opinion, so take it as one :p
2025-05-01 09:19:22 +0200 <tomsmeding> but depends on how uniform the constraints actually are
2025-05-01 09:19:07 +0200 <tomsmeding> an option could be a type synonym
2025-05-01 09:18:55 +0200 <haskellbridge> <hellwolf> Indeed, but i do have internal code that repeats for no good reason (i think)
2025-05-01 09:18:52 +0200 <tomsmeding> I guess s/constraint list/type/, i.e. don't use PartialTypeSignatures in public API
2025-05-01 09:18:12 +0200 <tomsmeding> stuff like this is _very_ unhelpful when trying to understand what's going on
2025-05-01 09:17:57 +0200 <tomsmeding> even if haddock infers what the actual constraint list is (don't know if it does), sometimes it's helpful for a reader to look at the source
2025-05-01 09:17:28 +0200 <haskellbridge> <hellwolf> :p i thought so too. what's your reason?
2025-05-01 09:17:23 +0200dhil(~dhil@5.151.29.141) dhil
2025-05-01 09:16:52 +0200tromp(~textual@2001:1c00:3487:1b00:81f6:6a75:5fad:c9b4) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-05-01 09:16:52 +0200 <tomsmeding> _please_ do not use that for public API. :)
2025-05-01 09:16:50 +0200 <haskellbridge> <hellwolf> check this out. i was surprised too. i should really RTFM
2025-05-01 09:16:36 +0200 <tomsmeding> TIL
2025-05-01 09:16:25 +0200 <haskellbridge> <hellwolf> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/partial_type_signatures.html#extra-constra…