2025/09/28

Newest at the top

2025-09-28 20:45:24 +0200 <dcpagan> Last time I tried Data.Type.Bool.If, I got reduction stack overflows.
2025-09-28 20:45:15 +0200 <tomsmeding> but in this case, you don't want to pattern-match, you want to have a conditional on <=
2025-09-28 20:45:03 +0200 <tomsmeding> dcpagan: what is `Song' Nothing = "" ; Song' (Just n) = ...` doing if not pattern matching?
2025-09-28 20:44:41 +0200 <tomsmeding> use https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-TypeLits.html#t:-60--61--63- and https://hackage.haskell.org/package/base-4.19.0.0/docs/Data-Type-Bool.html#t:If
2025-09-28 20:44:28 +0200bgg(~bgg@2a01:e0a:819:1510:ce70:2793:3b21:6fbd) (Remote host closed the connection)
2025-09-28 20:44:25 +0200 <dcpagan> Can I pattern match with type families?
2025-09-28 20:43:43 +0200 <tomsmeding> I don't see why you cannot just compute these things with type families
2025-09-28 20:43:33 +0200 <tomsmeding> you can use type families though :)
2025-09-28 20:43:24 +0200 <dcpagan> That sucks.
2025-09-28 20:43:19 +0200 <tomsmeding> with instances, you don't
2025-09-28 20:43:08 +0200 <dcpagan> So how do I constrain the kind variables?
2025-09-28 20:43:05 +0200 <tomsmeding> haskell typeclasses are not a logic programming language, unfortunately
2025-09-28 20:42:53 +0200ystael(~ystael@user/ystael) (Ping timeout: 250 seconds)
2025-09-28 20:42:43 +0200 <tomsmeding> so both your `VerseIndex n` instances apply to all n
2025-09-28 20:42:36 +0200 <tomsmeding> instances are chosen/disambiguated purely based on the part to the right of the =>
2025-09-28 20:42:29 +0200 <dcpagan> I want to encapsulate the constraints and type errors in a separate instance.
2025-09-28 20:41:58 +0200 <dcpagan> https://github.com/DCPagan/Exercism-Haskell/blob/62845d21c972414c648e69a456990a00280c3faa/house/sr…
2025-09-28 20:41:45 +0200 <dcpagan> I am getting conflicting conflicting type instances from the commented block of code:
2025-09-28 20:41:09 +0200fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 252 seconds)
2025-09-28 20:40:07 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 240 seconds)
2025-09-28 20:39:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-28 20:39:01 +0200 <tomsmeding> that line has nothing to do with KnownSymbol, though :)
2025-09-28 20:38:45 +0200 <tomsmeding> right
2025-09-28 20:38:24 +0200 <dcpagan> tomsmeding: Before, I forgot to add the line "instance (KnownNat n, n <= SongLength) => VerseIndex (n :: Natural)"
2025-09-28 20:36:15 +0200 <tomsmeding> I did have to convert the "type signatures" for Verses/Stanza/Song to StandaloneKindSignatures
2025-09-28 20:36:15 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-09-28 20:36:02 +0200 <tomsmeding> dcpagan: https://play.haskell.org/saved/YzCmA0EI works fine for me
2025-09-28 20:32:39 +0200 <tomsmeding> though I do wonder why the class is necessary
2025-09-28 20:32:04 +0200 <tomsmeding> yeah that makes perfect sense
2025-09-28 20:31:55 +0200 <tomsmeding> oh you mean an instance for VerseIndex, not an instance for KnownSymbol
2025-09-28 20:31:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-09-28 20:30:33 +0200 <tomsmeding> what do you mean with "add an instance statement" precisely?
2025-09-28 20:30:27 +0200 <tomsmeding> or wait
2025-09-28 20:29:56 +0200 <tomsmeding> and it could have an instance for Symbol that delegates to symbolVal
2025-09-28 20:29:44 +0200 <tomsmeding> symbolVal is meant for symbols themselves; if you want tome kind of typeclass for "things that have a name", you should probably create that typeclass yourself
2025-09-28 20:29:30 +0200 <dcpagan> I just did; it fixed it.
2025-09-28 20:29:12 +0200 <tomsmeding> dcpagan: did you add a manual instance to KnownSymbol? That sounds highly dubious and probably not the way to go
2025-09-28 20:26:07 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-28 20:24:09 +0200fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) fp
2025-09-28 20:24:04 +0200arandombit(~arandombi@user/arandombit) arandombit
2025-09-28 20:15:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-09-28 20:14:51 +0200haritz(~hrtz@user/haritz) haritz
2025-09-28 20:14:51 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-09-28 20:14:51 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-09-28 20:10:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-28 20:09:37 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 264 seconds)
2025-09-28 20:07:54 +0200arandombit(~arandombi@user/arandombit) (Ping timeout: 256 seconds)
2025-09-28 20:06:46 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2025-09-28 20:00:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-09-28 19:54:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn