2026/04/18

Newest at the top

2026-04-18 07:57:29 +0000 <haskellbridge> <ozkutuk> maerwald: yeah this gets annoying super fast. There is a function to do function composition ("compose"), but it is pretty much useless because you need to explicitly provide the type of both sides and also the return type...
2026-04-18 07:56:23 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-04-18 07:53:42 +0000xff0x(~xff0x@2405:6580:b080:900:73ce:e440:32fb:1d76)
2026-04-18 07:52:52 +0000 <haskellbridge> <maerwald> using functions like fold/map with all the verbose type annotations looks super confusing too
2026-04-18 07:52:51 +0000xff0x(~xff0x@2405:6580:b080:900:c6f2:203e:25ca:637b) (Ping timeout: 244 seconds)
2026-04-18 07:51:54 +0000 <haskellbridge> <maerwald> it seems the only value it brings is a little bit of string interpolation... and that's all
2026-04-18 07:50:30 +0000 <haskellbridge> <maerwald> no sensible way to do updates (e.g. to do deeply nested merges)
2026-04-18 07:49:56 +0000 <haskellbridge> <maerwald> you can't do lookup even
2026-04-18 07:49:50 +0000 <haskellbridge> <maerwald> keys have to be text (but guess what... you can't compare text, lol)...
2026-04-18 07:49:19 +0000 <haskellbridge> <maerwald> Also, the Map interface... oh dear
2026-04-18 07:48:52 +0000 <haskellbridge> <ozkutuk> In your case I don't think there is much you can do
2026-04-18 07:48:38 +0000 <haskellbridge> <ozkutuk> Ah, I see. This solution assumed you are using Dhall in your application to parse config, hence I qualified my initial response with "if you are using Dhall as a library"
2026-04-18 07:47:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-18 07:44:50 +0000 <haskellbridge> <maerwald> What application code? I want to use it to generate yaml. Now everyone who wants to use my config has to build their own dhall binary.
2026-04-18 07:44:38 +0000 <haskellbridge> <ozkutuk> Say, you use "Dhall.inputWithSettings <yourSettings>", rather than "Dhall.input"
2026-04-18 07:43:45 +0000_0xa(~user@user/0xa/x-3134607) _0xa
2026-04-18 07:43:45 +0000_0xa(~user@2001:19f0:5001:2ba8:5400:1ff:feda:88fc) (Changing host)
2026-04-18 07:43:45 +0000_0xa(~user@2001:19f0:5001:2ba8:5400:1ff:feda:88fc)
2026-04-18 07:43:03 +0000 <haskellbridge> <ozkutuk> no fork needed, you write your custom normalizer in your application code and pass it as an argument to the Dhall library functions rather than using the implicit default one
2026-04-18 07:42:55 +0000_0xa(~user@user/0xa/x-3134607) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in)
2026-04-18 07:41:06 +0000 <haskellbridge> <maerwald> aha, now I have to fork dhall?
2026-04-18 07:40:35 +0000 <haskellbridge> <ozkutuk> docs have an example: https://hackage-content.haskell.org/package/dhall-1.42.3/docs/Dhall-Tutorial.html#g:23
2026-04-18 07:40:20 +0000 <haskellbridge> <ozkutuk> Dhall provides extension points to introduce your own built-ins, so if you are using Dhall as a library, you can extend it to add a Text/equal built-in
2026-04-18 07:39:57 +0000 <haskellbridge> <maerwald> it's just that everything looks horrible
2026-04-18 07:39:12 +0000 <haskellbridge> <maerwald> because I can hack around it by encoding sum types as integers and doing equality checks on them
2026-04-18 07:38:40 +0000 <haskellbridge> <maerwald> that makes no sense
2026-04-18 07:37:04 +0000 <yushyin> whether this is sensible or not is beyond my expertise :D
2026-04-18 07:36:39 +0000 <yushyin> "The main reason for forbidding Text equality comparisons is to prevent people from parsing Text values at all, in order to encourage them to use more structured data types instead." -- https://github.com/dhall-lang/dhall-haskell/issues/72#issuecomment-309074784
2026-04-18 07:36:26 +0000 <yushyin> afair, that was a deliberate design decision
2026-04-18 07:36:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-04-18 07:32:34 +0000uli-fem(~uli-fem@14-202-246-84.tpgi.com.au) (Ping timeout: 248 seconds)
2026-04-18 07:31:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-18 07:29:55 +0000 <haskellbridge> <maerwald> yes
2026-04-18 07:29:47 +0000_0xa(~user@user/0xa/x-3134607) _0xa
2026-04-18 07:29:47 +0000_0xa(~user@95.179.128.10) (Changing host)
2026-04-18 07:29:47 +0000_0xa(~user@95.179.128.10)
2026-04-18 07:29:30 +0000_0xa(~user@user/0xa/x-3134607) (Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in)
2026-04-18 07:28:22 +0000uli-fem(~uli-fem@14-202-246-84.tpgi.com.au)
2026-04-18 07:24:16 +0000Logio(em@kapsi.fi) (Quit: Lost terminal)
2026-04-18 07:21:57 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-04-18 07:21:20 +0000arandombit(~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-18 07:20:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-04-18 07:16:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-04-18 07:14:22 +0000uli-fem(~uli-fem@14-202-246-84.tpgi.com.au) (Ping timeout: 276 seconds)
2026-04-18 07:14:12 +0000 <gentauro> maerwald: so you can't compare strings?
2026-04-18 07:14:10 +0000arandombit(~arandombi@user/arandombit) arandombit
2026-04-18 07:12:49 +0000_0xa(~user@user/0xa/x-3134607) _0xa
2026-04-18 07:12:49 +0000_0xa(~user@95.179.128.10) (Changing host)
2026-04-18 07:12:49 +0000_0xa(~user@95.179.128.10)
2026-04-18 07:11:59 +0000_0xa(~user@user/0xa/x-3134607) (Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in)