Logs: freenode/#haskell
| 2020-09-17 04:32:21 | <Axman6> | you should have a ook at the PR I had on the text-utf8 repo for faster take/drop/indexing, it was roughly 100x faster than the streaming implementation and pretty much branchless |
| 2020-09-17 04:32:28 | <topos> | ooo |
| 2020-09-17 04:32:28 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@107.152.99.41) (Ping timeout: 260 seconds) |
| 2020-09-17 04:32:39 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-131-92.cust.tzulo.com) |
| 2020-09-17 04:32:47 | <Axman6> | but I never finished it off and it was probably too unclear to be maintainable |
| 2020-09-17 04:32:54 | <topos> | https://github.com/text-utf8/text-utf8/pull/11 this guy? |
| 2020-09-17 04:33:05 | <koz_> | topos: What're the numbers on that one? |
| 2020-09-17 04:33:28 | <topos> | koz_ which one? |
| 2020-09-17 04:33:33 | <koz_> | base16 |
| 2020-09-17 04:33:43 | <koz_> | For the same bench as you did for base16-bytestring. |
| 2020-09-17 04:33:54 | <Axman6> | topos: https://github.com/text-utf8/text-utf8/pull/1 |
| 2020-09-17 04:33:54 | <topos> | ah i implemented the same algorithm |
| 2020-09-17 04:33:58 | <topos> | so roughly the same |
| 2020-09-17 04:34:09 | <topos> | ooo |
| 2020-09-17 04:34:15 | → | sumo_r joins (0ec9fb69@14-201-251-105.tpgi.com.au) |
| 2020-09-17 04:35:29 | × | GuerrillaMonkey quits (~Jeanne-Ka@107.152.99.41) (Ping timeout: 272 seconds) |
| 2020-09-17 04:35:31 | <koz_> | Axman6: Is text-utf8 still a live project? |
| 2020-09-17 04:35:41 | <Axman6> | I believe so... |
| 2020-09-17 04:36:00 | <topos> | koz_ the only difference is that I provide a nicer general interface and more support for different types like Text, ShortText, and SHortByteString |
| 2020-09-17 04:36:07 | × | mrte quits (~mrt@p4fcabee7.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 2020-09-17 04:36:21 | <siraben> | Does MTL use strict or lazy state monad by default? |
| 2020-09-17 04:36:33 | <siraben> | Is strict just better space usage wise than lazy? |
| 2020-09-17 04:36:56 | <topos> | Axman6 this is cool stuff :) |
| 2020-09-17 04:37:03 | <Axman6> | hasn't been touched in a while though, hvr would be the best one to answer whether it's live though |
| 2020-09-17 04:37:31 | <topos> | siraben lazy state - https://github.com/haskell/mtl/blob/master/Control/Monad/State.hs |
| 2020-09-17 04:37:33 | <Axman6> | siraben: I believe lazy is the default, but that should be easy to check in the source |
| 2020-09-17 04:37:54 | <siraben> | Ah I see. When should I use strict/lazy state? I've been using lazy all along then. |
| 2020-09-17 04:37:56 | <koz_> | I always specify Control.Monad.State.Strict just to be safe when I import. |
| 2020-09-17 04:38:09 | <Axman6> | the differences between lazy and strict is... one is lazy and one is strict, they have different semantics and there are things you can do in the lazy one which you can't do in the strict one |
| 2020-09-17 04:38:11 | <koz_> | (better be explicit, even if it's just for other folks reading) |
| 2020-09-17 04:38:28 | <topos> | but remember, Strict is better in some ways, but remember that strict state is (confusingly) not strict in its setting, so you still need to `put $! <thing>` if you need it evaluated |
| 2020-09-17 04:38:48 | <topos> | i munged sentences sorry |
| 2020-09-17 04:39:56 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:99ca:18ad:4e5f:ffdf) (Remote host closed the connection) |
| 2020-09-17 04:40:25 | <siraben> | I see. |
| 2020-09-17 04:40:35 | <siraben> | And what's the difference between Control.Monad.Error and Control.Monad.Except? |
| 2020-09-17 04:40:52 | <sumo_r> | Hi all, does anyone know what the ghcxxxx.exe file created in AppData\Local\Temp on windows by cabal repl are? M365 just flagged one of those (ghcbdbc.exe) as Wacatac malware and our admin pinged me for more details |
| 2020-09-17 04:40:59 | <topos> | siraben error is deprecated, use except |
| 2020-09-17 04:41:12 | <topos> | https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Error.html |
| 2020-09-17 04:41:16 | <topos> | top of the haddocks |
| 2020-09-17 04:42:05 | <siraben> | Right |
| 2020-09-17 04:42:18 | <siraben> | I was surprised to see Error so high up: https://www.sciencedirect.com/science/article/pii/S0167642320301313 |
| 2020-09-17 04:42:21 | <siraben> | Must be legacy |
| 2020-09-17 04:42:25 | → | Sunblaze21 joins (~sanjay@116.72.71.64) |
| 2020-09-17 04:43:05 | <siraben> | Most commonly used monads are (most to least order) State, Trans, Reader, Error, Writer, RWS, Identity, Cont, List, Except |
| 2020-09-17 04:43:24 | <topos> | very interesting study thanks. I could actually use this info |
| 2020-09-17 04:44:15 | <siraben> | Turns out not many people use alternative monad transformer libraries |
| 2020-09-17 04:44:43 | → | sumo_r9 joins (0ec9fb69@14-201-251-105.tpgi.com.au) |
| 2020-09-17 04:45:25 | <dolio> | All the stuff that used Error before it was deprecated didn't just disappear from hackage. |
| 2020-09-17 04:45:55 | × | sumo_r quits (0ec9fb69@14-201-251-105.tpgi.com.au) (Ping timeout: 245 seconds) |
| 2020-09-17 04:46:00 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-131-92.cust.tzulo.com) (Quit: Leaving) |
| 2020-09-17 04:46:45 | <siraben> | When does it deprecated? |
| 2020-09-17 04:46:49 | <siraben> | s/does/was |
| 2020-09-17 04:48:12 | <koz_> | Also why? |
| 2020-09-17 04:48:17 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:99ca:18ad:4e5f:ffdf) |
| 2020-09-17 04:49:12 | × | drbean quits (~drbean@TC210-63-209-98.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
| 2020-09-17 04:50:18 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2020-09-17 04:50:20 | <dolio> | I'm not sure. But it probably hasn't been as long since it was deprecated as the (relevant) time before yet. |
| 2020-09-17 04:50:25 | × | wavemode quits (~wavemode@097-070-075-143.res.spectrum.com) (Ping timeout: 240 seconds) |
| 2020-09-17 04:51:41 | <siraben> | Why is continuation monad second least used? |
| 2020-09-17 04:51:58 | → | ransom joins (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
| 2020-09-17 04:52:01 | <topos> | presumably because you have to define an additional `Error` class instance in order to use your errors, which was spurious |
| 2020-09-17 04:52:23 | × | asan quits (~yan4138@114.84.148.87) (Ping timeout: 258 seconds) |
| 2020-09-17 04:52:48 | <topos> | siraben because continuations are hard to get right, and also have very specific use cases that don't often intersect with industry |
| 2020-09-17 04:53:05 | <siraben> | Oops I should correct my list, the actual list is State, Reader, Trans, Error, Writer, Identity, RWS, Except, Cont, List |
| 2020-09-17 04:53:05 | → | kleisli_ joins (~kleisli@2600:1700:4640:c560:68bd:9d76:dbd8:24e7) |
| 2020-09-17 04:53:11 | <siraben> | Figure 9b |
| 2020-09-17 04:53:16 | <siraben> | topos: I see |
| 2020-09-17 04:53:31 | → | asan joins (~yan4138@124.78.128.72) |
| 2020-09-17 04:53:38 | <koz_> | siraben: Cont is very powerful - it can implement all the others - but that's usually overkill. |
| 2020-09-17 04:53:56 | <siraben> | Yeah, there's a great blog post on reimplementing other monads from Cont |
| 2020-09-17 04:54:45 | <dolio> | It's kind of misleading to say Cont can implement the others. |
| 2020-09-17 04:54:49 | → | elliott_ joins (~elliott@pool-71-114-77-65.washdc.fios.verizon.net) |
| 2020-09-17 04:54:56 | <koz_> | dolio: In what sense is it misleading? |
| 2020-09-17 04:55:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 2020-09-17 04:55:40 | <dolio> | Because the way you implement them uses different Cont monads depending on which ones you're embeding. |
| 2020-09-17 04:56:46 | <dolio> | You choose a different `r`. |
| 2020-09-17 04:56:47 | <topos> | callCC @Identity @a @⊥ what could go wrong |
| 2020-09-17 04:58:08 | × | asan quits (~yan4138@124.78.128.72) (Ping timeout: 260 seconds) |
| 2020-09-17 04:59:10 | → | lucid_0x80 joins (~lucid_0x8@188.253.232.35) |
| 2020-09-17 05:01:06 | <davean> | topos: It does exactly what it says it does, whats the problem? |
| 2020-09-17 05:02:07 | <topos> | No problem here. Constructivists be damned |
| 2020-09-17 05:03:02 | × | elliott_ quits (~elliott@pool-71-114-77-65.washdc.fios.verizon.net) (Quit: WeeChat 2.9) |
| 2020-09-17 05:03:08 | <davean> | If you want to complain so much topos, make me a way to record all your issues. |
| 2020-09-17 05:03:24 | → | nan` joins (~nan`@unaffiliated/nan/x-5405850) |
| 2020-09-17 05:03:26 | <siraben> | Should I be creating my own monads more? I usually just use an MTL monad and be done with it. |
| 2020-09-17 05:03:30 | → | elliott_ joins (~elliott@pool-71-114-77-65.washdc.fios.verizon.net) |
| 2020-09-17 05:03:42 | <siraben> | Or some combination of MTL monads |
| 2020-09-17 05:03:43 | <davean> | siraben: it varies. Generally you can make your own monad out of MTL's |
| 2020-09-17 05:03:45 | <topos> | Who's complaining davean? I accept LEM as my lord and savior |
| 2020-09-17 05:04:01 | <siraben> | GeneralizedNewtypeDeriving FTW |
| 2020-09-17 05:04:03 | <davean> | siraben: Often making your own typeclass for them is whats really valuable. |
| 2020-09-17 05:04:18 | <davean> | But not all important monads can be created via composing MTL |
| 2020-09-17 05:04:24 | <siraben> | davean: any good examples on that? |
| 2020-09-17 05:04:52 | <siraben> | That's one gap in the literature, books talk about monads and monad transformers but I haven't read material on modeling effects using custom monad typeclasses. |
| 2020-09-17 05:05:00 | <davean> | siraben: PlanT in 'machines' |
| 2020-09-17 05:05:08 | × | solonarv quits (~solonarv@astrasbourg-653-1-186-165.w90-13.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 2020-09-17 05:05:27 | <davean> | http://hackage.haskell.org/package/machines-0.7/docs/Data-Machine-Plan.html#t:Plan |
| 2020-09-17 05:05:44 | → | mmohammadi9812 joins (~mmohammad@5.116.223.123) |
| 2020-09-17 05:05:46 | <davean> | I was doing on to thread parallelism through too today. |
| 2020-09-17 05:06:01 | <siraben> | Huh, this looks exactly like ReqT from Oleg's work |
All times are in UTC.