2025/03/13

Newest at the top

2025-03-13 06:19:29 +0100euouae(~euouae@user/euouae) ()
2025-03-13 06:19:27 +0100 <euouae> probably for the worse. oh well. time to sign off
2025-03-13 06:19:03 +0100euouaewonders if that made a difference from T.pack xs where xs :: [Char]
2025-03-13 06:18:58 +0100infohazards(~user@user/fmira) fmira
2025-03-13 06:18:32 +0100 <euouae> I changed `digitChar` to `Text.Builder.singleton <$> digitChar` which returns a [Builder] instead of a [String] or [Char], and then I mconcat over the list, so there's no intermediate String
2025-03-13 06:17:25 +0100 <euouae> by the way, I found a good enough solution for me, I didn't need complicated monads
2025-03-13 06:16:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-13 06:16:01 +0100 <euouae> we made it through unharmed
2025-03-13 06:15:55 +0100 <euouae> a footgun here and there, but thank God for IRC
2025-03-13 06:15:25 +0100 <euouae> e.g. Text says Data.Text.Lazy for its module on hover-over
2025-03-13 06:15:12 +0100 <euouae> ah actually -- if you hover over the name, it shows it complete
2025-03-13 06:14:39 +0100 <jackdk> haddock shows the type names absent any qualification AIUI, and this can be quite confusing.
2025-03-13 06:14:15 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:a56d:37e8:f63c:429c) (Ping timeout: 252 seconds)
2025-03-13 06:13:48 +0100 <euouae> e.g. `:i Foo` will only show you instances of imported modules (as opposed to haddock, full listing) but haddock will confuse different types for the same?
2025-03-13 06:13:20 +0100 <euouae> basically there's situations where haddock is more information complete and there's situations where ghci is more information complete
2025-03-13 06:12:59 +0100 <jackdk> "lazy text" is a value representing a chain of strict text chunks
2025-03-13 06:12:54 +0100 <euouae> wow... really? this sucks.
2025-03-13 06:12:33 +0100 <euouae> and by the way you were right, that's what the issue was. I didn't want lazy text, I just didn't know how to force it
2025-03-13 06:12:27 +0100 <jackdk> Because there are two `Text` types with the same unqualified name. `Data.Text.Text` is not `Data.Text.Lazy.Text` and haddocks do not make this at all clear.
2025-03-13 06:12:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-13 06:11:31 +0100 <euouae> But how can there be a type issue? I don't quite get what's going on here, I'm somewhat familiar with strictness and laziness
2025-03-13 06:10:37 +0100 <jackdk> Without a code sample I can't be sure, but I think the thing you're passing to wants a strict text (as in `Data.Text.Text`) and you might want to consider `toStrict` on the result.
2025-03-13 06:10:19 +0100 <lambdabot> error: Variable not in scope: toLazyText
2025-03-13 06:10:18 +0100 <euouae> :t toLazyText
2025-03-13 06:10:13 +0100 <euouae> :m Data.Text.Lazy.Builder
2025-03-13 06:09:57 +0100 <lambdabot> error: Variable not in scope: toLazyText
2025-03-13 06:09:56 +0100 <euouae> :t toLazyText
2025-03-13 06:09:25 +0100 <euouae> but the typechecker complains about "Couldn't match type ‘Data.Text.Internal.Lazy.Text’ with ‘Text’"
2025-03-13 06:09:06 +0100 <euouae> I'm using text-2.0.2. I am trying to use `toLazyText :: Builder > Text` (supposedly... <https://hackage.haskell.org/package/text-2.0.2/docs/Data-Text-Lazy-Builder.html#v:toLazyText>)
2025-03-13 06:08:39 +0100 <euouae> I don't understand this error
2025-03-13 06:07:48 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:a56d:37e8:f63c:429c) k_hachig
2025-03-13 06:01:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-13 05:58:20 +0100ensyde(~ensyde@2601:5c6:c200:6dc0::b413) ensyde
2025-03-13 05:54:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-13 05:54:00 +0100k_hachig(~k_hachig@2607:fea8:351d:ef0:a56d:37e8:f63c:429c) (Ping timeout: 246 seconds)
2025-03-13 05:49:16 +0100tusko(uid478376@user/tusko) tusko
2025-03-13 05:43:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-03-13 05:42:33 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 276 seconds)
2025-03-13 05:39:25 +0100 <jackdk> You're welcome. Best of luck.
2025-03-13 05:39:12 +0100 <euouae> Sounds good, thank you
2025-03-13 05:39:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-13 05:37:35 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-03-13 05:33:51 +0100 <jackdk> I don't know the guts of megaparsec well enough to say, but when I think back to my experience learning Haskell and the library ecosystem, I found iterative deepening search much more rewarding than deep dives on individual libraries. Do what's most rewarding for you, of course.
2025-03-13 05:32:27 +0100 <euouae> Perhaps I can write this myself? Is it too low-level to try to have efficient Text operations on my own?
2025-03-13 05:31:46 +0100 <euouae> I was hoping a `takeWhileFailure` existed that was /fast/ meaning it crafted the Text string optimally instead of packing from a list
2025-03-13 05:31:24 +0100veryfungi(~veryfungi@user/veryfungi) (Quit: veryfungi)
2025-03-13 05:31:12 +0100 <euouae> What I imagined I would be doing is a `takeWhileFailure` (I made this up) plus my stateful parser
2025-03-13 05:30:21 +0100 <jackdk> (and then yeah, `fmap Text.pack`)
2025-03-13 05:30:07 +0100 <jackdk> Yeah ok I wouldn't put your control flow info in your monadic state then. If you need to run a thing optionally up to 10 times, I would look at `count'` from package `parser-combinators`.
2025-03-13 05:29:53 +0100euouaeTIL google/libphonenumber