Logs on 2023-11-08 (liberachat/#haskell)
| 00:00:36 | × | exarkun quits (~exarkun@user/exarkun) (Server closed connection) |
| 00:01:27 | → | exarkun joins (~exarkun@user/exarkun) |
| 00:03:42 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 00:05:01 | × | hgolden quits (~hgolden@2603-8000-9d00-3ed1-a6e3-3ba3-0107-8cff.res6.spectrum.com) (Remote host closed the connection) |
| 00:05:01 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 00:05:10 | → | hgolden joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) |
| 00:10:16 | → | gentauro joins (~gentauro@user/gentauro) |
| 00:12:56 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 00:17:45 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 00:17:59 | × | CO2 quits (CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.1) |
| 00:26:41 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 00:31:56 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 00:34:03 | <Axman6> | Now that Go has/is getting generics, can I release a library for monads called gonads? |
| 00:35:55 | <monochrom> | haha |
| 00:36:09 | <EvanR> | can you write a function or something with the signature m a -> (a -> m b) -> m b in go |
| 00:36:20 | <EvanR> | can you even pass functions around |
| 00:36:23 | <Axman6> | I would be shocked if you camn |
| 00:36:28 | <Axman6> | can* |
| 00:36:39 | <monochrom> | I ruin your joke with: geonads. >:) |
| 00:37:14 | <Axman6> | for testicular geology? |
| 00:37:15 | <monochrom> | Perhaps use concurrency primitives to emulate passing functions around. |
| 00:37:46 | <EvanR> | are threads as bad as they are in java in go |
| 00:37:46 | <monochrom> | for causing great internet debates on how to pronounce the g there :) |
| 00:38:15 | <EvanR> | or are they as bad as threads in C |
| 00:38:30 | <monochrom> | https://www.smbc-comics.com/comic/jiffy |
| 00:40:00 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 00:43:15 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 00:43:30 | × | landonf quits (landonf@mac68k.info) (Server closed connection) |
| 00:43:42 | → | landonf joins (landonf@mac68k.info) |
| 00:45:16 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:45:25 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 00:47:54 | <EvanR> | I'd settle for functors for go |
| 00:47:55 | <probie> | EvanR: You can pass functions around and Go's concurrency is meant to be one of the selling points |
| 00:48:13 | <EvanR> | ok that's promising |
| 00:49:11 | <Axman6> | it's pretty limited concurrency though, coroutines and channels basically (though maybe that's changed since I last looked?) |
| 00:50:23 | <geekosaur> | supposed to be "foolproof" (in the "all programmers are fools" sense) |
| 00:51:03 | <probie> | You've also got mutexes, await groups and atomic swaps |
| 00:51:09 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 00:51:14 | <Axman6> | That attitude is my main reason for disliking Go, they seem to intentionally want to push the idea that programmers are idiots and can't handle abstraction |
| 00:51:39 | <monochrom> | <customer> May I have a burrito please? <cashier> Is that to Go or Haskell in? >:) |
| 00:52:42 | <monochrom> | But Haskell is where programmers are idiots and can't handle untyped lambda calculus! |
| 00:53:20 | <monochrom> | Scheme is where they can't handle typed lambda calculus! |
| 00:53:57 | <monochrom> | And the dependent languages, they can't handle anything. >:) |
| 00:54:14 | <monochrom> | well, can't handle anything until proved otherwise. :) |
| 00:55:20 | <probie> | I haven't written much Go since they added generics, but I hated it less than I thought I would back when I was writing a lot of it for a job. |
| 00:55:46 | <probie> | I felt a bit like I was writing C+ (one plus intentional) |
| 00:55:47 | <Axman6> | You had a job??? |
| 00:56:05 | <monochrom> | Well yeah I stopped hating English after finishing English classes, too. :) |
| 00:56:34 | <Axman6> | I just hated reading Go and being interrupted with every second line being error handling. My kingdom for an Either! |
| 00:57:23 | <monochrom> | Sounds like they direly need gonads to make it nicer. |
| 00:58:14 | <probie> | If you don't have a keyboard macro for `if err != nil {`, you're not a real gopher |
| 00:59:03 | <monochrom> | Wait, do they call themselves gophers? |
| 00:59:16 | <Axman6> | >:( |
| 00:59:42 | <EvanR> | that's why in C I put the error handling on the same line |
| 00:59:46 | <monochrom> | I wouldn't mind. It has a diminishing connotation. >:) |
| 01:00:41 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:00:47 | <EvanR> | e = unlink(whatever); if (e < 0) { initiate self destruct sequence macro; } |
| 01:01:20 | <EvanR> | then use the editor to hide stuff after the first ; on a line xD |
| 01:01:34 | <EvanR> | (except for loops) |
| 01:03:06 | <monochrom> | I feel like if your editor is advanced enough for that, you may as well tell it to let you enter Haskell code and it translates to spaghetti Go. |
| 01:03:46 | <EvanR> | sometimes I wonder about that! |
| 01:04:00 | <EvanR> | what is source code anyway |
| 01:04:28 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 01:05:02 | × | alp quits (~alp@2001:861:5e02:eff0:86bc:a0a1:58c4:4dac) (Ping timeout: 252 seconds) |
| 01:05:38 | <Axman6> | it's all just thoughts anyway, who cares what language it is |
| 01:05:44 | <probie> | Golang has some great idioms. It has varargs, but no way of doing optional or named args. So the blessed way is to 1. Create a (private) type to hold optional/named args 2. Export functions to mutate that type 3. Use varargs to take an arbitrary number of those private-type mutating functions |
| 01:06:01 | × | finsternis quits (~X@23.226.237.192) (Ping timeout: 255 seconds) |
| 01:06:17 | <EvanR> | lol |
| 01:06:58 | <Axman6> | >>:( |
| 01:07:12 | <EvanR> | does go have partial application |
| 01:07:18 | <Axman6> | I cannae furrow me brow much more! |
| 01:07:35 | <c_wraith> | partial application requires accepting functions as values |
| 01:07:47 | <monochrom> | Try contraction. » |
| 01:07:49 | <EvanR> | probie says it has that |
| 01:07:55 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:07:57 | <probie> | e.g. in Haskell-like syntax `data OptArgsType = ...; type OptArg = OptArgsType -> OptArgsType; foo :: Int -> OptArg; bar :: String -> OptArg; doMyThing :: T1 -> T2 -> [OptArg] -> T3` and then called like `doMyThing t1 t2 [foo 42, bar "baz"]` |
| 01:08:17 | <probie> | It has partial application in the same way that most languages without currying have partial application |
| 01:09:25 | <probie> | If I've got something like `func foo(x int, y int) int`, I can do something like `bar := func (y int) int { return foo(42, y) }` |
| 01:09:30 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 01:09:31 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 01:09:36 | <EvanR> | does the body of the function then stitch together all the optarg mutators |
| 01:09:40 | <monochrom> | I think that idiom came close to rediscovering monoids but then went the other way. |
| 01:10:20 | × | danza quits (~francesco@ge-19-117-186.service.infuturo.it) (Read error: Connection reset by peer) |
| 01:10:27 | <monochrom> | Because that's how we do configs too. (modifier1 <> modifier2 <> modifier3 <> ...) defaultConfig |
| 01:10:48 | <probie> | EvanR: Yes, so now the first 3-4 lines of your function are just boilerplate, but extra boilerplate is no obstacle to idiomatic go code |
| 01:10:55 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:14:10 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 01:14:29 | → | falafel joins (~falafel@62.175.113.194.dyn.user.ono.com) |
| 01:14:39 | <EvanR> | can't that idiom be reduced a bit to creating a temporary record with the named arguments in it directly |
| 01:14:57 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 01:15:24 | <monochrom> | I think that's the private type. |
| 01:15:48 | <EvanR> | (C version) r = func((struct CoolArgs){ .arg1 = 7, .arg2 = "whoa" }) |
| 01:16:58 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:17:51 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:17:57 | <probie> | EvanR: Yes, but then users can put whatever they want into that type, and you may want to restrict that (e.g. two fields depend on each other) |
| 01:19:04 | <EvanR> | I should stop deconstructing this idiom, haskell has the same idiom basically! |
| 01:19:10 | <EvanR> | configuration monoid |
| 01:19:37 | <monochrom> | Moreover, we have lens and template haskell to auto-gen the modifiers! |
| 01:19:58 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 01:20:23 | <probie> | If you were to pass a configuration type directly, then whenever that type changes, it would be a breaking change to the API if the default value for a field isn't the zero value |
| 01:20:24 | <monochrom> | It's like C all over again except with <> instead of , |
| 01:22:04 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:25:09 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 01:26:38 | → | danza joins (~francesco@151.43.111.166) |
| 01:27:43 | <geekosaur> | "went the other way" — for some reason I imagine that being deliberate |
| 01:28:11 | <geekosaur> | "must avoid doing something intelligent and sensible" |
| 01:28:56 | <monochrom> | Don't offend coders with actual math. :) |
| 01:38:54 | [itchyjunk] | is now known as semsogg` |
| 01:39:33 | semsogg` | is now known as `[itchyjunk]` |
| 01:39:36 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 01:41:05 | → | Square joins (~Square@user/square) |
| 01:46:30 | Ellenor | is now known as MelanieMalik |
| 01:47:02 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 01:53:12 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 01:54:32 | → | dsrt^ joins (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) |
| 01:58:04 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 02:00:41 | × | falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 240 seconds) |
| 02:01:11 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 02:03:42 | × | `[itchyjunk]` quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 02:04:00 | → | `[itchyjunk]` joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:04:17 | × | pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 255 seconds) |
| 02:07:10 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 02:11:54 | × | califax quits (~califax@user/califx) (Ping timeout: 256 seconds) |
| 02:12:14 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 02:12:41 | × | xff0x quits (~xff0x@2405:6580:b080:900:c499:902e:6f70:c890) (Ping timeout: 252 seconds) |
| 02:12:45 | → | califax joins (~califax@user/califx) |
| 02:16:24 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 02:19:28 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 02:21:19 | × | otto_s quits (~user@p4ff276b4.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 02:23:08 | → | otto_s joins (~user@p5b044db0.dip0.t-ipconnect.de) |
| 02:34:09 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 02:36:17 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 02:37:25 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 02:38:03 | × | fryguybob quits (~fryguybob@cpe-24-94-50-22.stny.res.rr.com) (Ping timeout: 258 seconds) |
| 02:38:14 | × | euleritian quits (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 02:38:31 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 02:38:55 | → | fryguybob joins (~fryguybob@cpe-24-94-50-22.stny.res.rr.com) |
| 02:42:13 | → | aforemny_ joins (~aforemny@2001:9e8:6cdb:f00:338e:9cc8:ffb0:8e6c) |
| 02:42:16 | × | aforemny quits (~aforemny@i59F516D1.versanet.de) (Ping timeout: 258 seconds) |
| 02:43:29 | × | dsrt^ quits (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) (Ping timeout: 252 seconds) |
| 02:44:27 | → | dsrt^ joins (~cd@70-88-177-118-atlanta.hfc.comcastbusiness.net) |
| 02:46:52 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 02:50:44 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 02:52:14 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 02:52:44 | × | Katarushisu1 quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 02:53:31 | → | Katarushisu1 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 02:55:47 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:56:28 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 03:02:52 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 03:05:29 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6d7a:4eb0:231d:253f) (Remote host closed the connection) |
| 03:05:44 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6d7a:4eb0:231d:253f) |
| 03:05:49 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:05:49 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:05:49 | finn_elija | is now known as FinnElija |
| 03:06:10 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 03:06:32 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 03:07:13 | × | edr quits (~edr@user/edr) (Quit: Leaving) |
| 03:10:07 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 03:11:18 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 03:11:35 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 03:12:46 | → | nate3 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 03:13:38 | × | dsrt^ quits (~cd@70-88-177-118-atlanta.hfc.comcastbusiness.net) (Ping timeout: 272 seconds) |
| 03:15:56 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 03:16:11 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 03:17:15 | → | dsrt^ joins (~cd@70-88-177-118-atlanta.hfc.comcastbusiness.net) |
| 03:18:08 | × | nate3 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 03:20:53 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 03:23:48 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 03:26:44 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 03:29:57 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 03:40:16 | → | Inst joins (~Inst@120.244.192.250) |
| 03:40:36 | <Inst> | EvanR with the sample code, I'm trying to get a random value of type Int, using the Proxy value to carry the type information |
| 03:41:00 | <Inst> | I think you can still get a random type, however, with dynamic typing overrides |
| 03:41:12 | <Inst> | generate some Ints, have each value correspond to a type |
| 03:41:26 | <Inst> | get a union via existential types or dynamic |
| 03:45:49 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 03:45:49 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 03:46:40 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 03:47:47 | × | td_ quits (~td@i5387090C.versanet.de) (Ping timeout: 255 seconds) |
| 03:48:56 | → | todi joins (~todi@79.209.163.230) |
| 03:49:28 | → | td_ joins (~td@i53870921.versanet.de) |
| 03:52:12 | × | madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Server closed connection) |
| 03:52:27 | → | madnight joins (~madnight@static.59.103.201.195.clients.your-server.de) |
| 03:52:48 | → | Jackneill_ joins (~Jackneill@20014C4E1E058A0009BBD059E8BC0D29.dsl.pool.telekom.hu) |
| 03:56:18 | → | rosco joins (~rosco@yp-150-69.tm.net.my) |
| 03:56:18 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 03:56:24 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 03:56:55 | × | todi quits (~todi@79.209.163.230) (Read error: Connection reset by peer) |
| 04:01:08 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 04:01:27 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:12:35 | × | dumptruckman quits (~dumptruck@23-239-13-136.ip.linodeusercontent.com) (Server closed connection) |
| 04:13:16 | → | dumptruckman joins (~dumptruck@23-239-13-136.ip.linodeusercontent.com) |
| 04:14:59 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 04:18:43 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 04:18:49 | → | aforemny joins (~aforemny@2001:9e8:6ce5:5c00:3494:c671:8982:8a94) |
| 04:19:44 | × | aforemny_ quits (~aforemny@2001:9e8:6cdb:f00:338e:9cc8:ffb0:8e6c) (Ping timeout: 252 seconds) |
| 04:20:11 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
| 04:21:27 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 240 seconds) |
| 04:37:03 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 04:40:23 | × | `[itchyjunk]` quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 04:44:58 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 04:48:35 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 04:50:28 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 04:51:04 | → | cheater_ joins (~Username@user/cheater) |
| 04:51:09 | × | cheater quits (~Username@user/cheater) (Ping timeout: 255 seconds) |
| 04:51:18 | cheater_ | is now known as cheater |
| 04:55:42 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 04:56:54 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 04:59:10 | → | thegman joins (~thegman@072-239-207-086.res.spectrum.com) |
| 05:00:31 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 05:00:46 | → | trev joins (~trev@user/trev) |
| 05:04:03 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Server closed connection) |
| 05:04:18 | → | gabiruh joins (~gabiruh@vps19177.publiccloud.com.br) |
| 05:09:28 | × | krei-se quits (~krei-se@p50874770.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 05:13:38 | × | danza quits (~francesco@151.43.111.166) (Ping timeout: 252 seconds) |
| 05:15:34 | → | nate3 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 05:16:55 | × | bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (Server closed connection) |
| 05:16:56 | → | Guest25 joins (~Guest25@2600:4040:959f:a700:b173:8684:b4e1:f33) |
| 05:17:03 | → | bradparker joins (sid262931@id-262931.uxbridge.irccloud.com) |
| 05:18:26 | → | jargon joins (~jargon@184.101.69.217) |
| 05:18:53 | <dibblego> | Why does this file run fine with cabal 3.0.0.0 but not 3.10.2.0? https://gist.github.com/tonymorris/0eea5e45d745c45a3505845ff7b036cd |
| 05:20:16 | × | nate3 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 05:22:48 | × | jargon quits (~jargon@184.101.69.217) (Remote host closed the connection) |
| 05:24:43 | <jackdk> | What happens? |
| 05:26:22 | → | danza joins (~francesco@151.57.107.193) |
| 05:30:26 | × | Guest25 quits (~Guest25@2600:4040:959f:a700:b173:8684:b4e1:f33) (Quit: Client closed) |
| 05:31:31 | × | rosco quits (~rosco@yp-150-69.tm.net.my) (Read error: Connection reset by peer) |
| 05:37:17 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 05:37:32 | → | euleritian joins (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) |
| 05:37:57 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 05:39:26 | × | m1dnight quits (~christoph@78-22-4-67.access.telenet.be) (Server closed connection) |
| 05:39:51 | → | m1dnight joins (~christoph@78-22-4-67.access.telenet.be) |
| 05:42:09 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 05:45:38 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 05:48:48 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 05:49:33 | × | kaskal- quits (~kaskal@2001:4bb8:2c2:d155:91d2:a4ad:c9f9:5f9a) (Ping timeout: 260 seconds) |
| 05:50:09 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 05:52:08 | → | kaskal joins (~kaskal@89.144.222.250) |
| 05:53:19 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 05:57:16 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:01:18 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:05:00 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:05:36 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 06:07:57 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:08:45 | × | euleritian quits (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:09:01 | → | euleritian joins (~euleritia@77.22.252.56) |
| 06:10:44 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:14:01 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:16:10 | → | alp joins (~alp@2001:861:5e02:eff0:2565:907e:1d8d:7aea) |
| 06:16:31 | × | dsrt^ quits (~cd@70-88-177-118-atlanta.hfc.comcastbusiness.net) (Ping timeout: 255 seconds) |
| 06:17:11 | → | dsrt^ joins (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) |
| 06:18:05 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:19:39 | × | pixelmonk quits (~pixelmonk@50.205.76.66) (Ping timeout: 245 seconds) |
| 06:20:39 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:21:45 | → | krei-se joins (~krei-se@p5085dea2.dip0.t-ipconnect.de) |
| 06:22:22 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 256 seconds) |
| 06:24:25 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 06:24:56 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:25:08 | × | thegman quits (~thegman@072-239-207-086.res.spectrum.com) (Quit: leaving) |
| 06:25:42 | → | michalz joins (~michalz@185.246.207.205) |
| 06:26:41 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:28:24 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 245 seconds) |
| 06:29:18 | → | euleritian joins (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) |
| 06:30:54 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:31:59 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:32:15 | × | thegeekinside quits (~thegeekin@189.141.80.123) (Remote host closed the connection) |
| 06:33:52 | → | pixelmonk joins (~pixelmonk@50.205.76.66) |
| 06:33:52 | × | pixelmonk quits (~pixelmonk@50.205.76.66) (Client Quit) |
| 06:35:45 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:37:07 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:40:42 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:40:57 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:41:47 | → | Inst joins (~Inst@120.244.192.250) |
| 06:44:20 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:44:52 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:49:39 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 06:52:38 | → | thegeekinside joins (~thegeekin@189.141.80.123) |
| 06:56:52 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 06:58:56 | × | wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 07:00:10 | → | wagle joins (~wagle@quassel.wagle.io) |
| 07:01:33 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:03:31 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:07:20 | × | p3n quits (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:08:11 | → | rosco joins (~rosco@yp-150-69.tm.net.my) |
| 07:08:40 | → | p3n joins (~p3n@217.198.124.246) |
| 07:10:38 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:11:53 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 07:16:57 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:20:15 | × | rosco quits (~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal) |
| 07:20:39 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:21:46 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (*.net *.split) |
| 07:21:46 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (*.net *.split) |
| 07:21:46 | × | califax quits (~califax@user/califx) (*.net *.split) |
| 07:21:46 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (*.net *.split) |
| 07:21:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split) |
| 07:21:46 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (*.net *.split) |
| 07:21:46 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (*.net *.split) |
| 07:21:46 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (*.net *.split) |
| 07:21:47 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split) |
| 07:22:07 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 07:24:06 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 07:24:07 | → | califax joins (~califax@user/califx) |
| 07:24:13 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 07:24:55 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 07:24:56 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 07:24:59 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 07:25:07 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 07:25:25 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 07:25:27 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:27:21 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 07:29:20 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:33:03 | → | gmg joins (~user@user/gehmehgeh) |
| 07:35:00 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:35:15 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:35:26 | × | tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
| 07:38:09 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:39:00 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:41:29 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 07:43:48 | → | zetef joins (~quassel@5.2.182.98) |
| 07:44:08 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:44:58 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:48:44 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:49:36 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:50:01 | × | euleritian quits (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:50:33 | → | euleritian joins (~euleritia@77.22.252.56) |
| 07:50:41 | → | todi joins (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
| 07:50:45 | × | todi quits (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:55:23 | → | acidjnk joins (~acidjnk@p200300d6e72b939468149480f7812d1a.dip0.t-ipconnect.de) |
| 07:57:10 | → | fendor joins (~fendor@2a02:8388:1640:be00:cb6e:46f6:2fe6:1728) |
| 07:57:52 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 07:57:53 | × | alp quits (~alp@2001:861:5e02:eff0:2565:907e:1d8d:7aea) (Ping timeout: 260 seconds) |
| 07:58:49 | × | euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
| 07:59:22 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:01:19 | → | lortabac joins (~lorenzo@2a01:e0a:541:b8f0:a220:937e:62a3:88d0) |
| 08:02:29 | × | paddymahoney quits (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 08:02:29 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 08:02:41 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:03:53 | × | thegeekinside quits (~thegeekin@189.141.80.123) (Ping timeout: 258 seconds) |
| 08:06:53 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 08:07:56 | → | euleritian joins (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) |
| 08:09:38 | → | mmhat joins (~mmh@p200300f1c7445ecbee086bfffe095315.dip0.t-ipconnect.de) |
| 08:09:41 | × | mmhat quits (~mmh@p200300f1c7445ecbee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 08:15:21 | → | pointlessslippe1 joins (~pointless@212.82.82.3) |
| 08:25:53 | × | dsrt^ quits (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) (Ping timeout: 260 seconds) |
| 08:26:36 | → | dsrt^ joins (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) |
| 08:31:41 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 08:32:57 | → | alp joins (~alp@2001:861:5e02:eff0:2d1c:5a65:2649:274e) |
| 08:35:19 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 264 seconds) |
| 08:36:44 | × | zetef quits (~quassel@5.2.182.98) (Ping timeout: 245 seconds) |
| 08:38:36 | × | juri_ quits (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 240 seconds) |
| 08:40:37 | → | juri_ joins (~juri@79.140.117.217) |
| 08:42:43 | × | euleritian quits (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:43:00 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:44:10 | → | arahael joins (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) |
| 08:45:07 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:45:56 | × | juri_ quits (~juri@79.140.117.217) (Ping timeout: 252 seconds) |
| 08:47:09 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 08:47:16 | → | euleritian joins (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) |
| 08:47:22 | → | juri_ joins (~juri@84-19-175-187.pool.ovpn.com) |
| 08:51:27 | × | dsrt^ quits (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) (Ping timeout: 255 seconds) |
| 08:52:06 | → | dsrt^ joins (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) |
| 08:54:27 | × | kraftwerk28 quits (~kraftwerk@164.92.219.160) (Quit: *disconnects*) |
| 08:55:32 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:56:03 | → | kraftwerk28 joins (~kraftwerk@164.92.219.160) |
| 08:56:05 | × | euleritian quits (~euleritia@dynamic-046-114-207-195.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:56:22 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:57:40 | → | paddymahoney joins (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) |
| 08:59:52 | → | rosco joins (~rosco@yp-150-69.tm.net.my) |
| 09:03:06 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 09:13:27 | × | danza quits (~francesco@151.57.107.193) (Ping timeout: 240 seconds) |
| 09:16:56 | → | nate3 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 09:17:34 | × | dsrt^ quits (~cd@70-88-177-118-Atlanta.hfc.comcastbusiness.net) (Ping timeout: 245 seconds) |
| 09:18:08 | → | dsrt^ joins (~cd@70-88-177-118-atlanta.hfc.comcastbusiness.net) |
| 09:19:35 | → | mechap joins (~mechap@user/mechap) |
| 09:21:36 | × | nate3 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 09:24:36 | → | __monty__ joins (~toonn@user/toonn) |
| 09:25:36 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6d7a:4eb0:231d:253f) (Remote host closed the connection) |
| 09:30:56 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:31:31 | <geekosaur> | it's working for me but it's building a shitload of stuff and I have no idea why |
| 09:32:08 | → | bgag joins (~bgag@146-241-2-216.dyn.eolo.it) |
| 09:32:13 | ← | bgag parts (~bgag@146-241-2-216.dyn.eolo.it) () |
| 09:33:58 | <geekosaur> | well. it saw fit to install lens before running. which took a while because I'd purged my 8.10.7 store |
| 09:34:25 | <geekosaur> | I don't see anything in my test dir or parents that would cause it |
| 09:34:39 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 09:41:51 | → | Guest|70 joins (~Guest|70@84-238-167-232.ip.btc-net.bg) |
| 09:43:09 | × | Guest|70 quits (~Guest|70@84-238-167-232.ip.btc-net.bg) (Client Quit) |
| 09:45:54 | × | xigua quits (~xigua@user/xigua) (Read error: Connection reset by peer) |
| 09:46:03 | → | chele joins (~chele@user/chele) |
| 09:46:08 | → | xigua joins (~xigua@user/xigua) |
| 09:46:12 | → | Pickchea joins (~private@user/pickchea) |
| 09:48:40 | → | danse-nr3 joins (~danse@151.35.115.233) |
| 09:51:16 | <tomsmeding> | geekosaur: no trace in dist-newstyle/cache/plan.json ? |
| 09:59:48 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6d7a:4eb0:231d:253f) |
| 10:01:38 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 10:14:22 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 10:14:50 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 10:16:09 | <geekosaur> | oh, I missed that lens was listed as a dep, n/m |
| 10:17:07 | <geekosaur> | anyway it worked here, although my cabal reports as 3.10.1.0 because of https://github.com/haskell/cabal/issues/9415 |
| 10:21:01 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds) |
| 10:24:18 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 272 seconds) |
| 10:27:35 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 240 seconds) |
| 10:27:35 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 10:31:15 | × | rosco quits (~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal) |
| 10:31:35 | → | zaquest joins (~notzaques@5.130.79.72) |
| 10:37:10 | → | Inst joins (~Inst@120.244.192.250) |
| 10:44:17 | → | notzmv joins (~zmv@user/notzmv) |
| 10:46:27 | → | zetef joins (~quassel@95.77.17.251) |
| 10:47:09 | × | mrvdb quits (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) (Server closed connection) |
| 10:47:26 | → | mrvdb joins (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) |
| 10:50:20 | × | cptaffe quits (~cptaffe@user/cptaffe) (Ping timeout: 248 seconds) |
| 10:50:58 | → | cptaffe joins (~cptaffe@user/cptaffe) |
| 10:51:31 | × | elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 264 seconds) |
| 10:54:38 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 252 seconds) |
| 10:58:03 | → | elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
| 11:03:04 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 11:05:17 | × | kraftwerk28 quits (~kraftwerk@164.92.219.160) (Quit: *disconnects*) |
| 11:06:41 | → | kraftwerk28 joins (~kraftwerk@164.92.219.160) |
| 11:07:43 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 11:09:48 | × | lortabac quits (~lorenzo@2a01:e0a:541:b8f0:a220:937e:62a3:88d0) (Ping timeout: 260 seconds) |
| 11:11:19 | × | fendor quits (~fendor@2a02:8388:1640:be00:cb6e:46f6:2fe6:1728) (Remote host closed the connection) |
| 11:11:41 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds) |
| 11:12:46 | × | ft quits (~ft@p4fc2a529.dip0.t-ipconnect.de) (Quit: leaving) |
| 11:14:58 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 272 seconds) |
| 11:16:17 | → | lortabac joins (~lorenzo@2a01:e0a:541:b8f0:f652:8911:8b9b:c1a8) |
| 11:16:32 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 11:23:51 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:24:08 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:25:26 | × | arahael quits (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 252 seconds) |
| 11:27:15 | → | xff0x joins (~xff0x@2405:6580:b080:900:568f:45bf:9aab:4d48) |
| 11:33:16 | × | Hecate quits (~mariposa@user/hecate) (Server closed connection) |
| 11:33:24 | → | Hecate joins (~mariposa@user/hecate) |
| 11:33:33 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:41:01 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:55:30 | → | aliosablack joins (~chomwitt@ppp-94-67-203-175.home.otenet.gr) |
| 11:56:01 | × | zetef quits (~quassel@95.77.17.251) (Ping timeout: 240 seconds) |
| 12:00:44 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:02:42 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
| 12:09:14 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 12:11:52 | × | adium quits (adium@user/adium) (Server closed connection) |
| 12:12:47 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 12:12:56 | → | adium joins (adium@user/adium) |
| 12:18:18 | × | int-e quits (~noone@int-e.eu) (Server closed connection) |
| 12:18:26 | → | int-e joins (~noone@int-e.eu) |
| 12:24:01 | × | aliosablack quits (~chomwitt@ppp-94-67-203-175.home.otenet.gr) (Ping timeout: 240 seconds) |
| 12:24:44 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Server closed connection) |
| 12:24:51 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 12:24:51 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 12:24:51 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 12:24:51 | ChanServ | sets mode +v lambdabot |
| 12:26:43 | → | edr joins (~edr@user/edr) |
| 12:34:43 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 12:42:23 | → | erty joins (~user@user/aeroplane) |
| 12:45:37 | → | chomwitt joins (~chomwitt@ppp-2-87-3-224.home.otenet.gr) |
| 12:46:35 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 12:47:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:48:50 | → | jrm joins (~jrm@user/jrm) |
| 12:51:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:52:21 | × | danse-nr3 quits (~danse@151.35.115.233) (Ping timeout: 240 seconds) |
| 12:54:51 | → | CiaoSen joins (~Jura@2a05:5800:28f:de00:664b:f0ff:fe37:9ef) |
| 12:58:32 | × | hueso_ quits (~root@user/hueso) (Quit: hueso_) |
| 12:58:57 | → | notzmv joins (~zmv@user/notzmv) |
| 12:59:27 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
| 13:02:15 | → | hueso joins (~root@user/hueso) |
| 13:12:30 | → | falafel joins (~falafel@62.175.113.194.dyn.user.ono.com) |
| 13:14:30 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 13:16:12 | × | hugo quits (znc@130.236.254.26) (Server closed connection) |
| 13:16:26 | → | hugo joins (znc@quicksilver.lysator.liu.se) |
| 13:17:50 | × | chomwitt quits (~chomwitt@ppp-2-87-3-224.home.otenet.gr) (Ping timeout: 258 seconds) |
| 13:17:52 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:18:25 | → | nate3 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 13:23:07 | × | nate3 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 13:23:27 | → | Pickchea joins (~private@user/pickchea) |
| 13:31:33 | × | falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds) |
| 13:36:23 | → | danse-nr3 joins (~danse@ge-19-113-42.service.infuturo.it) |
| 13:37:56 | → | chomwitt joins (~chomwitt@ppp-2-85-137-218.home.otenet.gr) |
| 13:41:21 | × | danse-nr3 quits (~danse@ge-19-113-42.service.infuturo.it) (Ping timeout: 240 seconds) |
| 13:41:42 | → | danse-nr3 joins (~danse@ge-19-113-42.service.infuturo.it) |
| 13:51:49 | × | dsrt^ quits (~cd@70-88-177-118-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection) |
| 13:52:33 | → | hiyori joins (~hiyori@user/hiyori) |
| 13:54:38 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
| 14:02:56 | → | rosco joins (~rosco@yp-150-69.tm.net.my) |
| 14:11:09 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 14:13:25 | × | CiaoSen quits (~Jura@2a05:5800:28f:de00:664b:f0ff:fe37:9ef) (Ping timeout: 258 seconds) |
| 14:14:38 | × | chomwitt quits (~chomwitt@ppp-2-85-137-218.home.otenet.gr) (Ping timeout: 255 seconds) |
| 14:22:50 | → | notzmv joins (~zmv@user/notzmv) |
| 14:23:45 | × | lg188 quits (~lg188@82.18.98.230) (Quit: Bye.) |
| 14:24:14 | → | thegeekinside joins (~thegeekin@189.141.80.123) |
| 14:24:21 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 14:32:06 | → | lg188 joins (~lg188@82.18.98.230) |
| 14:34:05 | × | erty quits (~user@user/aeroplane) (Ping timeout: 240 seconds) |
| 14:35:03 | × | lg188 quits (~lg188@82.18.98.230) (Client Quit) |
| 14:36:18 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 14:36:52 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:38:45 | × | zzz quits (~z@user/zero) (Server closed connection) |
| 14:38:45 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 14:39:00 | → | euleritian joins (~euleritia@77.22.252.56) |
| 14:39:06 | → | zero joins (~z@user/zero) |
| 14:40:59 | × | euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
| 14:41:45 | → | euleritian joins (~euleritia@dynamic-046-114-206-064.46.114.pool.telefonica.de) |
| 14:42:07 | × | euleritian quits (~euleritia@dynamic-046-114-206-064.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:42:53 | → | lg188 joins (~lg188@82.18.98.230) |
| 14:43:14 | → | euleritian joins (~euleritia@77.22.252.56) |
| 14:43:47 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 14:47:19 | × | doyougnu quits (~doyougnu@45.46.170.68) (Ping timeout: 264 seconds) |
| 14:47:52 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 14:52:35 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 240 seconds) |
| 14:52:42 | → | euleritian joins (~euleritia@dynamic-046-114-206-064.46.114.pool.telefonica.de) |
| 14:56:39 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 15:07:06 | × | Angelz quits (Angelz@2605:6400:30:fc15:9bd1:2217:41cd:bb15) (Ping timeout: 260 seconds) |
| 15:07:52 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
| 15:08:53 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 15:10:43 | → | Guest67 joins (~Guest67@70.19.76.200) |
| 15:16:37 | → | mechap joins (~mechap@user/mechap) |
| 15:17:32 | → | fendor joins (~fendor@2a02:8388:1640:be00:cb6e:46f6:2fe6:1728) |
| 15:17:52 | × | doyougnu quits (~doyougnu@45.46.170.68) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:20:23 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 15:23:43 | <Guest67> | Does anybody know of a robust function to unify intersecting lists in a list? I have this function but it does not work for the example I provided https://pastebin.com/12D5nRV6 |
| 15:24:45 | × | doyougnu quits (~doyougnu@45.46.170.68) (Client Quit) |
| 15:26:16 | <[exa]> | "intersecting" literally as finding the set intersection? |
| 15:26:18 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 15:26:37 | × | AlexNoo quits (~AlexNoo@94.233.241.129) (Read error: Connection reset by peer) |
| 15:26:55 | <[exa]> | (not sure if I get what operation it does) |
| 15:27:01 | → | AlexNoo joins (~AlexNoo@94.233.241.129) |
| 15:28:14 | → | ph88 joins (~ph88@2a02:8109:9e26:c800::302a) |
| 15:30:13 | × | Hafydd quits (~Hafydd@user/hafydd) (Server closed connection) |
| 15:30:32 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 15:31:01 | <ncf> | looks like you need some sort of union-find |
| 15:33:32 | <c_wraith> | [exa]: take a list of sets, merge all the ones that have common elements. |
| 15:34:35 | <ncf> | basically you have some presentation of an equivalence relation with possibly overlapping equivalence classes, and you want a set of non-overlapping equivalence classes |
| 15:35:38 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 15:36:44 | × | doyougnu quits (~doyougnu@45.46.170.68) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:37:29 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:37:41 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 15:37:41 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 15:39:01 | <Inst> | jesus christ, this textbook |
| 15:39:03 | <c_wraith> | Guest67: do you have any simpler failing case? I don't see the error in the example offhand. |
| 15:39:09 | <Inst> | okay, i'll wait :) |
| 15:39:35 | <c_wraith> | wait, nevermind. I see a problem, at least. |
| 15:39:59 | <ncf> | the error is pretty obvious: ntr' should check all lists for intersection, not just the first one |
| 15:40:17 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 15:40:36 | <c_wraith> | Oh, right. It might intersect multiple lists that were previously disjoint |
| 15:40:44 | <ncf> | ...and merge all intersecting lists, not just the first one, i guess |
| 15:41:04 | <c_wraith> | both cases should be recursive! |
| 15:42:39 | <c_wraith> | The part of me that cares about predictable performance is not having a happy time with [[a]] as the data type here. Or with using foldr |
| 15:42:58 | <c_wraith> | But that's like several steps down the line from getting it correct |
| 15:43:23 | × | alp quits (~alp@2001:861:5e02:eff0:2d1c:5a65:2649:274e) (Ping timeout: 252 seconds) |
| 15:45:07 | × | doyougnu quits (~doyougnu@45.46.170.68) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:47:25 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 15:50:04 | <ncf> | i don't think lists are the appropriate data structure for this anyway |
| 15:50:19 | <c_wraith> | well, [Set a] is fine |
| 15:51:02 | <c_wraith> | though its strictness properties are awkward. |
| 15:52:09 | → | doyougnu- joins (~doyougnu@45.46.170.68) |
| 15:52:11 | × | doyougnu quits (~doyougnu@45.46.170.68) (Ping timeout: 252 seconds) |
| 15:52:49 | <c_wraith> | but that use of foldr is stack-pessimal, because the first thing it does is pattern-match on the recursive case. |
| 15:58:12 | → | Angelz joins (Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973) |
| 16:01:33 | × | lortabac quits (~lorenzo@2a01:e0a:541:b8f0:f652:8911:8b9b:c1a8) (Quit: WeeChat 3.5) |
| 16:02:25 | × | euleritian quits (~euleritia@dynamic-046-114-206-064.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:02:45 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:03:05 | → | tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
| 16:04:21 | <Guest67> | Hey sorry for the delayed response. Is there a way to resolve it without using a different data type? |
| 16:05:27 | → | Nixkernal_ joins (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) |
| 16:06:53 | × | Nixkernal quits (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 258 seconds) |
| 16:08:51 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 16:09:27 | <Inst> | but yeah, this textbook |
| 16:12:43 | <Inst> | I'm going over the Chinese textbook I mentioned earlier and it's hilarious |
| 16:12:48 | → | chomwitt joins (~chomwitt@2a02:587:7a1a:4300:1ac0:4dff:fedb:a3f1) |
| 16:13:08 | <Inst> | claims that it's suitable for "self-study", people beginning computer science, as well as introductory computer science courses |
| 16:13:13 | <Inst> | stuffs recursion in your face in chapter 1.2 |
| 16:14:08 | <[exa]> | Guest67: pre-sorted lists make pretty good Sets w.r.t. merging |
| 16:15:30 | <[exa]> | Inst: my honest opinion on a good point to start with recursion is chapter -0.5 :D |
| 16:15:54 | <Inst> | i'm not saying it's bad, at this point, i preliminarily decided this is worth translating with the permission of the author |
| 16:15:59 | <Inst> | if i can get it |
| 16:16:07 | <Inst> | but the norms are just so... different |
| 16:16:17 | <Inst> | chapter 2: discussion of mathematical functions |
| 16:16:26 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:16:35 | × | rosco quits (~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal) |
| 16:16:36 | <danse-nr3> | seems interesting |
| 16:16:40 | <Inst> | the closest analogue is a mixture of Haskell from the Very Beginning (ultra-accessible, based on a OCaml book) and Hutton's Programming in Haskell |
| 16:17:01 | <danse-nr3> | is it specific to haskell? |
| 16:17:03 | <Inst> | and yup, good ole Z shows up |
| 16:17:04 | <Inst> | yes |
| 16:17:12 | <c_wraith> | Guest67: ntr' is the problem with your current implementation. You didn't consider the case where a new list might intersect multiples in the current accumulator |
| 16:17:20 | <Inst> | Z indicates the set of real numbers |
| 16:17:28 | <Inst> | erm, set of integers |
| 16:17:34 | <[exa]> | ...phew :D |
| 16:17:53 | <c_wraith> | Guest67: A simpler test case would be [[1,2],[1,3],[2,4]] |
| 16:18:08 | <Inst> | my fault, parsing three languages at once, math, chinese, and english |
| 16:20:02 | <[exa]> | Inst: anyway it is quite common to see textbooks like this, people tend to to just write down a reference for their course and at some point it suddenly gets the "self-study" sticker and that's it |
| 16:20:10 | <c_wraith> | Guest67: ntr' will get called with [2,4] and [], giving the result [[2,4]]. Then it will get called with [1,3] [[2,4]], giving the result [[2,4],[1,3]]. Finally, it will be called with [1,2] [[2,4],[1,3]], and that's where it goes wrong |
| 16:20:35 | <Inst> | ehhh, i mean, Chinese Haskell culture seems isolated from Western Haskell culture |
| 16:20:46 | <Inst> | would be interesting to see what kind of weirdness results |
| 16:20:56 | <Inst> | I should go hunt down Granin and ask him about what the Russian Haskell community is like |
| 16:20:57 | <c_wraith> | Guest67: That call should result in one output list, but it will result in two because you stop recursing as soon as it intersects with one thing |
| 16:21:16 | <Inst> | in a different Chinese Haskell book, there was a prolonged section on Data.Bits |
| 16:21:51 | <danse-nr3> | recursion and math functions do not seem that unrelated to be honest. Not sure about Data.Bits, but i guess, like for english books, there can be different focuses |
| 16:22:15 | <Inst> | no, I mean, recursion is hilarious because it gives traditional programmers a stroke |
| 16:22:30 | <Inst> | whereas it's bread and butter in FP |
| 16:22:53 | <c_wraith> | meh. It was a long time before I learned FP, and I never had issues with recursion |
| 16:23:17 | <c_wraith> | well, other than understanding why. Examples like factorial are not convincing |
| 16:23:36 | <Inst> | his example is maximum |
| 16:23:42 | <Inst> | mymax [x] = x |
| 16:23:49 | <Inst> | mymax (x:xs) = max x (mymax xs) |
| 16:23:57 | <Inst> | then gcd |
| 16:24:22 | <Inst> | gcd (x, 0) = x; gcd (x, y) = gcd (y, mod x y) |
| 16:24:57 | <Inst> | the initial introduction starts with mymax: Z+ -> Z, actually, the mymax function written in math notation |
| 16:26:50 | → | ski joins (~ski@ext-1-042.eduroam.chalmers.se) |
| 16:27:27 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 16:27:35 | <[exa]> | Inst: yeah that's quite oldstyle |
| 16:27:51 | <Inst> | why is it old style? |
| 16:28:14 | → | doyougnu joins (~doyougnu@45.46.170.68) |
| 16:28:56 | <[exa]> | normally I avoid stuff like GCD or any mathematical kind of recursion now and present it more like a case analysis (a bit like mymax, but explicitly with "what are the possibilities that can happen and we can reduce them immediately") |
| 16:29:05 | × | doyougnu- quits (~doyougnu@45.46.170.68) (Ping timeout: 240 seconds) |
| 16:29:52 | <[exa]> | basically trying to follow the cata/ana schemes for good intuition; the more complex recursion schemes become less scary with that |
| 16:30:16 | <Inst> | this is part of chapter 1 as an introduction |
| 16:30:31 | <Inst> | he actually starts with some C code explaining what imperative programming is |
| 16:32:25 | × | WzC quits (~Frank@77-162-168-71.fixed.kpn.net) (Server closed connection) |
| 16:32:39 | → | Noinia joins (~Frank@77-162-168-71.fixed.kpn.net) |
| 16:33:29 | <ski> | ("mathematical kind of recursion" here referring to ?) |
| 16:36:23 | <[exa]> | ski: like GCD... not really a catamorphism or anamorphism unless you can see the bezout coefficients behind that |
| 16:37:41 | <dolio> | Recursion was around long before people doing pseudo category theory categorized some special cases of it. |
| 16:38:29 | <[exa]> | :] |
| 16:38:33 | <ski> | hm, perhaps one could say "non-structural recursion" ? |
| 16:38:50 | <Inst> | exa: you were around when I was bloviating about that glamour model streaming baby rudin, right? |
| 16:38:50 | <[exa]> | ah yeah, that would be more correct. |
| 16:39:09 | <[exa]> | Inst: I saw some of the last lines of that and didn't quite get it :D |
| 16:39:10 | <ski> | (s/correct/precise/, i was more aiming for) |
| 16:40:16 | <Inst> | I guess my assumption is that if the professor knows what he's doing, and he's teaching at the 5th or 6th ranked school in China, it's just stating that the math background of his audience is good enough that he can introduce Haskell by introducing statements in mathematical notation, then translating it directly into Haskell |
| 16:40:26 | × | danse-nr3 quits (~danse@ge-19-113-42.service.infuturo.it) (Ping timeout: 255 seconds) |
| 16:41:05 | <[exa]> | Inst: might be very much the case |
| 16:42:05 | [exa] | remembers people doing the same with matlab |
| 16:42:12 | [exa] | shudders |
| 16:42:20 | → | danse-nr3 joins (~danse@ge-19-113-42.service.infuturo.it) |
| 16:43:52 | → | dut joins (~dut@user/dut) |
| 16:46:53 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6d7a:4eb0:231d:253f) (Remote host closed the connection) |
| 16:47:11 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3c67:344e:72ec:4543) |
| 16:47:27 | × | danse-nr3 quits (~danse@ge-19-113-42.service.infuturo.it) (Ping timeout: 240 seconds) |
| 16:49:02 | → | erty joins (~user@user/aeroplane) |
| 16:52:04 | ski | . o O ( "Domain-Specific Languages of Mathematics: Presenting Mathematical Analysis Using Functional Programming" by Cezar Ionescu,Patrik Jansson in 2016-11-29 at <https://arxiv.org/abs/1611.09475>,<https://github.com/DSLsofMath/DSLsofMath> ) |
| 17:02:52 | × | lg188 quits (~lg188@82.18.98.230) (Quit: Bye.) |
| 17:03:51 | <Inst> | i guess the book is weird |
| 17:03:57 | <Inst> | the author's read quite a few Haskell textbooks |
| 17:04:05 | <Inst> | it starts really intimidating looking with math |
| 17:04:30 | <Inst> | by the middle you're looking at stuff that looks cribbed off Simon Thompson's "The Craft of Functional Programming" |
| 17:05:01 | <Unicorn_Princess> | i'd like to get multi-line input for interactive haskell working without using :{:}, in emacs eshell. it works for the "let a=0\nb=1" case, but can't get it to work for a pattern-matching function def, like "let f 0 = 1\nf x = 3". uses only the last definition without the let, and syntax errors on '=' with the let |
| 17:06:08 | <Unicorn_Princess> | (right now i just start an eshell and run ghci, not using any haskell-inferior-mode or such packages) |
| 17:07:37 | → | thegman joins (~thegman@072-239-207-086.res.spectrum.com) |
| 17:08:08 | → | Simikando joins (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
| 17:09:56 | <zero> | ghcup recommended versions for cabal and ghc are, respectively. but "Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.6.2.0 supports 'ghc' version < 9.4): /home/zero/.ghcup/bin/ghc is version 9.4.7" |
| 17:10:48 | <zero> | my message is clearly missing the versions after "respectively" but it's redundant |
| 17:11:57 | × | hueso quits (~root@user/hueso) (Quit: hueso) |
| 17:13:00 | → | aosync joins (~alews@user/aws) |
| 17:15:15 | → | hueso joins (~root@user/hueso) |
| 17:17:19 | × | chomwitt quits (~chomwitt@2a02:587:7a1a:4300:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds) |
| 17:19:54 | → | nate3 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 17:21:11 | → | idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 17:23:03 | → | mmhat joins (~mmh@p200300f1c7445ecbee086bfffe095315.dip0.t-ipconnect.de) |
| 17:23:04 | × | mmhat quits (~mmh@p200300f1c7445ecbee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 17:24:59 | × | nate3 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 17:25:21 | → | dom0 joins (~u0_a242@79.116.123.64) |
| 17:25:47 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 17:32:50 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 17:33:40 | → | lg188 joins (~lg188@82.18.98.230) |
| 17:39:08 | × | Guest67 quits (~Guest67@70.19.76.200) (Quit: Client closed) |
| 17:41:04 | × | dom0 quits (~u0_a242@79.116.123.64) (Quit: WeeChat 4.0.5) |
| 17:44:16 | → | alp joins (~alp@2001:861:5e02:eff0:a4ec:9755:9740:6f21) |
| 17:48:03 | × | dut quits (~dut@user/dut) (Quit: Leaving) |
| 17:54:58 | <EvanR> | is mtl-style capabilities the same thing as "tagless final" |
| 17:55:48 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:57:25 | → | danza joins (~francesco@151.37.118.190) |
| 17:57:33 | × | alp quits (~alp@2001:861:5e02:eff0:a4ec:9755:9740:6f21) (Ping timeout: 260 seconds) |
| 17:58:13 | × | chele quits (~chele@user/chele) (Quit: Leaving) |
| 18:08:13 | × | Simikando quits (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Quit: Leaving) |
| 18:10:35 | <Inst> | huh, i guess Qiao Haiyan's book changed my mind on recursion |
| 18:10:48 | <zero> | Inst: how so? |
| 18:10:58 | <Inst> | I was cargo culting Professor Krishnamurti's line on factorial and fib being dumb |
| 18:11:02 | <Inst> | https://www.quora.com/How-does-professor-Shriram-Krishnamurthi-teach-the-concept-of-recursion |
| 18:13:57 | <ski> | how did it change your mind ? |
| 18:14:42 | <Inst> | I mean, their approach is to start with a mathematically recursive definition |
| 18:14:53 | <Inst> | then translate the mathematical definition into haskell |
| 18:15:11 | → | ursa-major joins (~ursa-majo@37.19.210.38) |
| 18:16:47 | ski | waits for the punchline |
| 18:16:59 | <Inst> | there is no punchline, their approach just seems valid and convincing to me |
| 18:17:23 | <Inst> | Krishnamurti's line is start with recursive data structures |
| 18:17:36 | <ski> | i'm wondering how it changed your mind |
| 18:19:06 | <ski> | (i respect Shriram .. but perhaps he may have a bit dogmatic bent, at times) |
| 18:20:11 | <EvanR> | Inst, in haskell dumb things get a lot of Milage |
| 18:21:20 | <EvanR> | data Either a b = Left a | Right b, so dumb nothing can go wrong and you have no incentive to reinvent it |
| 18:22:25 | <Inst> | the feeling i got from Qiao Haiyan and Zhou Xiaocong's book is that they connect Haskell to mathematics and mathematical notation quite closely, despite trying to write an intro book |
| 18:22:25 | → | accord joins (uid568320@id-568320.hampstead.irccloud.com) |
| 18:22:38 | <Inst> | somehow just converting from mathematical notation to haskell code is convincing |
| 18:23:15 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 18:23:16 | <Inst> | meanwhile in Haskelbook, you get more or less the same thing |
| 18:23:24 | justThanks | is now known as justTesting |
| 18:24:07 | <Inst> | https://media.discordapp.net/attachments/968989726633779215/1171877720540594237/image.png?ex=655e472d&is=654bd22d&hm=3e710b27dce2eac46a391e8aed6534d564bbbf6095478fb920bbc68d9707974a&=&width=2154&height=1386 |
| 18:24:09 | <Inst> | this somehow seems |
| 18:24:49 | <Inst> | to be less convincing than n! = n * (n-1) * ... * 1 |
| 18:25:13 | <EvanR> | it does look better than the equivalent Integer computation in many other languages |
| 18:25:35 | <EvanR> | which involves calls to the arbitrary precision library |
| 18:26:23 | ski | . o O ( "The Swine Before Perl" (talk/presentation) by Shriram Krishnamurthi in 2001-11 at <https://cs.brown.edu/~sk/Publications/Talks/SwineBeforePerl/> (with audio file),<http://www.ai.mit.edu/projects/dynlangs/ll1/shriram-talk.pdf> ) |
| 18:29:41 | <Inst> | ugh, i think this laptop's bluetooth is borked :( |
| 18:33:20 | × | danza quits (~francesco@151.37.118.190) (Ping timeout: 252 seconds) |
| 18:35:32 | <zero> | ah that shriram. i like his talk on expressiveness |
| 18:36:36 | <zero> | https://yewtu.be/watch?v=43XaZEn2aLc |
| 18:39:22 | <ski> | yea, based on Felleisen's paper |
| 18:40:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:41:11 | <Inst> | https://media.discordapp.net/attachments/1130582451752796322/1171882022462038056/e53ad72c49256e3b766d6e290b45c234.png?ex=655e4b2e&is=654bd62e&hm=9954d7804aa6e8f0120ef9f57d39de91524c3a17db1dc813bebbbfa031aef8a3&=&width=640&height=1386 |
| 18:42:09 | <ski> | Inst : do they connect that with induction, in the text ? |
| 18:42:29 | <Inst> | not sure, would have to look elsewhere |
| 18:43:38 | → | statusbot1 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 18:44:05 | <ski> | yea, i guess i meant, in close connection to introducing recursion |
| 18:45:41 | <ski> | EvanR : oh, btw, would you still be interested in seeing that coroutine `zipWith' stuff ? |
| 18:47:08 | <EvanR> | sure |
| 18:47:08 | × | statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Ping timeout: 248 seconds) |
| 18:48:12 | × | mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.1.1) |
| 18:52:25 | <Inst> | https://media.discordapp.net/attachments/1130582451752796322/1171884700181217411/30b0ecdaf9dd840a8e67b72dd62f61a9.png?ex=655e4dad&is=654bd8ad&hm=8fb5036f9390557572150fdec960434089b02c3d690ece304446527b68e8e864&=&width=640&height=1386 |
| 18:53:22 | <Inst> | https://media.discordapp.net/attachments/1130582451752796322/1171884852409278474/d505b138ca765bdd2ff39c398a9904e7.png |
| 18:53:38 | <ski> | EvanR : "FoldrZip.hs" (2007-04-10),"FoldrZipAlternate.hs" (2011-06-14) <https://paste.tomsmeding.com/hh2TNgYy> |
| 18:54:14 | <Inst> | ski: that's what i mean by it seems a bit dumbed down in some places and too advanced in others |
| 18:55:03 | <ski> | Inst : since `mymax' is restricted to positive integers, why don't they also handle the empty list ? |
| 18:55:10 | <EvanR> | if you like math and functional programming notation there is the homotopy type theory book |
| 18:55:18 | <ski> | .. oh. sorry, i misread, actually |
| 18:55:29 | <Inst> | yeah it's partial :( |
| 18:55:33 | <ski> | yea, the superscript plus is for list, i just realized |
| 18:55:47 | <EvanR> | whoa you can paste 2 files |
| 18:55:57 | <ski> | (non-empty list, presumably .. so it's, in the theory/model, not partial) |
| 18:56:03 | <ski> | sure |
| 18:56:54 | → | neceve joins (~neceve@user/neceve) |
| 18:56:57 | → | zetef joins (~quassel@95.77.17.251) |
| 18:57:05 | <EvanR> | your empty list [ ] ... |
| 18:57:50 | <EvanR> | it makes me wonder why the romans never spelled 2 like I I |
| 18:58:25 | <ski> | the different (numbered) versions are supposed to be stepwise refactorings, to hopefully help show where the code in the end came from, not completely "pulling the rabbit out of the hat" (aka "oracle method") |
| 18:59:42 | <Inst> | in the 2.4? |
| 19:00:40 | <ski> | (and `A' and `B' are the two coroutine types, that communicate with each other, handing off the "baton" to the other one, including its own current state, so the other one can resume the former one when it wants to) |
| 19:00:57 | <ski> | Inst ? |
| 19:01:02 | <Inst> | ah okay, misunderstood |
| 19:01:15 | <Inst> | too tired, sorry for bugging you with a brain fart, have a nice day :) |
| 19:01:18 | ski | was talking about the (repaste of an old) paste |
| 19:01:29 | <ski> | nw, have fun |
| 19:01:39 | × | hiyori quits (~hiyori@user/hiyori) (Quit: Client closed) |
| 19:01:39 | × | erty quits (~user@user/aeroplane) (Ping timeout: 255 seconds) |
| 19:02:43 | <EvanR> | I'm still on zipWith2 xD |
| 19:02:59 | <EvanR> | I see zipWith3 accomplish the mission without pattern match |
| 19:03:25 | <EvanR> | have you benchmarked their performance |
| 19:03:44 | × | thegman quits (~thegman@072-239-207-086.res.spectrum.com) (Read error: Connection reset by peer) |
| 19:04:59 | → | thegman joins (~thegman@072-239-207-086.res.spectrum.com) |
| 19:05:18 | <ski> | `zipWith1' to `zipWith2' is merely the definition of `foldr' |
| 19:05:37 | <ski> | i didn't benchmark, no |
| 19:06:05 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 19:06:51 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
| 19:06:54 | <ski> | (`zipWith2' to `zipWith3' is the step that's a bit more of a leap) |
| 19:08:03 | <ski> | (one could also unfold `A' into `B' (or vice versa), which would make the CPS nature of it slightly more apparent) |
| 19:10:00 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 19:10:00 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:12:04 | <ski> | (iow, `newtype A a b c = MkA {unA :: (a -> A a b c -> [c]) -> [c]}' resp. `newtype B a b c = MkB {unB :: a -> (B a b c -> [c]) -> [c]}', iow `A a b c' is `Cont [c] (a,A a b c)' and `B a b c' is `a -> Cont [c] (B a b c)' .. although interfacing them with each other then might be a bit more bureaucratic. anyway, if you squint, you can see that `A a b c' is kinda a stream of `a's, and `B a b c' is kinda a |
| 19:12:10 | <ski> | consumer of an `a' stream) |
| 19:13:10 | <ski> | (and yes, the `b' parameter there is completely useless. you'll see that in the second file, i skipped it (and generalized `[c]' to `r' in the `newtype's)) |
| 19:14:41 | × | [Leary] quits (~Leary]@user/Leary/x-0910699) (Ping timeout: 240 seconds) |
| 19:15:24 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 19:19:23 | → | target_i joins (~target_i@217.175.14.39) |
| 19:20:00 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 19:21:18 | <EvanR> | I just finished that scheme talk and it was the exact opposite of standard youtube information undensity xD |
| 19:21:40 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 19:22:22 | <EvanR> | I like at the very end it's a debate between statically typed higher order functions compiling an automaton vs using scheme macros to get the same effect (before compiling) |
| 19:22:37 | <EvanR> | alright zipWith3 |
| 19:22:40 | <ski> | which talk ? the Swine one, or the expressivity one ? |
| 19:22:54 | × | aosync quits (~alews@user/aws) (Server closed connection) |
| 19:22:55 | <ski> | ah, Swine it is |
| 19:23:10 | → | aosync joins (~alews@user/aws) |
| 19:23:17 | <EvanR> | yes. Also tomsmedingpaste coloring as in the code as bs is really throwing me off xD |
| 19:23:38 | <ski> | yea, i also noticed that :p |
| 19:29:21 | <EvanR> | and we can link this up with the Swine talk by understanding your code using a sort of automaton? |
| 19:30:21 | <EvanR> | but there are 2 input streams |
| 19:30:39 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 19:31:13 | × | zetef quits (~quassel@95.77.17.251) (Ping timeout: 255 seconds) |
| 19:31:21 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds) |
| 19:31:32 | <EvanR> | and I'm not sure what the states would be |
| 19:32:08 | <EvanR> | initiate *think very hard* strategy |
| 19:32:16 | <ski> | EvanR : ah .. no, the Swine talk was unrelated (at least afaik) |
| 19:32:38 | <ski> | (been a while since i (re)watched it, though) |
| 19:33:00 | <ski> | (i only mentioned it because Shriram came up previously) |
| 19:33:09 | → | Pickchea joins (~private@user/pickchea) |
| 19:33:22 | <EvanR> | yeah it is |
| 19:33:28 | <EvanR> | I'm trying to relate them xD |
| 19:34:11 | <ski> | i guess they're talking about using tail calls to switch between states .. and i'm also switching between states (which coroutine is active), kina |
| 19:37:59 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 19:40:33 | <EvanR> | state 0, look at [a] stream, if it's empty yield [], otherwise goto "state 1 with the a". state 1 (with an a), look at [b]. If it's empty yield [], otherwise yield f a b and go back to state 0 |
| 19:41:16 | <ski> | yep, exactly |
| 19:41:30 | <ski> | (or state `A' and state `B', if you prefer) |
| 19:42:08 | <ski> | the `kA's and `kB's are the current states of each respective coroutine, which is passed along when relinguishing control to the other one |
| 19:42:39 | → | hgolden_ joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) |
| 19:42:46 | <ski> | .. the main trick here was figuring out that you needed recursive types, and then what exact recursive types would work |
| 19:43:09 | × | hgolden_ quits (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) (Client Quit) |
| 19:43:33 | <ski> | (i started from the (initially rather vague) intuition of coroutine states, though. iirc, i added the versions zero,one,two as an afterthought) |
| 19:43:42 | → | hgolden_ joins (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) |
| 19:44:17 | × | hgolden quits (~hgolden@2603-8000-9d00-3ed1-dd4f-298a-9c49-a0ed.res6.spectrum.com) (Ping timeout: 252 seconds) |
| 19:44:46 | → | danza joins (~francesco@151.37.118.190) |
| 19:44:52 | <EvanR> | I don't recall seeing this sort of thing on "evolution of a haskell programmer" xD |
| 19:45:24 | <ski> | (each coroutine takes the state of the other coroutine as an argument. it would be interesting to fiddle with some example requiring three coroutines, and preferably not just a cyclic (or linear) handoff of the baton, but at least handoffs in four directions) |
| 19:45:46 | <ski> | hm, i forget when the evolution thing came |
| 19:47:23 | <EvanR> | consB b kB = MkB $ \a kA -> f a b : unA kA kB |
| 19:48:21 | → | shoggouth joins (uid607148@user/shoggouth) |
| 19:48:26 | <EvanR> | so someone consumes the f a b, and wants to get the next element... so evaluates unA kA kB... |
| 19:48:34 | <ski> | <http://www.willamette.edu/~fruehr/haskell/evolution.html> says 2001-07-11 |
| 19:49:06 | <EvanR> | kA contains a function taking kB... and there it is... |
| 19:49:29 | <EvanR> | and the function ... |
| 19:49:33 | <ski> | yea. ideally, when reading, ignore the `MkA's,`MkB's,`unA's,`unB's .. those are only needed because cyclic types aren't allowed (unlike say `ocaml -rectypes') |
| 19:50:44 | <EvanR> | is doing a foldr |
| 19:51:40 | <EvanR> | so unA kA kB will evaluate to [] or another f a b : unA kA kB |
| 19:51:56 | <ski> | i was delightfully surprised when i realized that the basic idea did work |
| 19:52:01 | × | danza quits (~francesco@151.37.118.190) (Ping timeout: 240 seconds) |
| 19:52:08 | <ski> | yea |
| 19:52:40 | <EvanR> | I wonder if there's a nicer way to visualize it, probably by removing all the MkA and unA etc |
| 19:53:20 | ← | Inst parts (~Inst@120.244.192.250) (Leaving) |
| 19:56:40 | <EvanR> | each coroutine state is basically a tail of one of the input lists being consumed, so they could be visualized as like a ribosome (which yields DNA by zipping down an mRNA strand) |
| 19:56:54 | <EvanR> | or tRNA or something like that |
| 19:57:48 | × | kraftwerk28 quits (~kraftwerk@164.92.219.160) (Quit: *disconnects*) |
| 19:59:41 | <ski> | hm .. i guess one could make a version with passing the states back and forth, without using `foldr' for the looping (so each coroutine has explicit recursion) |
| 19:59:43 | <EvanR> | and contains each others state so it can be expressed by a single expression tree |
| 20:01:06 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:01:31 | <EvanR> | oh yeah, zipWith3 not only has no pattern matching but no explicit recursion |
| 20:01:36 | <EvanR> | and no data |
| 20:02:06 | <ski> | (btw, i think it's possible to add a `forall' on `[c]'/`r' inside at least `A', perhaps also `B') |
| 20:02:23 | <ski> | quite a neat trick, huh ? |
| 20:02:30 | <ski> | :) |
| 20:03:01 | <EvanR> | and this was in an old oleg paper? figures xD |
| 20:03:26 | <ski> | well, apparently Oleg did something similar |
| 20:03:36 | <ski> | but i came up with it on my own, independently |
| 20:04:20 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 20:06:14 | <EvanR> | to generalize it, I'd identify what direction to generalize. More input streams? More coroutines? More memory (like the a being carried between state 0 and state 1)? Is memory associated with the coroutine or is it global |
| 20:06:21 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 20:06:29 | <EvanR> | is it necessarily 1 input stream per coroutine |
| 20:06:37 | <ski> | anyway, the one i solved a couple of days ago, along similar lines (although a little bit more involved), was `sameFringe :: Eq a => Tree a -> Tree a -> Bool' (specified as `sameFringe t0 t1 = toList t0 == toList t1') where `data Tree a = Empty | Leaf a | Branch (Tree a) (Tree a)' |
| 20:06:43 | <EvanR> | what even identifies what as a coroutine |
| 20:06:46 | → | euleritian joins (~euleritia@dynamic-046-114-202-140.46.114.pool.telefonica.de) |
| 20:06:54 | <ski> | good questions |
| 20:07:13 | <ski> | you could have multiple (alternate) "entry points" for each type of coroutine |
| 20:07:26 | <ski> | (just use a record of functions) |
| 20:09:23 | <ski> | the natural way to think about would be each coroutine having its own local state, i think. you could also possibly pass auxilary state on to the awoken coroutine, together with the self state. or you could use `IORef's, if you want to |
| 20:09:55 | × | neceve quits (~neceve@user/neceve) (Ping timeout: 255 seconds) |
| 20:10:39 | → | neceve joins (~neceve@user/neceve) |
| 20:10:39 | <ski> | (e.g. perhaps you would like to either wake a coroutine up, handing it an element, or else waking it up to tell it that there's no more elements ..) |
| 20:11:04 | <EvanR> | lets say you are passed "the state" of 99 other coroutines. Then you can optionally yield output, then move to the next state by entering one (?) of the 99 states, along with your updated state. So there's this all-the-states-minus-yourself structure getting passed in? Anyway, which routine to you enter next |
| 20:11:16 | <ski> | (.. although i found a different solution, for `sameFringe') |
| 20:11:49 | <EvanR> | to give everyone a chance to go you'd need some kind of scheduler |
| 20:12:53 | <EvanR> | in this case the other routine only goes when you need something from it |
| 20:13:07 | <ski> | "So there's this all-the-states-minus-yourself structure getting passed in?" -- now this reminds me of a simple (cyclic) graph traverser i made, without using cyclic data structures, nor using node identifiers |
| 20:13:25 | <ski> | (in the form of a small text adventure, for fun) |
| 20:13:33 | justTesting | is now known as justThanks |
| 20:14:06 | <ski> | EvanR : yea, its cooperative, not preemptive, concurrency |
| 20:15:04 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 264 seconds) |
| 20:15:33 | <ski> | each one explicitly hands off to a different one (although they're loosely coupled in the sense that they're only bound together at the top-level. so it's more that each coroutine depends on the interface of the others, but is not bound directly to their implementation, except when firing it all off) |
| 20:15:33 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 20:15:45 | <EvanR> | so you could round robin, A does something, enters B, which does something, enters C, which does something, eventually coming back to A which could be acting like the main interpreter loop or something |
| 20:16:35 | <EvanR> | or were you thinking something more complex |
| 20:16:42 | <ski> | with a dynamic situation, one'd like some kind of scheduler to keep track of which coroutine corresponds to which channel identifier, or whatever |
| 20:20:39 | <ski> | "A Poor Man's Concurrency Monad" by Koen Claessen in 1993 at <https://github.com/papers-we-love/papers-we-love/blob/main/languages/haskell/a-poor-mans-concurrency-monad.pdf> may be relevant |
| 20:21:54 | <EvanR> | I wonder what ghc thinks the difference is between zipWith0 and zipWith3 (in terms of compiler output) |
| 20:25:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:26:19 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
| 20:35:00 | × | Jackneill_ quits (~Jackneill@20014C4E1E058A0009BBD059E8BC0D29.dsl.pool.telekom.hu) (Quit: Leaving) |
| 20:35:01 | × | She quits (haveident@libera/staff/she/her) (Quit: Either upgrades, or the world's ending.) |
| 20:35:11 | → | Shelob joins (haveident@libera/staff/she/her) |
| 20:35:18 | → | Jackneill joins (~Jackneill@20014C4E1E058A0009BBD059E8BC0D29.dsl.pool.telekom.hu) |
| 20:35:27 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 20:35:35 | Shelob | is now known as She |
| 20:35:48 | × | krj quits (~krjst@2604:a880:800:c1::16b:8001) (Server closed connection) |
| 20:36:59 | → | misterfish joins (~misterfis@84-53-85-146.bbserv.nl) |
| 20:37:01 | → | krj joins (~krjst@2604:a880:800:c1::16b:8001) |
| 20:37:48 | × | neceve quits (~neceve@user/neceve) (Read error: Connection reset by peer) |
| 20:38:21 | × | She quits (haveident@libera/staff/she/her) (Client Quit) |
| 20:41:29 | → | She joins (haveident@libera/staff/she/her) |
| 20:42:17 | → | neceve joins (~neceve@user/neceve) |
| 20:43:07 | → | santiagopim joins (~user@90.167.66.131) |
| 20:49:04 | × | thegeekinside quits (~thegeekin@189.141.80.123) (Ping timeout: 255 seconds) |
| 20:49:45 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 20:50:56 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3c67:344e:72ec:4543) (Remote host closed the connection) |
| 20:57:26 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 21:01:22 | → | ft joins (~ft@p4fc2a529.dip0.t-ipconnect.de) |
| 21:02:53 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 21:04:32 | × | target_i quits (~target_i@217.175.14.39) (Quit: leaving) |
| 21:05:15 | × | ubert quits (~Thunderbi@77.119.168.33.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:07:17 | × | thegman quits (~thegman@072-239-207-086.res.spectrum.com) (Quit: leaving) |
| 21:07:59 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds) |
| 21:09:58 | → | chomwitt joins (~chomwitt@2a02:587:7a1a:4300:1ac0:4dff:fedb:a3f1) |
| 21:10:39 | → | zetef joins (~quassel@5.2.182.98) |
| 21:11:16 | → | thegman joins (~thegman@072-239-207-086.res.spectrum.com) |
| 21:13:03 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:13:56 | × | misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 252 seconds) |
| 21:22:56 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3c67:344e:72ec:4543) |
| 21:23:14 | × | thegman quits (~thegman@072-239-207-086.res.spectrum.com) (Quit: leaving) |
| 21:24:58 | → | thegeekinside joins (~thegeekin@189.141.80.123) |
| 21:25:30 | × | zetef quits (~quassel@5.2.182.98) (Remote host closed the connection) |
| 21:29:08 | → | zetef joins (~quassel@5.2.182.98) |
| 21:35:01 | → | [Leary] joins (~Leary]@user/Leary/x-0910699) |
| 21:39:35 | × | elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 240 seconds) |
| 21:42:03 | → | thegman joins (~thegman@072-239-207-086.res.spectrum.com) |
| 21:43:16 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds) |
| 21:44:13 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 21:45:50 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 21:46:22 | → | elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
| 21:46:57 | → | Lycurgus joins (~georg@user/Lycurgus) |
| 21:50:24 | × | zetef quits (~quassel@5.2.182.98) (Remote host closed the connection) |
| 21:51:13 | → | zetef joins (~quassel@5.2.182.98) |
| 21:51:53 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 21:52:29 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 21:57:05 | × | acidjnk quits (~acidjnk@p200300d6e72b939468149480f7812d1a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 21:58:50 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:58:51 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 21:59:19 | <[Leary]> | ski, EvanR: Relevant, if you want to keep twisting your brain: https://doisinkidney.com/posts/2021-03-14-hyperfunctions.html |
| 22:00:15 | → | pavonia joins (~user@user/siracusa) |
| 22:00:18 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:02:47 | <ski> | [Leary] : oh, ty :) |
| 22:03:05 | → | kraftwerk28 joins (~kraftwerk@164.92.219.160) |
| 22:03:29 | <EvanR> | to understand hyperfunctions you must first what |
| 22:04:51 | <ski> | (istr "hyperfunctions" being used to describe something like `data Hyper a b = H (a -> b) (Hyper (a,a) (b,b))', though .. which is obviously different) |
| 22:06:55 | × | kraftwerk28 quits (~kraftwerk@164.92.219.160) (Client Quit) |
| 22:07:29 | → | kraftwerk28 joins (~kraftwerk@164.92.219.160) |
| 22:12:45 | × | fendor quits (~fendor@2a02:8388:1640:be00:cb6e:46f6:2fe6:1728) (Remote host closed the connection) |
| 22:13:49 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 22:15:43 | <EvanR> | their zip function uses no explicit recursion pattern matching or additional data (other than applying the (,) constructor which could just as well by the f from zipWith) |
| 22:16:02 | <EvanR> | oh it requires infinite types |
| 22:16:23 | <EvanR> | why don't we allowed infinite types again? xD |
| 22:16:40 | <dminuoso> | Well we do allow them, up to isomorphism. |
| 22:16:45 | <dminuoso> | :p |
| 22:17:09 | <dminuoso> | (That is, an isomorphism of allowance) |
| 22:20:48 | × | Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving) |
| 22:24:15 | × | michalz quits (~michalz@185.246.207.205) (Remote host closed the connection) |
| 22:27:53 | × | kraftwerk28 quits (~kraftwerk@164.92.219.160) (Quit: *disconnects*) |
| 22:30:59 | <monochrom> | Infinite types can recurse the world. >:) |
| 22:31:04 | → | kraftwerk28 joins (~kraftwerk@164.92.219.160) |
| 22:35:06 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:35:35 | → | mechap joins (~mechap@user/mechap) |
| 22:37:31 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 255 seconds) |
| 22:41:25 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:42:19 | → | CO2 joins (CO2@gateway/vpn/protonvpn/co2) |
| 22:44:24 | <EvanR> | so hyperfunctions unironically speed up your zip code xD |
| 22:45:31 | × | chomwitt quits (~chomwitt@2a02:587:7a1a:4300:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds) |
| 22:56:25 | <c_wraith> | apparently if you allow infinite types, a lot of code is accepted that you really want to fail to type-check |
| 22:59:55 | × | idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
| 23:00:41 | <EvanR> | m >>= f = Hyp (\k -> invoke (f (invoke m (Hyp (invoke k . (>>=f))))) k) |
| 23:01:50 | <EvanR> | "I won’t pretend to understand what’s going on here, but it looks a little like a nested reader monad." |
| 23:03:30 | → | wroathe joins (~wroathe@50.205.197.50) |
| 23:03:30 | × | wroathe quits (~wroathe@50.205.197.50) (Changing host) |
| 23:03:30 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:04:51 | × | Benzi-Junior quits (~BenziJuni@88-149-64-112.du.xdsl.is) (Server closed connection) |
| 23:06:38 | → | Benzi-Junior joins (~BenziJuni@88-149-64-112.du.xdsl.is) |
| 23:08:41 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:10:30 | × | terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
| 23:12:27 | → | terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::) |
| 23:14:42 | <monochrom> | c_wraith: I.e., infinite types can curse your code! >:) |
| 23:17:07 | × | neceve quits (~neceve@user/neceve) (Ping timeout: 255 seconds) |
| 23:17:58 | <jackdk> | ski: "A Poor Man's Concurrency Monad" is a really cool paper I hadn't seen before. Thanks for linking it. |
| 23:21:25 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 23:23:18 | → | nate3 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 23:25:51 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 240 seconds) |
| 23:25:58 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:27:35 | × | nate3 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 23:28:06 | × | zetef quits (~quassel@5.2.182.98) (Remote host closed the connection) |
| 23:29:29 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
| 23:36:16 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:36:55 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:41:43 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 23:54:05 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Read error: Connection reset by peer) |
| 23:54:50 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 23:56:12 | × | monochrom quits (trebla@216.138.220.146) (Quit: ZNC 1.8.2+deb3build2 - https://znc.in) |
| 23:58:56 | → | monochrom joins (trebla@216.138.220.146) |
All times are in UTC on 2023-11-08.