Newest at the top
2025-05-01 09:58:43 +0200 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2025-05-01 09:50:02 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-05-01 09:48:17 +0200 | sajenim | (~sajenim@user/sajenim) sajenim |
2025-05-01 09:47:52 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu |
2025-05-01 09:47:09 +0200 | Katarushisu | (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
2025-05-01 09:46:30 +0200 | Digitteknohippie | Digit |
2025-05-01 09:45:52 +0200 | xff0x | (~xff0x@2409:251:9040:2c00:60ef:2712:38d8:542e) |
2025-05-01 09:40:56 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-05-01 09:33:49 +0200 | jco | (~jco@78-70-217-44-no600.tbcn.telia.com) (Quit: leaving) |
2025-05-01 09:31:20 +0200 | sabathan2 | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-05-01 09:30:54 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2025-05-01 09:29:11 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 265 seconds) |
2025-05-01 09:28:59 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-05-01 09:27:47 +0200 | sabathan2 | (~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 +0200 | Lord_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 +0200 | Lord_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 +0200 | tomsmeding | is 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 +0200 | dhil | (~dhil@5.151.29.141) dhil |
2025-05-01 09:16:52 +0200 | tromp | (~textual@2001:1c00:3487:1b00:81f6:6a75:5fad:c9b4) (Quit: My iMac has gone to sleep. ZZZzzz…) |