Logs on 2022-11-01 (liberachat/#haskell)
| 00:05:11 | → | ajb joins (~ajb@mimas.whatbox.ca) |
| 00:08:06 | × | ajb quits (~ajb@mimas.whatbox.ca) (Client Quit) |
| 00:08:15 | → | ajb joins (~ajb@mimas.whatbox.ca) |
| 00:17:24 | × | talismanick quits (~talismani@c-73-41-86-39.hsd1.ca.comcast.net) (Ping timeout: 248 seconds) |
| 00:19:41 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 00:24:20 | × | redmp quits (~redmp@mobile-166-170-43-64.mycingular.net) (Ping timeout: 246 seconds) |
| 00:26:20 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 00:30:46 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds) |
| 00:36:45 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 00:40:20 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 00:46:44 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 248 seconds) |
| 00:46:54 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 00:49:24 | × | Tuplanolla quits (~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:50:39 | <yin> | is there a WordMap equivalent of IntMap? |
| 00:52:13 | × | gabriel_sevecek quits (~gabriel@188-167-229-200.dynamic.chello.sk) (Ping timeout: 252 seconds) |
| 00:52:21 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds) |
| 00:53:44 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
| 00:54:17 | → | gabriel_sevecek joins (~gabriel@188-167-229-200.dynamic.chello.sk) |
| 00:55:41 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 00:55:47 | <Axman6> | given Int and Word are isomorphic, then yes |
| 00:55:51 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 00:57:02 | × | darkstarx quits (~darkstard@50.126.124.156) (Read error: Connection reset by peer) |
| 00:57:23 | <yin> | i just want to avoid the possibility of havint negative indexes |
| 00:57:37 | <yin> | s/havint/having |
| 00:57:43 | <Axman6> | a lobste.rs thread that a few people here might have some useful contributions: Do you use Nix or equivalent to manage projects and/or systems? https://lobste.rs/s/j2b4z2/do_you_use_nix_equivalent_manage_projects |
| 01:06:44 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 276 seconds) |
| 01:07:36 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 01:08:17 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.7.1) |
| 01:08:31 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 01:08:36 | × | beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 248 seconds) |
| 01:08:56 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 01:11:46 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:17:54 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:21:44 | × | xff0x quits (~xff0x@2405:6580:b080:900:80ef:56a6:a93d:a045) (Ping timeout: 250 seconds) |
| 01:23:37 | <maerwald[m]> | Axman6: no, I don't |
| 01:24:59 | <cheater> | what's everyone's favourite test harness that'll be able to run both normal and property tests? |
| 01:33:02 | <Axman6> | tasty? |
| 01:33:08 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds) |
| 01:34:37 | <sm> | unscientific estimate: tasty seems most popular, hspec second |
| 01:35:19 | <Axman6> | tasty supports hspec no? |
| 01:35:43 | <sm> | yes I believe so |
| 01:37:51 | <cheater> | what does it mean that two things that do the same thing support each other? |
| 01:40:38 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 01:40:42 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 01:41:11 | <Axman6> | you can use tasty to run hspec tests, alongside quickcheck, smallcheck, unit tests, etc. |
| 01:45:11 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds) |
| 01:45:24 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds) |
| 01:45:32 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 01:46:48 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:48:41 | <sm> | both of them have multiple parts: test detectors, test runner(s), a native API/DSL for writing tests, an ecosystem of extensions and adapters to the other test frameworks |
| 01:53:56 | <cheater> | ok, but why would you run hspec tests under tasty? |
| 01:54:05 | <cheater> | or the other way around idk |
| 01:59:07 | <dsal> | tasty is a nice runner and is helpful for discovery. |
| 02:00:38 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 02:00:41 | <yin> | cheater: https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii-chicken-and-egg-problems/ |
| 02:00:48 | <sm> | cheater: you might like the runner of one and the DSL of another, or you might be merging software with a bunch of tests written with different frameworks |
| 02:01:41 | <sm> | or migrating to another framework, but in steps |
| 02:02:11 | <dsal> | I don't really like the cucumber-esque BDD language people seem to use without understanding. |
| 02:02:28 | <dsal> | I do like tasty-discover and various property test things with an occasional dumb hunit. |
| 02:03:03 | <sm> | none of them handle doctest well yet IIRC |
| 02:07:00 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:07:33 | → | tgi joins (~thegeekin@189.180.115.115) |
| 02:07:35 | → | Guest61 joins (~Guest61@pool-100-36-83-121.washdc.fios.verizon.net) |
| 02:09:06 | × | thegeekinside quits (~thegeekin@189.180.115.115) (Ping timeout: 255 seconds) |
| 02:09:46 | <yin> | is there any advantage to doing n.2 here: https://paste.jrvieira.com/1667268547751 ? |
| 02:10:54 | <yin> | or does ghc trivially optimize it? |
| 02:11:35 | <sm> | yin: I'd say the main one avoiding code duplication, so you won't change one and forget the other. There's probably a possibility of avoiding double evaluation as well |
| 02:12:15 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::f30b) (Ping timeout: 255 seconds) |
| 02:17:23 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds) |
| 02:20:57 | <yin> | that's my question. will ghc evaluate it multiple times? this seems like a fairly trivial optimization |
| 02:21:07 | <yin> | is there anything i'm not considering? |
| 02:22:37 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 02:23:20 | <sm> | I don't think you can be certain, if it's non-trivial I'd extract it |
| 02:23:21 | <dolio> | In general you don't always want to do that sort of thing, but I wouldn't be surprised if it's done for pattern guards. |
| 02:23:40 | <dolio> | You should probably check by looking at core stuff, though. |
| 02:25:38 | <yin> | dolio: i'm not very comfortable with core still. by "that sort of thing" do you mean n.1 or n.2 ? |
| 02:25:56 | <dolio> | I mean in general you don't want the compiler to do common subexpression elimination. |
| 02:26:03 | <yin> | s/not very comfortable/not comfortable at all |
| 02:26:05 | <dolio> | It's not always an optimization. |
| 02:26:56 | <yin> | oh ok. so i should be explicit when i can |
| 02:28:11 | <dolio> | Like, if you have a big list that is consumed twice in sequence, it's probably better to not share it, because the first time forces it all into memory, and it can't be collected until the second pass is done with it. |
| 02:28:43 | × | Guest61 quits (~Guest61@pool-100-36-83-121.washdc.fios.verizon.net) (Quit: Guest61) |
| 02:29:55 | <dolio> | However, if you're using pattern guards to match different cases of the same thing, that's not really the same situation. It can just turn into different branches of a single case statement. |
| 02:30:46 | <dolio> | Well, probably it can. |
| 02:33:43 | → | bilegeek joins (~bilegeek@2600:1008:b052:54d3:6bf4:905f:d9e2:8084) |
| 02:34:00 | <dolio> | I think that is an example where GHC will do CSE. That is, situations like: case expr of { ... case expr of { ... } } |
| 02:34:43 | <yin> | i'm kind of lost i admit |
| 02:35:24 | <dolio> | Which part? :) |
| 02:37:36 | <dolio> | If you want an example of why not to do the optimization, try: length ([1..] ++ [1..]) vs. let xs = [1..] in length (xs ++ xs). But be ready to kill ghci in the second case. :) |
| 02:39:23 | <sm> | the practical take-away is try to express in the code what you want, and don't make ghc guess (or yourself guess what it is doing). Ie if you want the expression evaluated once, extract it to one place |
| 02:39:27 | <yin> | ah! i get it now |
| 02:39:28 | <yin> | thanks |
| 02:40:54 | <yin> | that was a great example |
| 02:44:58 | × | Guest71 quits (~Guest71@94.234.103.245) (Ping timeout: 244 seconds) |
| 02:50:12 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 02:57:53 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 02:58:05 | <segfaultfizzbuzz> | MkTrickOrTreat |
| 03:03:39 | <yin> | newtype TrickOrTreat a = MkTrickOrTreat { runTrickOrTreat :: a -> Either Trick Treat } |
| 03:04:04 | <segfaultfizzbuzz> | haha ;^D |
| 03:06:02 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds) |
| 03:08:26 | <dsal> | `data demand = Trick | Treat` |
| 03:08:31 | <dsal> | I just had my first in years. |
| 03:09:11 | dsal | not sure how that got lowercased. Distracted by first trick-or-treater in years. |
| 03:09:14 | <segfaultfizzbuzz> | what is the type of Trick | Treat |
| 03:09:31 | <segfaultfizzbuzz> | ok so the type is Demand? isn't that too broad though? |
| 03:09:34 | <dsal> | Yeah, definitely shouldn't write any code right now. heh. |
| 03:10:00 | <segfaultfizzbuzz> | data HalloweenUninvitedGuestDemand = Trick | Treat ? |
| 03:10:30 | <dsal> | Ha, yeah. I like shorter names, though. The module can store a lot of that information. |
| 03:10:33 | → | darkstarx joins (~darkstard@50.126.124.156) |
| 03:10:34 | <yin> | data Trick = ToiletPaper | PaintWindows | EggHouse | ... |
| 03:10:38 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 03:11:00 | <segfaultfizzbuzz> | or ask haskellers write this stuff: data HUGD = Trk | Trt |
| 03:11:11 | <segfaultfizzbuzz> | yin: haha |
| 03:11:13 | <dsal> | Ah, then you get `Either Trick Treat` which makes sense. |
| 03:11:20 | <yin> | ^ |
| 03:11:45 | segfaultfizzbuzz | halloween monad *ducks* |
| 03:11:50 | <dsal> | Which… you said above. I'm slow today. |
| 03:12:20 | <yin> | dsal: well... did you choose trick or did you choose treat? |
| 03:13:41 | <dsal> | I don't really choose. I have to cover both cases in order to be total. |
| 03:17:29 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 03:17:57 | <yin> | "Trick or treat?" - dsal: "Yes." |
| 03:18:28 | yin | wonders if "trick or treat" is a question or a statement |
| 03:19:05 | <dsal> | It's a colloquialism that's just a demand for candy. |
| 03:19:21 | <[Leary]> | It's a threat. |
| 03:19:40 | <yin> | threats can be questions |
| 03:20:57 | <yin> | an threat in the form of an exclamation would be better stated as "treat or trick!" |
| 03:22:11 | <yin> | as in `treat || trick` |
| 03:22:25 | <yin> | not `trick || treat` |
| 03:22:45 | <yin> | completely different statements |
| 03:24:34 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 03:25:05 | <yin> | > let trick = True ; treat = undefined in trick || treat |
| 03:25:06 | <lambdabot> | True |
| 03:25:17 | <monochrom> | Trk | Trt = track or tract? >:) |
| 03:26:44 | × | td_ quits (~td@83.135.9.57) (Ping timeout: 248 seconds) |
| 03:26:50 | <dsal> | `fromMaybe trick treat` won't evaluate `trick` unless you got `Nothing` |
| 03:27:32 | <yin> | nice |
| 03:28:41 | → | td_ joins (~td@83.135.9.15) |
| 03:28:43 | <yin> | wait, i'm not sure how it works. is the person giving the candy the same doing the trick? |
| 03:29:03 | <dsal> | This is in the threat scenario. |
| 03:29:12 | <yin> | or is the trick a revenge from the kids to those who don't give them candy? |
| 03:29:25 | <dsal> | Yeah. |
| 03:30:15 | <yin> | people don't go trick or treating over here and i'm getting mixed signals from the internet |
| 03:30:18 | <dsal> | received <- maybe (fail "you get egged") pure =<< trickOrTreat |
| 03:30:42 | <dsal> | I think historically, I can give you a treat or a bran muffin. |
| 03:30:54 | <dsal> | (with fentanyl and a razor blade in either) |
| 03:31:05 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 03:33:46 | <segfaultfizzbuzz> | so a kid shows up to a haskeller's house and says "trick or treat" |
| 03:33:53 | <segfaultfizzbuzz> | the haskeller says "..." and just stands there |
| 03:34:02 | <segfaultfizzbuzz> | the kid says "trick or treat!" |
| 03:34:06 | <segfaultfizzbuzz> | and then gets a candy |
| 03:37:03 | × | AlexNoo quits (~AlexNoo@178.34.163.109) (Read error: Connection reset by peer) |
| 03:37:27 | → | AlexNoo joins (~AlexNoo@178.34.163.109) |
| 03:39:23 | <yin> | so a kid shows up to a haskeller's house and says "trick or treat" |
| 03:39:41 | <yin> | the haskeller says "Variable not in scope: trick :: (t0 Bool -> Bool) -> t1 -> t" |
| 03:40:10 | <dsal> | skol'em |
| 03:43:52 | <segfaultfizzbuzz> | yin: lol lol lol lol |
| 03:54:12 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:54:12 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:54:12 | finn_elija | is now known as FinnElija |
| 03:56:34 | <EvanR> | treat = () |
| 03:56:37 | <EvanR> | trick = trick |
| 03:59:45 | <monochrom> | A haskeller wears a Halloween costume and walks into a bar. The people in the bar say: "That's a phantom type." |
| 04:02:49 | <Axman6> | data Operator here a = Op String a a -- The Phantom of the Operator is here |
| 04:03:00 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 248 seconds) |
| 04:03:24 | <monochrom> | haha |
| 04:03:50 | <Axman6> | =) |
| 04:05:12 | × | thonkpod_ quits (~thonkpod@user/thonkpod) (Ping timeout: 255 seconds) |
| 04:05:37 | → | thonkpod_ joins (~thonkpod@user/thonkpod) |
| 04:11:09 | × | tomsmeding quits (~tomsmedin@2a01:4f8:c0c:5e5e::2) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:11:10 | × | bookshelfdave quits (sid28102@id-28102.ilkley.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:10 | ghoulpine | is now known as vulpine |
| 04:11:10 | × | dy quits (sid3438@user/dy) (Read error: Connection reset by peer) |
| 04:11:19 | → | bookshelfdave joins (sid28102@id-28102.ilkley.irccloud.com) |
| 04:11:19 | → | dy joins (sid3438@user/dy) |
| 04:11:22 | → | tomsmeding joins (~tomsmedin@2a01:4f8:c0c:5e5e::2) |
| 04:11:23 | × | lexi-lambda quits (sid92601@id-92601.hampstead.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:23 | × | gregberns__ quits (sid315709@id-315709.helmsley.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:23 | × | lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:23 | × | bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:31 | → | gregberns__ joins (sid315709@id-315709.helmsley.irccloud.com) |
| 04:11:32 | → | lexi-lambda joins (sid92601@id-92601.hampstead.irccloud.com) |
| 04:11:33 | → | bbhoss joins (sid18216@id-18216.tinside.irccloud.com) |
| 04:11:34 | → | lightandlight joins (sid135476@id-135476.helmsley.irccloud.com) |
| 04:11:38 | × | glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:44 | × | sajith quits (~sajith@user/sajith) (Remote host closed the connection) |
| 04:11:46 | → | glowcoil joins (sid3405@id-3405.tinside.irccloud.com) |
| 04:11:46 | × | teehemkay_ quits (sid14792@id-14792.lymington.irccloud.com) (Read error: Connection reset by peer) |
| 04:11:53 | × | feliix42 quits (~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:11:55 | → | teehemkay_ joins (sid14792@id-14792.lymington.irccloud.com) |
| 04:12:00 | × | bjs quits (sid190364@user/bjs) (Write error: Connection reset by peer) |
| 04:12:02 | → | sajith_ joins (~sajith@user/sajith) |
| 04:12:08 | → | feliix42 joins (~felix@gibbs.uberspace.de) |
| 04:12:08 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 04:12:11 | → | bjs joins (sid190364@user/bjs) |
| 04:12:38 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 04:13:16 | × | psydroid quits (~psydroid@user/psydroid) (Ping timeout: 246 seconds) |
| 04:13:16 | × | kronicmage quits (user1639@neotame.csclub.uwaterloo.ca) (Ping timeout: 246 seconds) |
| 04:13:37 | × | mimi1vx[m] quits (~osukupmat@2001:470:69fc:105::2:418d) (Ping timeout: 246 seconds) |
| 04:13:37 | × | sektor[m] quits (~sektor@2001:470:69fc:105::2:3f60) (Ping timeout: 246 seconds) |
| 04:13:37 | × | VarikValefor[m] quits (~varikvale@2001:470:69fc:105::a5d) (Ping timeout: 246 seconds) |
| 04:13:37 | × | mesaoptimizer2 quits (~mesaoptim@user/PapuaHardyNet) (Ping timeout: 246 seconds) |
| 04:13:37 | × | maralorn quits (~maralorn@2001:470:69fc:105::251) (Ping timeout: 246 seconds) |
| 04:13:37 | × | mekeor[m] quits (~mekeormat@2001:470:69fc:105::17e4) (Ping timeout: 246 seconds) |
| 04:13:37 | × | ncf quits (~n@monade.li) (Ping timeout: 246 seconds) |
| 04:13:40 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 248 seconds) |
| 04:13:58 | × | jean-paul[m] quits (~jean-paul@2001:470:69fc:105::d1ab) (Ping timeout: 246 seconds) |
| 04:13:58 | × | Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 246 seconds) |
| 04:13:58 | × | lawt quits (~lawtonmat@2001:470:69fc:105::2:97b8) (Ping timeout: 246 seconds) |
| 04:13:58 | × | fr33domlover[m] quits (~fr33domlo@2001:470:69fc:105::1:3bb6) (Ping timeout: 246 seconds) |
| 04:13:58 | × | fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 246 seconds) |
| 04:13:58 | × | bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (Ping timeout: 246 seconds) |
| 04:14:19 | × | JonathanWatson[m quits (~jjwmatrix@2001:470:69fc:105::2:a544) (Ping timeout: 246 seconds) |
| 04:14:19 | × | cafkafk[m] quits (~cafkafkma@2001:470:69fc:105::1:cea8) (Ping timeout: 246 seconds) |
| 04:14:19 | × | loosh[m] quits (~looshchat@2001:470:69fc:105::2:5ddd) (Ping timeout: 246 seconds) |
| 04:14:19 | × | vladan[m] quits (~vladanmat@2001:470:69fc:105::2:24df) (Ping timeout: 246 seconds) |
| 04:14:21 | → | kronicmage joins (user93427@neotame.csclub.uwaterloo.ca) |
| 04:14:44 | → | ncf joins (~n@monade.li) |
| 04:14:49 | → | bwe joins (~bwe@2a01:4f8:1c1c:4878::2) |
| 04:16:11 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 04:16:36 | <segfaultfizzbuzz> | monochrom: haha |
| 04:23:48 | → | king_gs joins (~Thunderbi@187.201.83.115) |
| 04:25:19 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 04:25:38 | → | VarikValefor[m] joins (~varikvale@2001:470:69fc:105::a5d) |
| 04:27:11 | → | mekeor[m] joins (~mekeormat@2001:470:69fc:105::17e4) |
| 04:27:56 | → | maralorn joins (~maralorn@2001:470:69fc:105::251) |
| 04:28:05 | → | psydroid joins (~psydroid@user/psydroid) |
| 04:29:15 | → | sektor[m] joins (~sektor@2001:470:69fc:105::2:3f60) |
| 04:29:23 | → | mesaoptimizer2 joins (~mesaoptim@user/PapuaHardyNet) |
| 04:30:23 | → | mimi1vx[m] joins (~osukupmat@2001:470:69fc:105::2:418d) |
| 04:30:55 | → | lawt joins (~lawtonmat@2001:470:69fc:105::2:97b8) |
| 04:30:58 | → | jean-paul[m] joins (~jean-paul@2001:470:69fc:105::d1ab) |
| 04:31:17 | → | fr33domlover[m] joins (~fr33domlo@2001:470:69fc:105::1:3bb6) |
| 04:33:19 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 252 seconds) |
| 04:33:29 | → | fgaz joins (~fgaz@2001:470:69fc:105::842) |
| 04:33:35 | → | wagle joins (~wagle@quassel.wagle.io) |
| 04:33:41 | → | Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0) |
| 04:34:31 | → | vladan[m] joins (~vladanmat@2001:470:69fc:105::2:24df) |
| 04:34:50 | → | loosh[m] joins (~looshchat@2001:470:69fc:105::2:5ddd) |
| 04:35:32 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds) |
| 04:35:36 | → | cafkafk[m] joins (~cafkafkma@2001:470:69fc:105::1:cea8) |
| 04:36:06 | → | JonathanWatson[m joins (~jjwmatrix@2001:470:69fc:105::2:a544) |
| 04:36:07 | × | Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer) |
| 04:36:51 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 04:37:08 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 248 seconds) |
| 04:42:15 | × | biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 04:42:38 | → | biberu joins (~biberu@user/biberu) |
| 04:47:29 | → | Guest75 joins (~Guest75@178.141.197.193) |
| 04:48:11 | → | mbuf joins (~Shakthi@49.204.137.137) |
| 04:51:32 | × | king_gs quits (~Thunderbi@187.201.83.115) (Ping timeout: 248 seconds) |
| 04:53:35 | × | Guest75 quits (~Guest75@178.141.197.193) (Quit: Client closed) |
| 04:56:49 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 04:58:23 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 05:02:44 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds) |
| 05:03:00 | × | lucerne quits (~lucerne@5.113.197.120) (Read error: Connection reset by peer) |
| 05:03:17 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 246 seconds) |
| 05:04:52 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 248 seconds) |
| 05:12:05 | → | darkstardev13 joins (~darkstard@50.126.124.156) |
| 05:14:10 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 05:14:34 | × | darkstarx quits (~darkstard@50.126.124.156) (Ping timeout: 252 seconds) |
| 05:18:27 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 05:20:45 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 05:23:26 | × | tolt quits (~weechat-h@li219-154.members.linode.com) (Quit: WeeChat 2.9) |
| 05:23:42 | → | tolt joins (~weechat-h@li219-154.members.linode.com) |
| 05:30:17 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 05:30:43 | × | Guest2944 quits (~Guest29@185.216.186.110) (Quit: Client closed) |
| 05:30:58 | → | Vajb joins (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) |
| 05:32:13 | × | bilegeek quits (~bilegeek@2600:1008:b052:54d3:6bf4:905f:d9e2:8084) (Quit: Leaving) |
| 05:55:00 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
| 05:58:22 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 06:06:12 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds) |
| 06:07:55 | → | talismanick joins (~talismani@2601:200:c100:c9e0::1b0b) |
| 06:08:20 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 248 seconds) |
| 06:09:32 | → | zaquest joins (~notzaques@5.130.79.72) |
| 06:10:18 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds) |
| 06:16:17 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 06:22:18 | → | aliosablack joins (~chomwitt@2a02:587:dc18:4a00:1ac0:4dff:fedb:a3f1) |
| 06:28:04 | × | tgi quits (~thegeekin@189.180.115.115) (Ping timeout: 248 seconds) |
| 06:39:18 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:40:52 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 248 seconds) |
| 06:42:55 | → | biberu\ joins (~biberu@user/biberu) |
| 06:46:25 | × | biberu quits (~biberu@user/biberu) (Ping timeout: 252 seconds) |
| 06:46:25 | biberu\ | is now known as biberu |
| 06:47:12 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 255 seconds) |
| 06:49:46 | × | mbuf quits (~Shakthi@49.204.137.137) (Read error: Connection reset by peer) |
| 06:49:54 | × | thonkpod_ quits (~thonkpod@user/thonkpod) (Ping timeout: 255 seconds) |
| 06:50:20 | → | thonkpod_ joins (~thonkpod@user/thonkpod) |
| 06:50:38 | → | mbuf joins (~Shakthi@49.204.137.137) |
| 06:50:38 | → | wagle joins (~wagle@quassel.wagle.io) |
| 06:57:25 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 252 seconds) |
| 06:58:59 | → | dsrt^ joins (~dsrt@76.145.185.103) |
| 07:03:38 | → | wagle joins (~wagle@quassel.wagle.io) |
| 07:04:36 | × | darkstardev13 quits (~darkstard@50.126.124.156) (Read error: Connection reset by peer) |
| 07:11:55 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 07:14:20 | → | mmhat joins (~mmh@p200300f1c7307603ee086bfffe095315.dip0.t-ipconnect.de) |
| 07:14:57 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 07:15:26 | → | king_gs joins (~Thunderbi@187.201.83.115) |
| 07:16:59 | → | kmein joins (~weechat@user/kmein) |
| 07:18:24 | → | lucerne joins (~lucerne@5.112.48.17) |
| 07:18:58 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 07:21:05 | → | coot joins (~coot@213.134.171.3) |
| 07:21:37 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 252 seconds) |
| 07:22:03 | × | coot quits (~coot@213.134.171.3) (Client Quit) |
| 07:23:21 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:7d68:5b7c:dcd9:213) |
| 07:24:04 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 07:24:04 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 07:25:51 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:26:09 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:27:07 | × | tolt quits (~weechat-h@li219-154.members.linode.com) (Ping timeout: 252 seconds) |
| 07:27:37 | → | tolt joins (~weechat-h@li219-154.members.linode.com) |
| 07:30:01 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 07:31:10 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 07:31:18 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:31:34 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 07:34:32 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 07:34:33 | × | king_gs quits (~Thunderbi@187.201.83.115) (Read error: Connection reset by peer) |
| 07:34:54 | → | king_gs joins (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) |
| 07:35:25 | → | freeside joins (~mengwong@122.11.214.163) |
| 07:35:42 | → | kenran joins (~user@user/kenran) |
| 07:36:01 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 07:36:25 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 07:36:42 | × | lucerne quits (~lucerne@5.112.48.17) (Ping timeout: 255 seconds) |
| 07:36:51 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 07:37:14 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
| 07:44:37 | → | acidjnk joins (~acidjnk@p200300d6e7137a36f0ab6f680c2cefbd.dip0.t-ipconnect.de) |
| 07:46:08 | → | dcoutts joins (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
| 07:50:45 | → | python476 joins (~user@88.160.31.174) |
| 07:51:06 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 255 seconds) |
| 07:51:19 | → | ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) |
| 07:54:15 | × | talismanick quits (~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 255 seconds) |
| 08:03:54 | × | aliosablack quits (~chomwitt@2a02:587:dc18:4a00:1ac0:4dff:fedb:a3f1) (Ping timeout: 268 seconds) |
| 08:06:49 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:07:08 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) |
| 08:09:33 | × | dcoutts quits (~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 255 seconds) |
| 08:13:38 | → | dcoutts joins (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
| 08:13:56 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 08:20:14 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 08:20:22 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:21:52 | → | gmg joins (~user@user/gehmehgeh) |
| 08:28:02 | → | zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 08:28:38 | → | `2jt joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) |
| 08:28:38 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:29:40 | × | freeside quits (~mengwong@122.11.214.163) (Read error: Connection reset by peer) |
| 08:31:10 | × | ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:32:01 | × | vglfr quits (~vglfr@145.224.100.22) (Remote host closed the connection) |
| 08:32:09 | → | ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) |
| 08:32:16 | → | vglfr joins (~vglfr@145.224.100.22) |
| 08:32:25 | × | vglfr quits (~vglfr@145.224.100.22) (Remote host closed the connection) |
| 08:33:36 | → | vglfr joins (~vglfr@145.224.100.22) |
| 08:34:29 | → | ubert joins (~Thunderbi@77.119.195.127.wireless.dyn.drei.com) |
| 08:38:53 | × | cheater quits (~Username@user/cheater) (Quit: BitchX: the IRC client with hair on its balls) |
| 08:39:43 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 258 seconds) |
| 08:41:49 | → | gmg joins (~user@user/gehmehgeh) |
| 08:42:06 | × | ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 08:42:28 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 252 seconds) |
| 08:42:42 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 08:46:07 | × | king_gs quits (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Quit: king_gs) |
| 08:48:14 | → | cheater joins (~Username@user/cheater) |
| 08:48:38 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 08:54:01 | × | mbuf quits (~Shakthi@49.204.137.137) (Ping timeout: 252 seconds) |
| 08:54:34 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 252 seconds) |
| 08:54:44 | × | dsrt^ quits (~dsrt@76.145.185.103) (Ping timeout: 248 seconds) |
| 08:55:06 | → | mbuf joins (~Shakthi@49.204.137.137) |
| 08:55:18 | → | wagle joins (~wagle@quassel.wagle.io) |
| 09:01:45 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 255 seconds) |
| 09:02:08 | → | michalz joins (~michalz@185.246.207.221) |
| 09:05:04 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 09:09:24 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds) |
| 09:10:18 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 09:11:03 | → | chomwitt joins (~chomwitt@athe730-c-multi-217.home.otenet.gr) |
| 09:13:39 | jeffbezos | is now known as nckx |
| 09:15:50 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 09:16:11 | × | vglfr quits (~vglfr@145.224.100.22) (Remote host closed the connection) |
| 09:16:50 | → | vglfr joins (~vglfr@145.224.100.22) |
| 09:17:47 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 09:18:45 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 09:24:01 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 09:25:14 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 09:25:28 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:28:03 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 09:28:28 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) (Remote host closed the connection) |
| 09:32:46 | → | titibandit joins (~titibandi@xdsl-87-79-250-160.nc.de) |
| 09:35:49 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 09:36:59 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:37:07 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 09:41:07 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 09:44:07 | → | chele joins (~chele@user/chele) |
| 09:44:41 | × | acidjnk quits (~acidjnk@p200300d6e7137a36f0ab6f680c2cefbd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 09:47:49 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 09:48:01 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 09:49:00 | → | lucerne joins (~lucerne@5.116.23.112) |
| 09:50:24 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 09:50:57 | × | Spukgespenst quits (~user@user/siracusa) (Quit: Bye!) |
| 09:51:40 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 09:52:05 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 09:53:24 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds) |
| 09:53:31 | → | king_gs joins (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) |
| 09:54:37 | → | __monty__ joins (~toonn@user/toonn) |
| 09:58:11 | → | freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg) |
| 09:59:24 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
| 10:00:54 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:03:14 | × | danza quits (~francesco@22.red-79-153-42.dynamicip.rima-tde.net) (Ping timeout: 246 seconds) |
| 10:03:51 | → | acidjnk joins (~acidjnk@p200300d6e7137a36d04e220ec440ab2b.dip0.t-ipconnect.de) |
| 10:04:33 | → | Kaiepi joins (~Kaiepi@108.175.84.104) |
| 10:05:41 | → | kenran joins (~user@user/kenran) |
| 10:06:35 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 10:06:46 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:07:34 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 10:09:10 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 10:09:31 | × | vglfr quits (~vglfr@145.224.100.22) (Ping timeout: 272 seconds) |
| 10:09:43 | → | img joins (~img@user/img) |
| 10:09:55 | → | vglfr joins (~vglfr@145.224.100.22) |
| 10:10:10 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 10:10:35 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 10:10:46 | × | darkstardevx quits (~darkstard@50.126.124.156) (Client Quit) |
| 10:11:34 | × | lucerne quits (~lucerne@5.116.23.112) (Ping timeout: 252 seconds) |
| 10:12:52 | → | frost77 joins (~frost@user/frost) |
| 10:15:09 | → | dcoutts_ joins (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
| 10:15:13 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds) |
| 10:15:35 | × | dcoutts quits (~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Read error: Connection reset by peer) |
| 10:22:18 | × | zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 255 seconds) |
| 10:24:17 | → | RobertKrook joins (~RobertKro@ext-1-087.eduroam.chalmers.se) |
| 10:27:22 | <RobertKrook> | Hi! I have a question. Can I create an IORef <something>, give that to a FFI call that stuffs it away in a global variable in C, and rely on the GC to not nuke that value? |
| 10:27:41 | <RobertKrook> | Don't ask me why I am doing this... |
| 10:28:34 | → | AkechiShiro joins (~licht@user/akechishiro) |
| 10:28:43 | <merijn> | RobertKrook: Yes, with a bit of effort |
| 10:29:15 | <RobertKrook> | Effort is okay, I will carry this cross so that others won't have to~ |
| 10:29:17 | <merijn> | RobertKrook: You want StablePtr |
| 10:29:23 | <merijn> | RobertKrook: https://hackage.haskell.org/package/base-4.17.0.0/docs/GHC-Stable.html#t:StablePtr |
| 10:29:41 | <merijn> | RobertKrook: Which turns any Haskell value into an opaque void* for C to hold on to and pass back to the RTS later |
| 10:30:13 | <merijn> | (and guarantees no GC/moving/whatever until manually freed) |
| 10:33:34 | × | RobertKrook quits (~RobertKro@ext-1-087.eduroam.chalmers.se) (Ping timeout: 252 seconds) |
| 10:36:19 | × | vglfr quits (~vglfr@145.224.100.22) (Ping timeout: 252 seconds) |
| 10:36:38 | → | vglfr joins (~vglfr@145.224.100.22) |
| 10:37:06 | → | ubert1 joins (~Thunderbi@77.119.195.127.wireless.dyn.drei.com) |
| 10:37:19 | → | RobertKrook joins (~RobertKro@ext-1-087.eduroam.chalmers.se) |
| 10:37:25 | × | ubert quits (~Thunderbi@77.119.195.127.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 10:37:25 | ubert1 | is now known as ubert |
| 10:39:52 | → | danza joins (~francesco@93.176.137.22) |
| 10:48:18 | → | beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
| 10:48:36 | → | causal joins (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d) |
| 10:49:34 | × | titibandit quits (~titibandi@xdsl-87-79-250-160.nc.de) (Quit: Leaving.) |
| 10:51:10 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 10:51:33 | → | cheater joins (~Username@user/cheater) |
| 10:52:23 | × | Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
| 10:53:25 | → | Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 10:53:36 | × | mbuf quits (~Shakthi@49.204.137.137) (Read error: Connection reset by peer) |
| 10:53:47 | → | mbuf joins (~Shakthi@49.204.137.137) |
| 10:59:25 | × | wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 252 seconds) |
| 10:59:59 | → | wagle joins (~wagle@quassel.wagle.io) |
| 11:00:33 | × | Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
| 11:00:52 | → | Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 11:01:01 | × | dcoutts_ quits (~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Remote host closed the connection) |
| 11:01:24 | → | dcoutts_ joins (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
| 11:06:41 | × | acidjnk quits (~acidjnk@p200300d6e7137a36d04e220ec440ab2b.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 11:08:15 | → | xff0x joins (~xff0x@2405:6580:b080:900:4f74:df9f:ea35:9157) |
| 11:09:19 | × | dcoutts_ quits (~duncan@host86-163-164-210.range86-163.btcentralplus.com) (Ping timeout: 252 seconds) |
| 11:12:23 | × | mesaoptimizer quits (apotheosis@user/PapuaHardyNet) (Quit: mesaoptimizer) |
| 11:12:32 | → | mesaoptimizer joins (apotheosis@user/PapuaHardyNet) |
| 11:18:48 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds) |
| 11:20:31 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 11:26:40 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 11:27:35 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:29:07 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 11:29:07 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds) |
| 11:30:43 | → | freeside_ joins (~mengwong@103.252.202.193) |
| 11:32:04 | × | freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds) |
| 11:36:31 | <tomsmeding> | RobertKrook: https://ircbrowse.tomsmeding.com/browse/lchaskell?id=756670#trid756670 |
| 11:39:35 | dunj3_ | is now known as dunj3 |
| 11:42:34 | <cheater> | if i define a top level function like foo a = a ++ a, and then write a type for it, when exactly do i need to use forall? |
| 11:45:21 | → | chele_ joins (~chele@user/chele) |
| 11:47:49 | × | chele quits (~chele@user/chele) (Ping timeout: 252 seconds) |
| 11:51:58 | <merijn> | cheater: Never, because there is an implicit forall in Haskell signatures |
| 11:52:08 | <merijn> | forall is really something from the underlying theory used by GHC |
| 11:52:24 | <merijn> | So "id :: a -> a" is interpreted by GHC as "id :: forall a . a -> a" |
| 11:52:32 | <cheater> | ok. |
| 11:52:45 | <cheater> | thanks |
| 11:52:47 | <cheater> | :) |
| 11:54:26 | <cheater> | merijn: hmm... |
| 11:54:35 | <cheater> | "A confusing point: you may hear that when you omit the forall from a type it is actually still implicitly there. (from Norman's answer: "normally these languages omit the forall from polymorphic types"). This claim is correct, but it refers to the other uses of forall, and not to the ScopedTypeVariables use." |
| 11:57:18 | <merijn> | cheater: My statement is about "no extensions" haskell, there's several extensions that make the foralls explicit or hijack them for other things |
| 11:57:30 | <cheater> | k |
| 11:58:04 | <merijn> | cheater: ScopedTypeVariables is defined in such a way that it "does nothing" unless you opt specific functions into using it (so enabling the extension doesn't break half a module) |
| 11:58:16 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds) |
| 11:58:17 | <merijn> | You opt in by explicitly using forall in the signature |
| 11:58:46 | <merijn> | i.e. if you write "foo :: forall a . a -> a" signals to GHC "I want ScopedTypeVariables before for the local bindings within 'foo'" |
| 11:59:00 | <merijn> | s/before/behaviour |
| 12:00:07 | → | __monty__ joins (~toonn@user/toonn) |
| 12:05:26 | → | Kaipei joins (~Kaiepi@108.175.84.104) |
| 12:05:33 | × | frost77 quits (~frost@user/frost) (Ping timeout: 244 seconds) |
| 12:08:43 | × | Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds) |
| 12:12:38 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:18:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:21:48 | → | acidjnk joins (~acidjnk@p200300d6e7137a36d04e220ec440ab2b.dip0.t-ipconnect.de) |
| 12:25:51 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:27:13 | → | lucerne joins (~lucerne@5.114.187.176) |
| 12:28:16 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 12:30:57 | × | causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d) (Ping timeout: 246 seconds) |
| 12:33:18 | × | Profpatsch quits (~Profpatsc@static.88-198-193-255.clients.your-server.de) (Quit: WeeChat 3.7) |
| 12:33:28 | × | Kaipei quits (~Kaiepi@108.175.84.104) (Ping timeout: 252 seconds) |
| 12:43:55 | × | danza quits (~francesco@93.176.137.22) (Ping timeout: 252 seconds) |
| 12:44:19 | → | danza joins (~francesco@93.176.137.22) |
| 12:45:06 | → | causal joins (~user@50.35.83.177) |
| 12:46:30 | → | Kaipei joins (~Kaiepi@108.175.84.104) |
| 12:51:30 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:54:55 | × | RobertKrook quits (~RobertKro@ext-1-087.eduroam.chalmers.se) (Ping timeout: 252 seconds) |
| 12:55:02 | → | irrgit_ joins (~irrgit@89.47.234.74) |
| 12:57:40 | × | mbuf quits (~Shakthi@49.204.137.137) (Ping timeout: 252 seconds) |
| 12:58:03 | → | mbuf joins (~Shakthi@49.204.137.137) |
| 12:59:34 | × | chele_ quits (~chele@user/chele) (Remote host closed the connection) |
| 12:59:48 | → | chele_ joins (~chele@user/chele) |
| 13:00:00 | × | Kaipei quits (~Kaiepi@108.175.84.104) (Ping timeout: 246 seconds) |
| 13:20:18 | → | ystael joins (~ystael@user/ystael) |
| 13:21:40 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 13:32:25 | <cheater> | merijn: ahh ok |
| 13:35:59 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 272 seconds) |
| 13:37:35 | → | Guest16 joins (~Guest16@219-100-30-111.osa.wi-gate.net) |
| 13:40:29 | × | Guest16 quits (~Guest16@219-100-30-111.osa.wi-gate.net) (Client Quit) |
| 13:41:33 | → | elevenkb joins (~elevenkb`@105.184.125.168) |
| 13:43:32 | × | tired quits (~tired@user/tired) (Quit: /) |
| 13:44:10 | → | tired joins (~tired@user/tired) |
| 13:50:40 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 13:53:25 | → | Kaipei joins (~Kaiepi@108.175.84.104) |
| 13:55:39 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
| 13:57:06 | × | elevenkb quits (~elevenkb`@105.184.125.168) (Quit: Client closed) |
| 13:57:51 | × | `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 255 seconds) |
| 13:58:05 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 14:05:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:11:12 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 14:11:41 | → | thegeekinside joins (~thegeekin@189.180.115.115) |
| 14:15:46 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 14:16:11 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:18:05 | → | johnw joins (~johnw@2600:1700:cf00:db0:c1b5:8725:73d7:1ac) |
| 14:19:59 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:20:08 | <dminuoso> | Arguably, it might be nicer if a forall was always demanded when quantification occured. |
| 14:23:40 | <dminuoso> | However, the scoping is an interesting thing. Originally I held the opinion that `forall` in a type signature bringing a type variable into scope in a subbinding would be a good thing. |
| 14:24:01 | × | lucerne quits (~lucerne@5.114.187.176) (Ping timeout: 252 seconds) |
| 14:24:22 | → | zaquest joins (~notzaques@5.130.79.72) |
| 14:24:57 | <dminuoso> | Until ski pointed out that there's some disconnect between the type signature and the definition, which could be apart - one could have the definition at the top of the module and the type signature at the bottom. And in that, the ScopedTypeVariables behavior seems strange and confusing. |
| 14:25:40 | → | kenran joins (~user@user/kenran) |
| 14:25:46 | <dminuoso> | An explicit type variable binder `f @a x = ...` seems more logically, because then there's a clear binding sight |
| 14:26:42 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 14:30:15 | × | vglfr quits (~vglfr@145.224.100.22) (Read error: Connection reset by peer) |
| 14:30:29 | → | vglfr joins (~vglfr@145.224.100.22) |
| 14:31:26 | <tomsmeding> | that introduces a dependency on the ordering of forall-quantified type parameters though |
| 14:31:44 | <tomsmeding> | you already have that with type applications, but it's always iffy |
| 14:31:49 | × | elevenkb quits (~elevenkb@105.184.125.168) (Quit: Ping timeout (120 seconds)) |
| 14:31:56 | <tomsmeding> | needing to remember the order of value arguments is bad enough |
| 14:32:47 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:33:39 | <dminuoso> | It seems worse to have a type annotation magically beam variables into scope half a module away. |
| 14:34:07 | <dminuoso> | If Einstein was still alive, he would call them spooky type variables. |
| 14:34:09 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 14:34:43 | <int-e> | surely you can use template haskell staging to disconnect them |
| 14:34:49 | int-e | runs |
| 14:36:20 | <tomsmeding> | dminuoso: sure :p |
| 14:36:34 | <tomsmeding> | dminuoso: though, you get the same disconnect w.r.t. ordering |
| 14:36:49 | <tomsmeding> | because the ordering is defined by the type signature, and the ordering is used in the function definition |
| 14:42:10 | merijn | gets out his "TypeApplications is stupid and will break your shit" drum |
| 14:42:22 | <c_wraith> | ScopedTypeVariables *does* also allow binding type variables in a lambda - for types of arguments |
| 14:43:19 | <c_wraith> | For all the complaints I've heard about TypeApplications breaking things, I've never actually seen it happen in code where I'd want to use it. |
| 14:45:53 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 14:53:59 | <merijn> | c_wraith: It already happened, GHC 9 had release notes mentioning at least 2 (I think?) package breaking because the order in which GHC inferred the foralls was changed |
| 14:54:23 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 14:56:01 | <c_wraith> | Why did they let the foralls be inferred? |
| 14:56:20 | → | bjourne joins (~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5) |
| 14:56:30 | → | titibandit joins (~titibandi@xdsl-87-79-250-160.nc.de) |
| 14:57:04 | <merijn> | c_wraith: Because it was just normal haskell? |
| 14:57:31 | <merijn> | And some packages used TypeApplications on code that had no explicit forall (and thus no fixed order on type arguments) |
| 14:57:46 | <merijn> | And when GHC changed it's internal inference algorithm that order changed (and thus broke) |
| 14:58:15 | × | zeenk quits (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
| 14:59:27 | → | zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 15:00:30 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 15:01:00 | <fendor[m]> | Heyo, I want to mess around with some type level programming, is it possible to have some kind of type instance rewrite rules for type families? E.g., I am thinking of having something like `forall a p . Last (Append a p) ~ p`. first-class-families is capable of referring the other way around, e.g. `forall a p . Tail (Cons a p) ~ p`. |
| 15:01:22 | → | chele__ joins (~chele@user/chele) |
| 15:01:23 | <fendor[m]> | *Init (Append a p) + p |
| 15:04:10 | × | chele_ quits (~chele@user/chele) (Ping timeout: 252 seconds) |
| 15:04:20 | → | `2jt joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) |
| 15:04:52 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 248 seconds) |
| 15:09:07 | <heath> | til archive.org is around 100petabytes |
| 15:09:14 | <heath> | sorry, wrong chan :) |
| 15:12:06 | × | zeenk quits (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Ping timeout: 255 seconds) |
| 15:16:57 | → | zeenk joins (~zeenk@5.12.219.147) |
| 15:20:34 | <bjourne> | im annoyed that "stack build" takes over a second to run even when there is nothing to (re)build |
| 15:22:14 | <fendor[m]> | last time I used stack, it was pretty quick |
| 15:23:58 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 15:24:11 | <fendor[m]> | bjourne, you don't happen to use nixos, right? |
| 15:24:13 | → | ystael joins (~ystael@user/ystael) |
| 15:25:29 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 15:26:59 | × | acidjnk quits (~acidjnk@p200300d6e7137a36d04e220ec440ab2b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 15:27:21 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 15:30:34 | × | zeenk quits (~zeenk@5.12.219.147) (Ping timeout: 252 seconds) |
| 15:31:58 | → | zeenk joins (~zeenk@5.12.219.147) |
| 15:33:54 | → | segfaultfizzbuzz joins (~segfaultf@12.172.217.142) |
| 15:34:20 | × | zeenk quits (~zeenk@5.12.219.147) (Remote host closed the connection) |
| 15:34:28 | → | acidjnk joins (~acidjnk@p200300d6e7137a4494984508834583e9.dip0.t-ipconnect.de) |
| 15:35:23 | → | zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 15:37:02 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 15:38:16 | × | segfaultfizzbuzz quits (~segfaultf@12.172.217.142) (Ping timeout: 252 seconds) |
| 15:41:38 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 15:42:45 | → | bdrewery[m] joins (~bdrewerym@2001:470:69fc:105::1:684a) |
| 15:44:08 | × | king_gs quits (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Remote host closed the connection) |
| 15:44:15 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) |
| 15:44:27 | → | king_gs joins (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) |
| 15:45:54 | × | AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.7.1) |
| 15:48:57 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1) |
| 15:52:39 | <bjourne> | fendor[m]: no arch |
| 15:55:22 | <fendor[m]> | hm, maybe I misremember then |
| 15:55:25 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 15:58:37 | × | Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving) |
| 16:01:29 | × | zeenk quits (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
| 16:01:57 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 16:02:55 | × | Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Client Quit) |
| 16:03:50 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 16:04:51 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:7d68:5b7c:dcd9:213) (Quit: WeeChat 2.8) |
| 16:06:58 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 16:08:53 | justache | is now known as justPardoned |
| 16:09:08 | <tomsmeding> | fendor[m]: a very well-placed pattern match on (Refl :: (Last (Append a p)) p) might work, but it'll be flaky and difficult to get right |
| 16:09:26 | <tomsmeding> | s/Refl/unsafeCoerce Refl/ |
| 16:09:56 | × | Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Quit: leaving) |
| 16:10:02 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) (Remote host closed the connection) |
| 16:10:27 | <fendor[m]> | >_< new typechecker plugins have a new field tcPluginRewrite, according to the docs |
| 16:10:28 | <fendor[m]> | > Rewrite saturated type family applications. |
| 16:10:29 | <lambdabot> | <hint>:1:19: error: parse error on input ‘type’ |
| 16:11:35 | <fendor[m]> | maybe that'd be helpful for this in particular |
| 16:11:38 | <fendor[m]> | but not very extensible |
| 16:19:27 | → | econo joins (uid147250@user/econo) |
| 16:25:58 | → | dsrt^ joins (~dsrt@76.145.185.103) |
| 16:28:36 | <sm> | bjourne: there is some |
| 16:28:36 | <sm> | no zero overhead for sure.. is it a big project ? |
| 16:28:52 | × | zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 252 seconds) |
| 16:30:31 | sajith_ | is now known as sajith |
| 16:30:35 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) |
| 16:31:06 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 16:32:01 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 16:32:10 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:33:44 | → | Sgeo_ joins (~Sgeo@user/sgeo) |
| 16:37:07 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 252 seconds) |
| 16:38:42 | → | lucerne joins (~lucerne@5.114.187.176) |
| 16:41:53 | → | zaquest joins (~notzaques@5.130.79.72) |
| 16:43:52 | × | dsrt^ quits (~dsrt@76.145.185.103) (Remote host closed the connection) |
| 16:45:22 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 16:49:45 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds) |
| 16:57:34 | → | shriekingnoise_ joins (~shrieking@186.137.167.202) |
| 16:58:01 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Ping timeout: 252 seconds) |
| 16:59:10 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) (Remote host closed the connection) |
| 17:00:17 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) |
| 17:00:46 | × | titibandit quits (~titibandi@xdsl-87-79-250-160.nc.de) (Ping timeout: 252 seconds) |
| 17:01:24 | → | titibandit joins (~titibandi@xdsl-87-79-250-160.nc.de) |
| 17:06:14 | → | pi42 joins (~baruchel@70.25.7.93.rev.sfr.net) |
| 17:11:53 | <pi42> | Is it possible to build an infinite list by starting from an initial seed (element of index 0) and then building new chunks whose lengths are increasing powers of 2 by copying/modifying the previous chunk? |
| 17:11:55 | <pi42> | Let's take the Thue-Morse sequence (please, this is a toy example; I am not interested here in more efficient ways of building that sequence). |
| 17:11:57 | <pi42> | One way of bulding it is by starting from [0] and then concatenating the list with itself by applying the mapping \x -> 1-x; yielding [0, 1] then [0, 1, 1, 0], [0, 1, 1, 0, 1, 0, 0, 1@, etc. |
| 17:11:58 | <pi42> | Of course, I am interested in lazy evaluation, but it would be OK if each new chunk is generated all at once. |
| 17:12:06 | → | redmp joins (~redmp@lib-02-subnet-194.rdns.cenic.net) |
| 17:12:11 | × | Vq quits (~vq@90-227-195-41-no77.tbcn.telia.com) (Quit: Server maintenance) |
| 17:12:18 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 17:16:19 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 17:16:35 | × | Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Client Quit) |
| 17:16:59 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 17:17:35 | → | Vq joins (~vq@90-227-195-41-no77.tbcn.telia.com) |
| 17:17:51 | <ski> | > fix (\pos -> 1 : [n | m <- pos,n <- [2*m,2*m + 1]]) |
| 17:17:52 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
| 17:18:02 | → | Maeda joins (~Maeda@91-161-10-149.subs.proxad.net) |
| 17:19:15 | <ski> | pi42 : you could use an accumulator, of course .. |
| 17:19:39 | <ski> | are there any constraints on how you build each new chunk from the previous one ? |
| 17:21:21 | → | Hercules joins (~Hercules@ti0018a400-8077.bb.online.no) |
| 17:24:57 | <int-e> | > concat $ iterate (\chunk -> chunk >>= \n -> [2*n, 2*n+1]) [1] |
| 17:24:58 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
| 17:25:14 | <int-e> | > iterate (\chunk -> chunk >>= \n -> [2*n, 2*n+1]) [1] |
| 17:25:15 | <lambdabot> | [[1],[2,3],[4,5,6,7],[8,9,10,11,12,13,14,15],[16,17,18,19,20,21,22,23,24,25,... |
| 17:25:20 | int-e | shrugs |
| 17:25:28 | <int-e> | I'd prefer ski's version. |
| 17:25:50 | <ski> | @let (/\/) :: [a] -> [a] -> [a]; [ ] /\/ ys = ys; (x:xs) /\/ ys = x : ys /\/ xs |
| 17:25:51 | <lambdabot> | Defined. |
| 17:25:53 | <pi42> | ski and int-e: thank you for your solutions; I will study them carefully. |
| 17:26:17 | <ski> | > fix (\abacaba -> repeat 0 /\/ map (1 +) abacaba) |
| 17:26:19 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 17:27:32 | <int-e> | Hmm, is xs /\/ ys = concat (transpose [xs,ys]) ? |
| 17:27:43 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 17:28:20 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds) |
| 17:28:21 | <ski> | > map (fst . until (odd . snd) ((1 +) *** (`div` 2)) . (0,)) [1 ..] |
| 17:28:23 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 17:28:47 | <ski> | int-e : yes. it's "interleave" |
| 17:29:04 | <int-e> | > map countTrailingZeros [1..] |
| 17:29:06 | <lambdabot> | error: |
| 17:29:06 | <lambdabot> | • Ambiguous type variable ‘b0’ arising from a use of ‘countTrailingZeros’ |
| 17:29:06 | <lambdabot> | prevents the constraint ‘(FiniteBits b0)’ from being solved. |
| 17:29:09 | <ski> | (well, there might be some discrepancy if one or both lists are finite) |
| 17:29:15 | <int-e> | > map Data.Bits.countTrailingZeros [1..] |
| 17:29:17 | <lambdabot> | error: |
| 17:29:17 | <lambdabot> | • Ambiguous type variable ‘b0’ arising from a use of ‘countTrailingZeros’ |
| 17:29:17 | <lambdabot> | prevents the constraint ‘(FiniteBits b0)’ from being solved. |
| 17:29:20 | <int-e> | huh |
| 17:29:31 | <int-e> | Oh FiniteBits... awkward |
| 17:29:40 | → | ystael joins (~ystael@user/ystael) |
| 17:30:30 | <ski> | > fix (\abbcbccd -> 0 : tail (abbcbccd /\/ map (1 +) abbcbccd)) |
| 17:30:33 | <lambdabot> | [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3... |
| 17:30:42 | <int-e> | > map countTrailingZeros [(1 :: Word)..] -- fails after a while |
| 17:30:43 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 17:30:51 | <ski> | map popCount [0 ..] |
| 17:30:55 | <ski> | > map popCount [0 ..] |
| 17:30:57 | <lambdabot> | [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3... |
| 17:31:44 | <int-e> | > map (\x -> popCount x - popCount (x-1) - 1) [1..] -- like this then? |
| 17:31:46 | <lambdabot> | [0,-1,0,-2,0,-1,0,-3,0,-1,0,-2,0,-1,0,-4,0,-1,0,-2,0,-1,0,-3,0,-1,0,-2,0,-1,... |
| 17:31:52 | <int-e> | well, close. |
| 17:32:05 | <int-e> | > popCount (-1) |
| 17:32:07 | <lambdabot> | -1 |
| 17:32:17 | <pi42> | ski: trying to understand; could you provide an example for the Thue-Morse sequence (start from [0] and then copy the whole list with the mapping \x -> 1-x as described above? |
| 17:32:28 | <pi42> | One way of bulding it is by starting from [0] and then concatenating the list with itself by applying the mapping \x -> 1-x; yielding [0, 1] then [0, 1, 1, 0], [0, 1, 1, 0, 1, 0, 0, 1@, etc. |
| 17:32:48 | <ski> | pi42 : `abbcbccd' is basically Thue-Morse, except not modulo `2' |
| 17:33:16 | <ski> | (but it's not really formulated in terms of chunks) |
| 17:34:14 | <pi42> | Yes, I need to compute new chunks from the previously computed left part of the list. |
| 17:35:11 | <ski> | initially, i thought you were talking about something along the lines of `foo = loop [initVal] where loop xs = xs ++ loop (doubleChunk xs)', with `initVal = 0' and `doubleChunk xs = xs ++ map (1 -) xs' forThue-Morse .. except after looking that up, i realized you wanted the chunks to be overlapping, previous ones be prefices of latter ones |
| 17:36:06 | <ski> | btw, the `pos' example basically traverses an (infinite) binary tree, breadth-first .. the same method works for any (finitely branching) tree, as long as it has at least one infinite branch |
| 17:37:46 | <pi42> | ski: yes indeed ("you wanted the chunks to be overlapping, previous ones be prefices of |
| 17:37:48 | <pi42> | latter ones") |
| 17:38:20 | <ski> | (btw, `abacaba' is how you solve the Tower of Hanoi, iteratively .. i figured that out as a kid) |
| 17:41:04 | <ski> | (the `(0 :) . tail' pattern in `abbcbccd' is also interesting .. same pattern turns up, if you define `primes' and `composites' recursively. `composites' are `primes' (pointwise) times `[2 ..]'. `primes are `[2 ..]' minus `composites') |
| 17:41:59 | <ski> | (i guess one could use `unamb' or `lub' instead ..) |
| 17:43:50 | × | _________ quits (~nobody@user/noodly) (Quit: leaving) |
| 17:44:30 | <ski> | pi42 : can you express your chunk generation as levels in a binary tree, where each node is only (directly) influenced by its parent ? or do you also need to see the siblings of your parent (your aunts and uncles ?) ? |
| 17:45:13 | → | Tuplanolla joins (~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) |
| 17:45:40 | → | _________ joins (~nobody@user/noodly) |
| 17:45:46 | <pi42> | No, I don't think I need the aunts and uncles. I only need: copy the previous chunk twice; leave the first part unchanged (of course), and apply a mapping on the second part |
| 17:47:32 | × | freeside_ quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 17:49:02 | <pi42> | I tried something like a = 0:( (tail a) ++ (map (\x -> 1-x) a)) but it doesn't work |
| 17:49:14 | <ski> | seems like you're saying `foo = initVal : loop [initVal] where loop xs = ys ++ loop (xs ++ ys) where ys = transformChunk xs', with `initVal = 0; transformChunk = map (1 -)' for Thue-Morse |
| 17:50:04 | <ski> | > let loop xs = ys ++ loop (xs ++ ys) where ys = map (1 -) xs in 0 : loop [0] |
| 17:50:05 | <lambdabot> | [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1... |
| 17:50:10 | <ski> | > let loop xs = ys ++ loop (xs ++ ys) where ys = map (1 +) xs in 0 : loop [0] |
| 17:50:11 | <lambdabot> | [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3... |
| 17:50:58 | <ski> | is `transformChunk' always `map f' for some `f' ? |
| 17:51:13 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 17:51:24 | <pi42> | Yes, I think it is it! |
| 17:51:39 | <ski> | we'd prefer not having those `++'s |
| 17:51:40 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:52:26 | <ski> | (well, at least not the `xs ++ ys'. the `ys ++' is not that bad) |
| 17:52:32 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:53:12 | × | Trattue quits (~Trattue@152.70.182.158) (Ping timeout: 255 seconds) |
| 17:54:02 | <ski> | pi42 : ah, and in your `a' example, `++' won't work there since presumably `a' is meant to be infinite. note i used `/\/' in my cyclic definitions of infinite lists, above |
| 17:54:11 | × | king_gs quits (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Remote host closed the connection) |
| 17:54:31 | → | king_gs joins (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) |
| 17:54:32 | <EvanR> | isn't compute new "chunks" of a list from the list so far basically the same as fib |
| 17:54:46 | → | freeside joins (~mengwong@103.252.202.193) |
| 17:54:53 | <pi42> | Now what about the complexity of your solution? If I want n initial elements (n being a power of 2), can I expect O(n)? |
| 17:55:03 | <ski> | sortof .. it's restarting from the beginning, every power of `2' elements |
| 17:55:56 | <ski> | pi42 : you'll get at least a quadratic factor, with the `xs ++ ys' being the value of the next `xs', i think |
| 17:58:06 | <ski> | (btw, this also reminds me of bottom-up generation of solutions to a query, in deductive databases. e.g. imagine enumerating finite trees (e.g. `data T = L | B T T'). you get batches/chunks which can be lazily generated, using semi-naïve evaluation, which gives you the "shared prefix of chunks" effect) |
| 17:58:13 | <pi42> | Hmmm... I don't know much about Haskell; computer science theorist here. I am planning to write a paper about an algorithm; the "lazy" part made me think about Haskell and I thought I could have a sequence of short lines of code, but maybe it is not the right way... I can stick to some OO-pseudocode |
| 17:58:40 | <pi42> | I can't afford losing the O(n) |
| 17:59:31 | <ski> | anyway, it's hard to think of better ways of doing it, without knowing more about what you're doing (which isn't Thue-Morse, as you said) |
| 18:01:05 | <pi42> | Nothing too secret; I need to build an infinite list of polynomials, generated by some thue-morse-like process. |
| 18:01:16 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 252 seconds) |
| 18:01:34 | → | nate3 joins (~nate@98.45.169.16) |
| 18:02:57 | <pi42> | Would it be easier to go the Gray-code way: copy the chunk twice but the rightmost one being reversed (and some mapping being applied to the second chunk)? |
| 18:03:18 | <pi42> | My algorithm can work with both variants |
| 18:03:45 | <pi42> | (either copying the chunk twice or copying it mirrored) |
| 18:04:50 | <ski> | (btw, the breadth-first traversal of tree has been done with generators as well, e.g. in Python, &c.) |
| 18:05:19 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 18:05:30 | <pi42> | Yes, I could do it in Python, but if I go this way, I would like rather sticking to pseudocode |
| 18:06:09 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 18:06:19 | <int-e> | there's nothing quadratic here, I think |
| 18:07:46 | <ski> | hmm |
| 18:07:51 | <int-e> | I mean, pretend for a moment that Haskell is strict. Then assuming we can product ys from xs in linear time, evaluating loop xs = ys ++ loop (xs ++ ys) up to the recursive call takes linear time in the length of xs, so a constant amount per element. And we also progress by an amount linear in the length of xs. |
| 18:08:12 | <int-e> | lazy evaluation doesn't change that cost, the evaluation just happens later. |
| 18:08:39 | <ski> | hm, right. for the next `n' elements, you traverse `n' cells for `ys ++', and `n' cells for `xs ++' |
| 18:08:43 | <int-e> | I'm also assuming that ys has the same length as xs |
| 18:08:51 | <ski> | yes |
| 18:09:56 | × | irrgit_ quits (~irrgit@89.47.234.74) (Read error: Connection reset by peer) |
| 18:10:05 | <ski> | (it still would be nice to do away at least with the `xs ++', and preferably the accumulator, defining the list itself recursively, rather than having a recursive function generating the list) |
| 18:10:20 | <pi42> | Would the "mirrored" variant be possible in linear time? (with ys being a mapping of the reversed xs) |
| 18:10:51 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 18:10:54 | <ski> | could you spell out a little bit more what you meant by the mirrored variant ? |
| 18:10:54 | <int-e> | I don't see the reversal making any difference |
| 18:10:59 | × | mbuf quits (~Shakthi@49.204.137.137) (Quit: Leaving) |
| 18:11:10 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 18:11:24 | <EvanR> | reversing a list of length n takes n work |
| 18:11:27 | → | Guest71 joins (~Guest71@217-209-157-8-no2000.tbcn.telia.com) |
| 18:11:43 | <int-e> | pi42: I also suspect the pattern doesn't quite capture what you want... unless you want many repeated elements in the generated list |
| 18:12:03 | <ski> | yes, but if you only do it every `n' elements (with `n' doubling each time), you're still (amorticized) linear |
| 18:15:05 | <int-e> | (amortized) |
| 18:17:05 | <ski> | (ty) |
| 18:17:06 | <ski> | > let gray = 0 : loop 0 [0] where loop i xs = ys ++ loop (i+1) (xs ++ ys) where ys = reverse (map (2^i +) xs) in take gray |
| 18:17:08 | <lambdabot> | error: |
| 18:17:08 | <lambdabot> | • Couldn't match expected type ‘Int’ with actual type ‘[a0]’ |
| 18:17:08 | <lambdabot> | • In the first argument of ‘take’, namely ‘gray’ |
| 18:17:10 | <ski> | > let gray = 0 : loop 0 [0] where loop i xs = ys ++ loop (i+1) (xs ++ ys) where ys = reverse (map (2^i +) xs) in gray |
| 18:17:12 | <lambdabot> | [0,1,3,2,6,7,5,4,12,13,15,14,10,11,9,8,24,25,27,26,30,31,29,28,20,21,23,22,1... |
| 18:17:18 | <ski> | i guess this |
| 18:19:35 | <pi42> | Thank you |
| 18:21:17 | × | danza quits (~francesco@93.176.137.22) (Ping timeout: 246 seconds) |
| 18:21:30 | × | beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Read error: Connection reset by peer) |
| 18:22:23 | <ski> | > let loop xs = ys ++ loop (xs ++ ys) where ys = map (1 +) xs in 0 : loop [0] |
| 18:22:25 | <lambdabot> | [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3... |
| 18:22:32 | <ski> | > 0 : fix (\bbcbccd -> 1 : [n | m <- bbcbccd,n <- [m,m+1]]) |
| 18:22:33 | <lambdabot> | [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3... |
| 18:22:58 | <ski> | pi42 : ^ a breadth-first tree traversal for it |
| 18:23:26 | <ski> | so there might be a way to do that with your polynomials as well, possibly |
| 18:23:58 | → | freeside joins (~mengwong@103.252.202.193) |
| 18:24:33 | → | Spukgespenst joins (~user@user/siracusa) |
| 18:24:35 | <EvanR> | one one hand you can compute cost by saying laziness "just" moves the time of evaluation, so pretend it's eager. On the other hand laziness causes some programs to jump way ahead by short circuiting and sometimes avoid an infinite regression freeze. A drastic upgrade. So maybe pretending it's eager gives you a "worst case" estimate? |
| 18:25:07 | <ski> | or an upper bound |
| 18:25:14 | → | sadmax joins (~user@209.205.174.253) |
| 18:25:43 | → | beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
| 18:25:47 | <ski> | Chris Okasaki mentions "banker's balancing method" and "physicist potential method" in PFDS, iirc |
| 18:25:51 | <ski> | @where PFDS |
| 18:25:51 | <lambdabot> | http://www.amazon.com/Purely-Functional-Structures-Chris-Okasaki/dp/0521663504 |
| 18:25:55 | → | irrgit_ joins (~irrgit@176.113.74.74) |
| 18:25:56 | × | king_gs quits (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Remote host closed the connection) |
| 18:26:15 | → | king_gs joins (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) |
| 18:26:28 | × | Kaipei quits (~Kaiepi@108.175.84.104) (Ping timeout: 248 seconds) |
| 18:26:58 | <EvanR> | ok upper bound |
| 18:27:18 | <monochrom> | Yeah pretended eagerness gives an upper bound. But not a useful upper bound when it's "infinite". |
| 18:27:29 | <ski> | :) |
| 18:27:44 | <monochrom> | "const () (an infinite loop here)" is an extreme example. |
| 18:27:57 | × | Alex_test quits (~al_test@178.34.163.109) (Ping timeout: 272 seconds) |
| 18:28:08 | <monochrom> | "take 0 (repeat ())" is closer to real examples. |
| 18:28:36 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 18:28:41 | × | AlexZenon quits (~alzenon@178.34.163.109) (Ping timeout: 276 seconds) |
| 18:29:08 | <_xor> | Newbie to ghc/cabal, quick question: Does `cabal new-build --offline ...` invoke `git fetch` as part of its process or would that be something external (e.g. project-specific build script)? |
| 18:29:14 | <monochrom> | OTOH when the pretended eagerness time is finite, that's when it is a pretty useful upper bound, usually the lazy time is not far behind. Although, just usually. |
| 18:29:22 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 18:29:37 | × | titibandit quits (~titibandi@xdsl-87-79-250-160.nc.de) (Quit: Leaving.) |
| 18:30:03 | <EvanR> | eagerness time |
| 18:30:06 | × | beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 255 seconds) |
| 18:30:14 | <_xor> | It looks like it's trying to update the dependencies before building the project, but that's not necessary here as I've already vendored them. |
| 18:30:57 | <monochrom> | There is also always empirical benchmarking. Ask for 10 elements. Ask for 20 elements. Etc. Plot the graph and see what trend you get. |
| 18:31:34 | <_xor> | It doesn't build from a git repo either, it's a snapshot of the source tree fetched from a github release. So as it stands right now, `cabal new-build ...` is failing pretty early when it tries to do a `git fetch` in dist-newstyle/... |
| 18:32:49 | <sclv> | check if there’s a git repo in the cabal.project file? |
| 18:33:32 | → | Alex_test joins (~al_test@178.34.163.109) |
| 18:34:18 | <_xor> | Yeah, looking now. Just saw a suggestion for that. |
| 18:36:16 | <_xor> | sclv: Looks like that's the issue. Is there a cabal cli flag to disable updating those or will I have to comment those lines out? |
| 18:36:50 | <ski> | @. hoogle type (concat .) . iterate |
| 18:36:52 | <lambdabot> | MathObj.RootSet liftPowerSum1 :: (C a, C a) => ([a] -> [a]) -> [a] -> [a] |
| 18:36:52 | <lambdabot> | Boltzmann.Species emap :: Embed f m => (m a -> m b) -> f a -> f b |
| 18:36:52 | <lambdabot> | Blanks.ScopeW scopeWMapAnno :: ScopeC t u n f g => (t a -> t b) -> g a -> g b |
| 18:36:54 | <sclv> | i think for now you need to remove em |
| 18:37:28 | <sclv> | a ticket suggesting how — offline flag should interact would be welcome in the tracker |
| 18:38:54 | <ski> | @hoogle (a -> [a]) -> (a -> [a]) |
| 18:38:55 | <lambdabot> | Data.Generics.SYB mkM :: Monad m => (a -> m a) -> a -> m a |
| 18:38:55 | <lambdabot> | Control.Monad.Loops iterateM_ :: Monad m => (a -> m a) -> a -> m b |
| 18:38:55 | <lambdabot> | Control.Monad.Prospect given :: Alternative f => (a -> f b) -> a -> f b |
| 18:39:23 | <_xor> | sclv: https://github.com/haskell/cabal/issues/5783 |
| 18:39:33 | <_xor> | sclv: That's actually what I was looking at when you mentioned cabal.project. |
| 18:40:48 | → | freeside joins (~mengwong@103.252.202.193) |
| 18:41:19 | <sclv> | hrm. the specific issue gets a small mention in 5346 |
| 18:41:45 | <ski> | @type (concat .) . iterate . concatMap |
| 18:41:46 | <lambdabot> | (a -> [a]) -> [a] -> [a] |
| 18:43:06 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 18:43:34 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 18:44:03 | × | Alex_test quits (~al_test@178.34.163.109) (Ping timeout: 255 seconds) |
| 18:45:32 | <EvanR> | monochrom, what is eagerness time |
| 18:45:53 | <EvanR> | some kind of time limit |
| 18:46:13 | → | Alex_test joins (~al_test@178.34.163.109) |
| 18:46:16 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c9d:1a05:4084:603c) (Remote host closed the connection) |
| 18:46:18 | × | king_gs quits (~Thunderbi@2806:103e:29:47b9:f34b:ffff:4cfc:90a6) (Ping timeout: 255 seconds) |
| 18:46:22 | × | zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 252 seconds) |
| 18:46:26 | → | beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
| 18:46:52 | <ski> | @type let subst :: Monad m => (var0 -> m var0) -> (m var0 -> m var1); subst env = (fix (<=< env) =<<) in subst -- reminds me a bit of this |
| 18:46:53 | <lambdabot> | Monad m => (var0 -> m var0) -> m var0 -> m var1 |
| 18:48:44 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 18:49:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:49:56 | × | darkstardevx quits (~darkstard@50.126.124.156) (Remote host closed the connection) |
| 18:50:20 | → | darkstardevx joins (~darkstard@50.126.124.156) |
| 18:50:32 | <monochrom> | I am a lazy person, so I have an upper bound on how much time I'm eager. :) |
| 18:52:01 | <monochrom> | Onoes, Boltzmann species. Combinatorial species keep coming back to haunt me. |
| 18:53:35 | ski | . o O ( speculative eagerness ) |
| 18:55:56 | <ski> | @hackage boltzmann-samplers |
| 18:55:56 | <lambdabot> | https://hackage.haskell.org/package/boltzmann-samplers |
| 18:56:00 | <ski> | apparently "Uniform random generators" |
| 18:56:23 | <ski> | @let itercalate :: (a -> [a]) -> ([a] -> [a]); itercalate _ [] = []; itercalate f (x:xs) = x : itercalate f (xs ++ f x) |
| 18:56:25 | <lambdabot> | Defined. |
| 18:56:29 | → | AlexZenon joins (~alzenon@178.34.163.109) |
| 18:56:37 | <ski> | > itercalate (\n -> [2*n,2*n + 1]) [1] |
| 18:56:39 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
| 18:56:46 | <ski> | > itercalate (\n -> if n > 10 then [] else [2*n,2*n + 1]) [1] |
| 18:56:48 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21] |
| 18:57:27 | <EvanR> | what topic is ski on |
| 18:57:43 | <ski> | > concat (iterate (>>= \n -> if n > 10 then [] else [2*n,2*n + 1]) [1]) |
| 18:57:49 | <lambdabot> | mueval-core: Time limit exceeded |
| 18:57:50 | <EvanR> | still thue-morse? |
| 18:58:37 | <ski> | tangentially |
| 18:59:33 | → | zaquest joins (~notzaques@5.130.79.72) |
| 18:59:34 | × | shriekingnoise_ quits (~shrieking@186.137.167.202) (Ping timeout: 252 seconds) |
| 18:59:54 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 18:59:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:01:29 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) |
| 19:03:48 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 19:04:54 | <ski> | > let itercalate :: (a -> [a]) -> ([a] -> [a]); itercalate f xs = fix (\ys -> xs ++ concatMap f ys) in itercalate (\n -> [2*n,2*n + 1]) [1] |
| 19:04:56 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
| 19:05:03 | <ski> | > let itercalate :: (a -> [a]) -> ([a] -> [a]); itercalate f xs = fix (\ys -> xs ++ concatMap f ys) in itercalate (\n -> if n > 10 then [] else [2*m,2*n + 1]) [1] |
| 19:05:06 | <lambdabot> | [1,2 * m,2 * 1 + 1,2 * m,2 * (2 * 1 + 1) + 1,2 * m,2 * (2 * (2 * 1 + 1) + 1)... |
| 19:05:19 | <ski> | > let itercalate :: (a -> [a]) -> ([a] -> [a]); itercalate f xs = fix (\ys -> xs ++ concatMap f ys) in itercalate (\n -> if n > 10 then [] else [2*n,2*n + 1]) [1] |
| 19:05:21 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21*Exception: <<loop>> |
| 19:07:38 | <ski> | is there a better way of avoiding the loop (terminating the list), than keeping the current "wavefront length" in an accumulator ? |
| 19:07:48 | → | gmg joins (~user@user/gehmehgeh) |
| 19:09:06 | → | stackdroid18 joins (14094@user/stackdroid) |
| 19:09:28 | <bjourne> | why does ghc put .o and .hi files relative to the source dir and not the build dir? that's really weird |
| 19:11:54 | × | python476 quits (~user@88.160.31.174) (Remote host closed the connection) |
| 19:12:12 | → | Hercules1 joins (~Hercules@ti0018a400-8077.bb.online.no) |
| 19:15:12 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Remote host closed the connection) |
| 19:15:31 | × | Hercules quits (~Hercules@ti0018a400-8077.bb.online.no) (Ping timeout: 252 seconds) |
| 19:17:10 | × | bjourne quits (~bjourne@2001:6b0:1:1140:42bf:ff4:f8fa:50e5) (Quit: Konversation terminated!) |
| 19:22:38 | → | ub joins (~Thunderbi@77.119.195.127.wireless.dyn.drei.com) |
| 19:23:20 | × | gentauro quits (~gentauro@user/gentauro) (Ping timeout: 250 seconds) |
| 19:24:38 | × | Vajb quits (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Ping timeout: 246 seconds) |
| 19:29:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:35:23 | → | gentauro joins (~gentauro@user/gentauro) |
| 19:35:52 | <monochrom> | No reason. KISS defaults. But there are options for customizing those. See the user's guide. |
| 19:36:20 | × | sadmax quits (~user@209.205.174.253) (Ping timeout: 248 seconds) |
| 19:36:34 | <monochrom> | Hell, s/No reason/No reason either way/ |
| 19:39:31 | <monochrom> | The beauty of the ideology of "build directory" is that everyone wants a different name for it. A compiler therefore dares not take sides. |
| 19:40:05 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 19:44:35 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 19:45:17 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 19:45:47 | <ski> | % map (ceiling . logBase 2 . fromIntegral . (1 +)) [0 ..] |
| 19:45:47 | <yahb2> | [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,... |
| 19:46:07 | <ski> | % ((0 :) . map ((1 +) . integerLog2)) [1 ..] |
| 19:46:07 | <yahb2> | [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,... |
| 19:46:25 | <ski> | .. wasn't there some `integerSqrt' ? |
| 19:47:03 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:49:04 | × | Tuplanolla quits (~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) (Ping timeout: 252 seconds) |
| 19:52:06 | → | muesli4 joins (~noname@2a02:8071:2188:2540:3ea6:1486:61ae:9be6) |
| 19:52:39 | <muesli4> | Hi, I have a module in my export list. Is there some way to expand this in the documentation? |
| 19:54:03 | <ski> | (i tend to assume the above operation (number of bits required to represent a natural) to be in `Data.Bits', and then be surprised when it isn't ..) |
| 19:54:15 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 19:55:31 | → | abhiroop joins (~abhiroop@217-209-157-8-no2000.tbcn.telia.com) |
| 19:56:35 | → | freeside joins (~mengwong@103.252.202.193) |
| 19:57:44 | <tomsmeding> | > let f n = (n:) . h [0..n-1] ; h = foldr ((.) . f) id in h [0..] [] |
| 19:57:46 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 19:59:37 | × | irrgit_ quits (~irrgit@176.113.74.74) (Read error: Connection reset by peer) |
| 20:00:00 | <tomsmeding> | muesli4: try putting {-# OPTIONS_HADDOCK not-home #-} at the top of the re-exported module |
| 20:00:02 | <monochrom> | muesli4: I think https://haskell-haddock.readthedocs.io/en/latest/markup.html#re-exporting-an-entire-module helps. You go "module Mine(module X, module Y) where import X (x, xx, xxx); import Y hiding (yyy)" |
| 20:00:13 | <tomsmeding> | as in, if you have 'module A (module B, ...) where' then put it at the top of B |
| 20:00:24 | <tomsmeding> | https://haskell-haddock.readthedocs.io/en/latest/markup.html#module-attributes |
| 20:00:27 | × | pi42 quits (~baruchel@70.25.7.93.rev.sfr.net) (Quit: EPIC5-2.0.1[1869] - amnesiac : Bye!) |
| 20:01:10 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 252 seconds) |
| 20:01:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:02:18 | <tomsmeding> | monochrom: see footnote [2] at your link :p |
| 20:02:50 | → | Tuplanolla joins (~Tuplanoll@91-159-69-11.elisa-laajakaista.fi) |
| 20:03:39 | <monochrom> | I have to go but someone should empirically test it. We can't rule out the possibility that the footnote is outdated. |
| 20:04:27 | <muesli4> | tomsmeding, monochrom: Thanks a lot. |
| 20:05:21 | → | freeside joins (~mengwong@103.252.202.193) |
| 20:05:56 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 246 seconds) |
| 20:07:03 | → | zebrag joins (~chris@user/zebrag) |
| 20:08:42 | → | Heyting joins (~Heyting@193.198.16.217) |
| 20:08:52 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds) |
| 20:09:31 | <tomsmeding> | > let f x ~(y:ys) = x : y : f x ys in foldr f [] [0..] |
| 20:09:32 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 20:10:33 | <tomsmeding> | > foldr (\x ~(y:ys) -> x : y : f x ys) [] [0..] |
| 20:10:34 | <lambdabot> | error: |
| 20:10:34 | <lambdabot> | • No instance for (FromExpr [Integer]) arising from a use of ‘e_10’ |
| 20:10:34 | <lambdabot> | • In the expression: e_10 |
| 20:10:42 | <tomsmeding> | > foldr (fix $ \f x ~(y:ys) -> x : y : f x ys) [] [0..] |
| 20:10:44 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1... |
| 20:10:55 | <tomsmeding> | hm the one with 'let' is shorter |
| 20:11:00 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 20:13:17 | × | stefan-_ quits (~cri@42dots.de) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
| 20:13:33 | → | stefan-_ joins (~cri@42dots.de) |
| 20:14:21 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
| 20:14:55 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 20:15:02 | → | freeside joins (~mengwong@103.252.202.193) |
| 20:15:23 | × | beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Quit: beteigeuze) |
| 20:15:42 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) |
| 20:16:47 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 20:20:02 | × | Heyting quits (~Heyting@193.198.16.217) (Remote host closed the connection) |
| 20:20:18 | → | Heyting joins (~Heyting@193.198.16.217) |
| 20:20:21 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:756c:6d4e:8007:23ff) (Ping timeout: 255 seconds) |
| 20:20:38 | × | abhiroop quits (~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 246 seconds) |
| 20:21:27 | → | abhiroop joins (~abhiroop@217-209-157-8-no2000.tbcn.telia.com) |
| 20:21:33 | × | Guest71 quits (~Guest71@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 244 seconds) |
| 20:21:50 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 20:21:53 | → | bilegeek joins (~bilegeek@2600:1008:b060:717e:e323:280c:5827:a128) |
| 20:22:17 | → | Guest71 joins (~Guest71@217-209-157-8-no2000.tbcn.telia.com) |
| 20:26:14 | → | Spukgespenst_ joins (~user@user/siracusa) |
| 20:28:07 | × | Spukgespenst quits (~user@user/siracusa) (Ping timeout: 252 seconds) |
| 20:28:12 | Spukgespenst_ | is now known as Spukgespenst |
| 20:29:05 | ← | Heyting parts (~Heyting@193.198.16.217) () |
| 20:32:40 | → | caryhartline joins (~caryhartl@2600:1700:2d0:8d30:9d7c:5e2:4131:9c2b) |
| 20:36:23 | × | mmhat quits (~mmh@p200300f1c7307603ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 20:37:06 | × | elevenkb quits (~elevenkb@105.184.125.168) (Quit: Client closed) |
| 20:38:37 | → | Sinbad joins (~Sinbad@user/sinbad) |
| 20:43:45 | × | michalz quits (~michalz@185.246.207.221) (Remote host closed the connection) |
| 20:44:33 | × | AlexNoo quits (~AlexNoo@178.34.163.109) (Read error: Connection reset by peer) |
| 20:44:55 | → | AlexNoo joins (~AlexNoo@178.34.163.109) |
| 20:47:54 | × | Guest71 quits (~Guest71@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 244 seconds) |
| 20:47:55 | × | abhiroop quits (~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 252 seconds) |
| 20:49:23 | × | Hercules1 quits (~Hercules@ti0018a400-8077.bb.online.no) (Quit: Leaving) |
| 20:50:07 | × | Alex_test quits (~al_test@178.34.163.109) (Ping timeout: 252 seconds) |
| 20:50:20 | → | mmhat joins (~mmh@p200300f1c73076cfee086bfffe095315.dip0.t-ipconnect.de) |
| 20:50:23 | → | Alex_test joins (~al_test@178.34.163.109) |
| 20:50:56 | → | elevenkb joins (~elevenkb@105.184.125.168) |
| 20:52:00 | → | darkstarx joins (~darkstard@50.126.124.156) |
| 20:54:31 | × | darkstardevx quits (~darkstard@50.126.124.156) (Ping timeout: 252 seconds) |
| 20:56:32 | → | zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
| 20:57:11 | × | dfg quits (dfg@user/dfg) (Quit: I hate quit messages.) |
| 20:58:21 | → | dfg joins (dfg@dfg.rocks) |
| 20:58:21 | × | dfg quits (dfg@dfg.rocks) (Changing host) |
| 20:58:21 | → | dfg joins (dfg@user/dfg) |
| 20:58:33 | → | Sciencentistguy joins (~sciencent@hacksoc/ordinary-member) |
| 21:01:13 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 21:01:48 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 21:01:51 | × | redmp quits (~redmp@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 272 seconds) |
| 21:03:19 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Ping timeout: 252 seconds) |
| 21:03:27 | → | shriekingnoise_ joins (~shrieking@186.137.167.202) |
| 21:03:52 | × | zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 252 seconds) |
| 21:05:32 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 21:06:36 | × | elevenkb quits (~elevenkb@105.184.125.168) (Quit: Client closed) |
| 21:09:53 | <monochrom> | tomsmeding: Verified: The footnote is outdated, the main text works. |
| 21:14:19 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 21:15:02 | → | gmg joins (~user@user/gehmehgeh) |
| 21:16:59 | → | zaquest joins (~notzaques@5.130.79.72) |
| 21:17:08 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 21:17:16 | <monochrom> | Although, "import X hiding ()" is not enough, heh. |
| 21:20:22 | → | sweater joins (~sweater@206.81.18.26) |
| 21:21:34 | → | boxscape_ joins (~boxscape_@81.191.27.107) |
| 21:22:00 | <tomsmeding> | ah! |
| 21:24:46 | → | redmp joins (~redmp@mobile-166-170-43-0.mycingular.net) |
| 21:24:49 | money | is now known as polo |
| 21:28:25 | <tomsmeding> | ooh |
| 21:28:44 | <tomsmeding> | actually 'import X () ; import X' seems to work |
| 21:29:22 | <ski> | > let f n = (n:) . h [0..n-1] ; h = foldr ((.) . f) id in h [0 .. 3] [] |
| 21:29:24 | <monochrom> | Haha that's a cool hack. |
| 21:29:24 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0] |
| 21:29:49 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 21:29:52 | <ski> | > let h [] ys = ys; h (x:xs) ys = f x (h xs ys); f n ys = n : h [0 .. n-1] ys in h [0 .. 3] [] |
| 21:29:53 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0] |
| 21:30:07 | <ski> | > let h [] ys = ys; h (x:xs) ys = x : h [0 .. x-1] (h xs ys) in h [0 .. 3] [] |
| 21:30:08 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0] |
| 21:30:15 | <ski> | > let h [] k = k []; h (x:xs) k = x : h [0 .. x-1] (\ys -> h xs ((ys ++) . k)) in h [0 .. 3] id |
| 21:30:16 | <lambdabot> | [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0] |
| 21:31:06 | × | Batzy quits (~quassel@user/batzy) (Read error: Connection reset by peer) |
| 21:31:24 | → | Batzy joins (~quassel@user/batzy) |
| 21:31:55 | × | Sinbad quits (~Sinbad@user/sinbad) (Ping timeout: 252 seconds) |
| 21:32:14 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 21:36:23 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:36:41 | <tomsmeding> | monochrom: https://github.com/haskell/haddock/pull/1534 |
| 21:37:46 | <monochrom> | Nice, thanks. |
| 21:38:12 | × | ubert quits (~Thunderbi@77.119.195.127.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
| 21:38:12 | ub | is now known as ubert |
| 21:38:31 | <tomsmeding> | I was going to ping H.ecate (avoiding a ping there) but then I thought, I can just as well PR it myself :) |
| 21:38:39 | <ski> | > let g [] k = k []; g (x:xs) k = x : g xs (\ys -> x : k (x : ys)) in g [0 .. 3] id |
| 21:38:40 | <lambdabot> | [0,1,2,3,3,2,1,0,0,1,2,3] |
| 21:38:52 | <tomsmeding> | ski: interesting variation |
| 21:39:08 | <monochrom> | Well, ping anyway so that the commit is accepted faster. :) |
| 21:39:19 | <monochrom> | or the PR. |
| 21:39:21 | <ski> | that's one that i did, years ago. i thought yours was somewhat reminiscent |
| 21:39:37 | <tomsmeding> | Hecate: ^ with a hint from monochrom I fixed something in the haddock docs |
| 21:40:01 | → | freeside joins (~mengwong@103.252.202.193) |
| 21:40:03 | <boxscape_> | If I want to install a program (via cabal) because I need it as preprocessor for a cabal project, is Setup.hs the thing to look at? (Also, does setup.hs work if people use stack instead?) |
| 21:41:23 | <geekosaur> | I think you put it in build-tool-depends? and it should work with stack because at that level it's Cabal-the-library, not stack or cabal-install |
| 21:41:30 | <boxscape_> | ah, okay, thanks |
| 21:41:40 | × | `2jt quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 248 seconds) |
| 21:41:47 | × | johnw quits (~johnw@2600:1700:cf00:db0:c1b5:8725:73d7:1ac) (Quit: ZNC - http://znc.in) |
| 21:42:05 | × | boxscape_ quits (~boxscape_@81.191.27.107) (Quit: Client closed) |
| 21:42:32 | → | boxscape_ joins (~boxscape_@81.191.27.107) |
| 21:42:39 | <tomsmeding> | welcome back |
| 21:42:42 | → | beteigeuze joins (~Thunderbi@89.187.168.37) |
| 21:42:46 | <boxscape_> | thanks :) |
| 21:45:19 | → | Sinbad joins (~Sinbad@user/sinbad) |
| 21:47:52 | → | titibandit joins (~titibandi@xdsl-87-79-250-160.nc.de) |
| 21:49:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:51:55 | × | titibandit quits (~titibandi@xdsl-87-79-250-160.nc.de) (Remote host closed the connection) |
| 21:56:33 | polo | is now known as money |
| 21:58:10 | → | freeside_ joins (~mengwong@103.252.202.193) |
| 21:58:39 | × | Sinbad quits (~Sinbad@user/sinbad) (Ping timeout: 246 seconds) |
| 22:00:23 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 22:00:31 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 252 seconds) |
| 22:06:34 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 22:09:40 | × | statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
| 22:09:44 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:09:52 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 252 seconds) |
| 22:09:56 | → | statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 22:10:05 | → | Guest71 joins (~Guest71@217-209-157-8-no2000.tbcn.telia.com) |
| 22:10:15 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 22:10:33 | → | zebrag joins (~chris@user/zebrag) |
| 22:10:47 | × | bilegeek quits (~bilegeek@2600:1008:b060:717e:e323:280c:5827:a128) (Quit: Leaving) |
| 22:13:24 | → | abhiroop joins (~abhiroop@217-209-157-8-no2000.tbcn.telia.com) |
| 22:16:41 | → | stefan-__ joins (~cri@42dots.de) |
| 22:17:34 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds) |
| 22:18:37 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 22:18:40 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 22:19:10 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 22:20:08 | → | danza joins (~francesco@22.red-79-153-42.dynamicip.rima-tde.net) |
| 22:20:22 | → | Kaipei joins (~Kaiepi@108.175.84.104) |
| 22:21:07 | × | tessier quits (~treed@98.171.210.130) (Quit: leaving) |
| 22:21:08 | × | beteigeuze quits (~Thunderbi@89.187.168.37) (Ping timeout: 248 seconds) |
| 22:21:13 | → | mixfix41 joins (~sdeny9ee@user/mixfix41) |
| 22:21:40 | → | beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
| 22:23:16 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
| 22:25:16 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds) |
| 22:25:39 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 22:26:00 | → | tessier joins (~treed@98.171.210.130) |
| 22:28:46 | <cheater> | what's the current best way to handle exceptions that arise from reading a file, but not other exceptions, and turn those that we catch into a Left? |
| 22:43:07 | × | lucerne quits (~lucerne@5.114.187.176) (Read error: Connection reset by peer) |
| 22:45:03 | <dmj`> | could use `tryIOError` and case on `ioGetErrorType` |
| 22:45:44 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:49:31 | × | freeside_ quits (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
| 22:52:15 | → | Alex_test_ joins (~al_test@178.34.163.109) |
| 22:53:01 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
| 22:53:52 | × | Alex_test quits (~al_test@178.34.163.109) (Ping timeout: 252 seconds) |
| 22:54:43 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 22:57:37 | × | chele__ quits (~chele@user/chele) (Remote host closed the connection) |
| 22:57:55 | <Axman6> | lans has some nice stuff for dealing with exceptions, allowing you to be as specific as a Getter will let you |
| 22:57:59 | <Axman6> | lens* |
| 22:58:13 | <Axman6> | @hoogle handling |
| 22:58:13 | <lambdabot> | Control.Exception.Lens handling :: MonadCatch m => Getting (First a) SomeException a -> (a -> m r) -> m r -> m r |
| 22:58:13 | <lambdabot> | Control.Monad.Error.Lens handling :: MonadError e m => Getting (First a) e a -> (a -> m r) -> m r -> m r |
| 22:58:13 | <lambdabot> | LiveCoding handling :: (Typeable h, Monad m) => Handle m h -> Cell (HandlingStateT m) arbitrary h |
| 22:58:30 | <Axman6> | @hoogle handles |
| 22:58:30 | <lambdabot> | Control.Foldl handles :: Handler a b -> Fold b r -> Fold a r |
| 22:58:30 | <lambdabot> | Control.Spoon type Handles a = [Handler (Maybe a)] |
| 22:58:30 | <lambdabot> | Network.StreamSocket handleSocketError :: Socket -> IOException -> IO (Result a) |
| 23:01:11 | <cheater> | mhhhhh |
| 23:01:17 | <cheater> | not a huge Lensman |
| 23:01:20 | → | nate3 joins (~nate@98.45.169.16) |
| 23:01:28 | <Axman6> | the `catches` example here is what I was thinkinng of https://hackage.haskell.org/package/lens-5.2/docs/Control-Exception-Lens.html#t:Handleable |
| 23:01:38 | <cheater> | but i've been reading dmj`'s thing and that looks like a good idea |
| 23:01:44 | <cheater> | it's exactly what i need and nothing more |
| 23:02:27 | → | freeside joins (~mengwong@103.252.202.193) |
| 23:03:11 | <cheater> | dmj`: how does one match on IOErrorType? |
| 23:04:11 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:05:57 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
| 23:07:00 | × | freeside quits (~mengwong@103.252.202.193) (Ping timeout: 248 seconds) |
| 23:09:49 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 23:10:39 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 23:13:02 | <dmj`> | cheater: https://gist.github.com/dmjio/f4dc26786a78757d9028bd2e6eb50423 |
| 23:13:28 | → | alismanickt joins (~talismani@2601:200:c100:c9e0::1b0b) |
| 23:14:00 | × | alismanickt quits (~talismani@2601:200:c100:c9e0::1b0b) (Remote host closed the connection) |
| 23:15:59 | × | acidjnk quits (~acidjnk@p200300d6e7137a4494984508834583e9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 23:20:34 | → | freeside joins (~mengwong@103.252.202.193) |
| 23:21:22 | × | zaquest quits (~notzaques@5.130.79.72) (Ping timeout: 252 seconds) |
| 23:25:27 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 23:26:34 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 23:34:26 | → | zaquest joins (~notzaques@5.130.79.72) |
| 23:43:31 | <cheater> | dmj`: thank you :) |
| 23:44:03 | → | beteigeuze1 joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
| 23:45:10 | → | jinsun joins (~jinsun@user/jinsun) |
| 23:45:31 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 23:45:34 | × | beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 252 seconds) |
| 23:45:34 | beteigeuze1 | is now known as beteigeuze |
| 23:46:14 | → | jmorris joins (uid537181@id-537181.uxbridge.irccloud.com) |
| 23:53:07 | → | k8yun joins (~k8yun@user/k8yun) |
All times are in UTC on 2022-11-01.