2021-10-22 00:00:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 00:00:46 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:01:52 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:02:46 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:03:53 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:04:46 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:05:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-22 00:05:52 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:06:08 +0200 | <dsal> | Is it possible to have a function that uses a type without declaring the type it uses? I want to make a thing that, for example, verifies round tripping of an enum without having to specify the values since it's a bounded enum already. |
2021-10-22 00:06:20 +0200 | <dsal> | I guess I can use a Proxy. |
2021-10-22 00:06:46 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:07:11 +0200 | <monochrom> | Yeah I would use a proxy type. |
2021-10-22 00:07:33 +0200 | <monochrom> | Type application can also be acceptable in simple cases. |
2021-10-22 00:07:53 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:08:47 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:09:53 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:10:47 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:11:27 +0200 | Guest28 | (~Guest28@93-172-116-38.bb.netvision.net.il) (Ping timeout: 256 seconds) |
2021-10-22 00:11:53 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:12:46 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2021-10-22 00:12:47 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:13:54 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:14:27 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 00:14:37 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-22 00:14:42 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 00:14:47 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:14:49 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 00:15:54 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:16:48 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:17:54 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:18:48 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:19:54 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:20:21 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-10-22 00:20:48 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:21:18 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-22 00:21:23 +0200 | mestre | (~mestre@191.177.175.57) |
2021-10-22 00:21:55 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:22:49 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:23:34 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-22 00:23:51 +0200 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) |
2021-10-22 00:23:55 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:24:00 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 00:24:49 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:25:55 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:26:17 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-22 00:26:49 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:27:55 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:28:30 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-10-22 00:28:49 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:28:50 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-10-22 00:29:28 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 00:29:57 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:30:50 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:31:08 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:e12b:5f61:be92:9101) |
2021-10-22 00:31:32 +0200 | <Inst> | oh |
2021-10-22 00:31:33 +0200 | <Inst> | hey guys |
2021-10-22 00:31:40 +0200 | <Inst> | Just want to troll a bit more: |
2021-10-22 00:31:50 +0200 | <Inst> | It turns out I have a friend who's been described as a champion influencer. |
2021-10-22 00:31:56 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:32:14 +0200 | <Inst> | She's a scanlator as a hobby, meaning she scans manga (japanese comics) / manghwa (korean comics) |
2021-10-22 00:32:22 +0200 | <Inst> | translates it, then publishes the illegal pirates |
2021-10-22 00:32:30 +0200 | <Inst> | it turns out that in some game, #1 |
2021-10-22 00:32:36 +0200 | <Inst> | she managed to recruit 1000 or more players almost singlehandedly |
2021-10-22 00:32:50 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:32:58 +0200 | <Inst> | #2, in return for scanlated manga, she was able to use the recruited players to generate the real money equivalent of 16,000 USD |
2021-10-22 00:33:25 +0200 | <Inst> | putting this into a haskell context |
2021-10-22 00:33:56 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:33:57 +0200 | <Inst> | I'm thinking, even though HF thinks it's currently a bad idea |
2021-10-22 00:34:09 +0200 | <Inst> | to target non-programmers and other low-level developers |
2021-10-22 00:34:13 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) (Ping timeout: 252 seconds) |
2021-10-22 00:34:50 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:35:32 +0200 | <monochrom> | I think HF is OK with targetting non-programmers, if I understand Andrew Boardman's Haskell.Love talk correctly. |
2021-10-22 00:35:56 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:36:26 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) |
2021-10-22 00:36:37 +0200 | <jackdk> | I have had good experience teaching Haskell to first-year university students with no prior programming experience |
2021-10-22 00:36:50 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:37:57 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:38:50 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:39:43 +0200 | <monochrom> | Low-level developers is a very different story to be sure. Multiple factors such as low ROI. |
2021-10-22 00:39:57 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:40:11 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-22 00:40:50 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:41:27 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
2021-10-22 00:41:48 +0200 | <jackdk> | dsal: these days you could also use explicit type applications if that feels better |
2021-10-22 00:41:57 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:42:51 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:43:54 +0200 | _bo | (~bo@217.18.216.247) (Read error: Connection reset by peer) |
2021-10-22 00:43:57 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:44:41 +0200 | cjb | (~cjbayliss@user/cjb) |
2021-10-22 00:44:51 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:44:54 +0200 | cjb | (~cjbayliss@user/cjb) (Client Quit) |
2021-10-22 00:45:58 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:46:06 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2021-10-22 00:46:51 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:47:58 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:48:35 +0200 | <Inst> | @monochrom: the problem is the instruction, if experienced developers are bad at grokking haskell, what are the odds that non-haskell programmers would get it? |
2021-10-22 00:48:35 +0200 | <lambdabot> | Unknown command, try @list |
2021-10-22 00:48:52 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:48:54 +0200 | <monochrom> | Indeed. |
2021-10-22 00:49:01 +0200 | <Inst> | IMO, there's two issues, #1, the ecosystem (haskell jobs) is not properly developed, but doing a supply side drop (there's tons of coders and they all know haskell) |
2021-10-22 00:49:10 +0200 | <Inst> | might work, although it'd be risky |
2021-10-22 00:49:21 +0200 | <Inst> | #2, the education quality has to be assured beforehand |
2021-10-22 00:49:35 +0200 | <Inst> | if you convert someone to try haskell, and it doesn't stick, you're going to have a much harder time trying to convert them again |
2021-10-22 00:49:38 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-10-22 00:49:38 +0200 | <Inst> | but i'm trying to point out |
2021-10-22 00:49:49 +0200 | <monochrom> | If 90-yos are bad at learning a musical instrument, what chance do 9-yos have? Or do they? |
2021-10-22 00:49:58 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:50:02 +0200 | <Inst> | you can do a supply side drop, although it might not be "avoid success at all costs" |
2021-10-22 00:50:45 +0200 | <Inst> | if you use a guerrilla marketing technique which is Standard Operating Procedure in China |
2021-10-22 00:50:50 +0200 | <Inst> | i.e, use influencers to advertise your language |
2021-10-22 00:50:52 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:51:02 +0200 | <Inst> | it's not "avoid success at all costs" because it'll damage Haskell's reputation |
2021-10-22 00:51:18 +0200 | <Inst> | "that time Haskell became popular because someone dumped an advertising budget into Youtube influencers" |
2021-10-22 00:51:26 +0200 | <monochrom> | BTW what's the connection with the champion influecer and scanlating and making 100k? |
2021-10-22 00:51:39 +0200 | <Inst> | I mean she's a good influencer |
2021-10-22 00:51:56 +0200 | <Inst> | she scanlated Manhwa (Korean comics) to generate the equivalent of 16,000 USD in a MMO |
2021-10-22 00:51:57 +0200 | <monochrom> | Hell, what's the connection between those 3 in the first place hahah |
2021-10-22 00:51:58 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:52:06 +0200 | <yushyin> | /fa Inst |
2021-10-22 00:52:07 +0200 | <Inst> | by using the Manhwa as a lure |
2021-10-22 00:52:10 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) (Ping timeout: 260 seconds) |
2021-10-22 00:52:14 +0200 | <yushyin> | oh, sorry |
2021-10-22 00:52:36 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
2021-10-22 00:52:47 +0200 | <yushyin> | damn space key |
2021-10-22 00:52:52 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:53:01 +0200 | <aegon> | i've been working on a project for ~7 months in haskell now and most of my collegues are low level code enthusiasts from the gaming land (very c++ / lua happy). My experience sharing code and war stories with them about haskell is that they actually really dig it, just don't see a route to using it professionally. I think its more a chicken and egg scenario. IMO a high quality open implementation of |
2021-10-22 00:53:07 +0200 | <aegon> | something that people say "haskell is not good" for would do wonders |
2021-10-22 00:53:57 +0200 | <Inst> | i mean, well, are you saying the supply side is already there? |
2021-10-22 00:53:59 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:54:03 +0200 | meinside | (uid24933@helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-22 00:54:04 +0200 | <monochrom> | Well, IOHK is causing people to think "Haskell is a blockchain language" now. |
2021-10-22 00:54:50 +0200 | <Inst> | by the way |
2021-10-22 00:54:52 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:54:55 +0200 | <aegon> | i think the want to work in it is there, the route to that is unclear. I've gotten the most serious conversations about it from linking articles about low level optimization and what it looks like in haskell |
2021-10-22 00:54:57 +0200 | <Inst> | this is 100% doable in Haskell, right? |
2021-10-22 00:54:59 +0200 | <Inst> | The influencer girl |
2021-10-22 00:55:11 +0200 | <Inst> | One way to sell Haskell to her would be to say, automate her scanlation process |
2021-10-22 00:55:23 +0200 | <Inst> | build a Haskell-based framework that can process JPgs / PNGs |
2021-10-22 00:55:32 +0200 | <aegon> | i think something low level folks really want to know is more what does optimizing look like and how painfull is it, they want simpler and more concise / composable things, they just don't want it at the cost of resources |
2021-10-22 00:55:47 +0200 | <Inst> | run text recognition on existing text |
2021-10-22 00:55:52 +0200 | <Inst> | aegon: but it's always at the cost of resources, no? |
2021-10-22 00:55:59 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:56:11 +0200 | <monochrom> | Oh OK, I see. |
2021-10-22 00:56:14 +0200 | <Inst> | run text recognition on an existing text, rip it off the jpg/png, and input new text |
2021-10-22 00:56:29 +0200 | <Inst> | so she'd have a haskell-based tool for her scanlation hobby |
2021-10-22 00:56:34 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-22 00:56:37 +0200 | <Inst> | and consequently she'd need haskellers to maintain it |
2021-10-22 00:56:38 +0200 | <aegon> | Inst: debatable, it depends on if hte language gives you all the tools ot not cost resources when you don't want to. Like ify ou want to you can hack away at haskells intermediary language and pin memory etc. there are quite a few tools for optimizing haskell out there |
2021-10-22 00:56:43 +0200 | <monochrom> | Does "low-level developer" means they write asm code? Or does it mean they are low in the corporate ladder? |
2021-10-22 00:56:51 +0200 | <monochrom> | Because I thought the latter. |
2021-10-22 00:56:52 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:57:00 +0200 | <Inst> | (very c++ / lua happy) |
2021-10-22 00:57:20 +0200 | <aegon> | monochrom: i mean they work on game engines and such all day, trying to sqeeze perf out of consoles with bare bones hardware |
2021-10-22 00:57:44 +0200 | wroathe | (~wroathe@173-160-115-161-Minnesota.hfc.comcastbusiness.net) |
2021-10-22 00:57:44 +0200 | wroathe | (~wroathe@173-160-115-161-Minnesota.hfc.comcastbusiness.net) (Changing host) |
2021-10-22 00:57:44 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-22 00:57:47 +0200 | <monochrom> | I guess in the game dev industry the two are equivalent >:) |
2021-10-22 00:57:52 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds) |
2021-10-22 00:57:59 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 00:58:21 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-22 00:58:29 +0200 | <aegon> | lol |
2021-10-22 00:58:53 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 00:58:53 +0200 | <Inst> | i also sort of wish Android / iOS supported Haskell as compiled code ;_; |
2021-10-22 00:59:03 +0200 | <Inst> | or at least as intermediary code for their VMs |
2021-10-22 00:59:09 +0200 | <Axman6> | Inst: to be perfectly honest, that sounds like an incredibly boring project |
2021-10-22 00:59:09 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 00:59:32 +0200 | <Inst> | Axman6: you mean the autmoating scanlation thing? |
2021-10-22 00:59:37 +0200 | <Inst> | It's boring if you're not the end-user. |
2021-10-22 00:59:39 +0200 | <aegon> | haskell on mobile is scary to me because i don't know how to reason about the rts's garbage collector and power usage |
2021-10-22 00:59:53 +0200 | <monochrom> | I am pessimistic about pitching to game engine tweakers. |
2021-10-22 00:59:57 +0200 | <aegon> | if that were an option i would be concerned about power usage |
2021-10-22 00:59:59 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:00:03 +0200 | <Axman6> | it sounds like a couple of days od work in bash, no need for haskell |
2021-10-22 01:00:09 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-10-22 01:00:11 +0200 | <monochrom> | I now how to explain Haskell code optimization, both by hand and what GHC does. |
2021-10-22 01:00:28 +0200 | <monochrom> | I'm also pretty sure that after I'm done, the conclusion is "carry on". |
2021-10-22 01:00:38 +0200 | <monochrom> | s/now/know/ |
2021-10-22 01:00:53 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:00:57 +0200 | <aegon> | monochrom: heh, what makes you say that. What aspect of the perf stuff. |
2021-10-22 01:01:20 +0200 | <Inst> | I mean there's a reason I'm going initially for a C++ / Haskell combo |
2021-10-22 01:01:59 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:02:14 +0200 | <monochrom> | Haskell code optimization involves very advanced techniques. |
2021-10-22 01:02:32 +0200 | <Axman6> | I don;t actually think writing well performing Haskell code is that difficult, optimisation is very _different_ to other languages, but people put in a shitload of effort to learn to optimise code in other languages. I don't understand why people think that you shouldn't also spend some time learning how optimisations in haskell work |
2021-10-22 01:02:37 +0200 | <monochrom> | and knowledge |
2021-10-22 01:02:40 +0200 | pmk | (~user@2a02:587:9414:7d03:fb87:7810:40ab:edc0) (Ping timeout: 260 seconds) |
2021-10-22 01:02:48 +0200 | <Inst> | iirc is it valid to dumb it down to "Haskell, as a functional language, is going to have intrinsic performance losses compared to an imperative language"? |
2021-10-22 01:02:53 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:03:07 +0200 | <awpr> | no. bash is an imperative language |
2021-10-22 01:03:15 +0200 | <monochrom> | And don't seem to worth learning if one isn't forced to use Haskell. |
2021-10-22 01:03:16 +0200 | <aegon> | i woudl like to read up on more. Yeah these are people who spend hours reading up on lvalue / rvalue semantics in new langauge standards to save a couple cycles |
2021-10-22 01:03:21 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 01:03:31 +0200 | <aegon> | i'd think they'd be up to the task |
2021-10-22 01:03:35 +0200 | <Axman6> | the C++ / Haskell combo is working well for Facebook... |
2021-10-22 01:03:40 +0200 | <Inst> | but assembly is imperative |
2021-10-22 01:03:57 +0200 | <Inst> | you're being sardonic, right? |
2021-10-22 01:04:00 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:04:03 +0200 | <Inst> | given their recent massive service outage |
2021-10-22 01:04:16 +0200 | <Axman6> | Inst: no, that's not a fair description of Haskell's performance |
2021-10-22 01:04:33 +0200 | <Axman6> | No, it was a comment about their Sigma system |
2021-10-22 01:04:53 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:04:56 +0200 | <monochrom> | In this case, the sunk cost policy applies. |
2021-10-22 01:04:58 +0200 | <Inst> | ah |
2021-10-22 01:05:30 +0200 | <Axman6> | aegon: yeah exactly, and IMO optimisations in imperative languages are just kind of boring |
2021-10-22 01:05:31 +0200 | NinjaTrappeur | (~ninja@user/ninjatrappeur) |
2021-10-22 01:05:45 +0200 | <monochrom> | Hypothetically if you are starting to write a game engine from scratch now, Haskell and C++ are equally painful, just in different ways. |
2021-10-22 01:06:00 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:06:01 +0200 | <Inst> | who writes game engines from scratch now? |
2021-10-22 01:06:10 +0200 | <monochrom> | But who actually starts to write a game engine from scratch now? |
2021-10-22 01:06:13 +0200 | <Axman6> | like, I love me some low level code, I keep a copy of Hacker's Delight on hand for a reason, because I like writing that sort of code, but real optimisation comes from a higher level |
2021-10-22 01:06:20 +0200 | <Inst> | iirc they just license an engine and call it a day |
2021-10-22 01:06:29 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) |
2021-10-22 01:06:31 +0200 | <monochrom> | All the existing game engine tweakers have already finished learning C++ optimizations. |
2021-10-22 01:06:53 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:07:07 +0200 | <Inst> | have you seen, like, Astral Chain? |
2021-10-22 01:07:08 +0200 | <geekosaur> | doesn't Cale's company have a Haskell game engine? then again who's going to license it much less learn how to tweak it |
2021-10-22 01:07:19 +0200 | <monochrom> | "carry on" carries no extra cost, that cost is already sunk. "switch to Haskell" carries huge extra costs, this is important even though it's <= C++ sunk cost. |
2021-10-22 01:07:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-22 01:07:57 +0200 | <Inst> | it's amazing since Astral Chain was originally intended to be multiplatform, but it ended up being a Nintendo Switch exclusive |
2021-10-22 01:08:00 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:08:10 +0200 | <Inst> | and the Switch is running on mobile hardware |
2021-10-22 01:08:19 +0200 | <Inst> | but it looks incredible |
2021-10-22 01:08:54 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:08:57 +0200 | <Inst> | just saying ,the optimizers have gotten really good |
2021-10-22 01:09:43 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
2021-10-22 01:10:00 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:10:16 +0200 | <aegon> | yeah, a lot of that is that the graphics apis have gotten really flexible, and ify ou know the exact hardware your running on you can do silly things like optimize thread timing and pin threads / spread them out optimally across the given cores |
2021-10-22 01:10:44 +0200 | <Axman6> | Inst: I have to ask, do you have a point to any of this? I feel like you're saying a lot of stuff while not saying very much at all, and "Just want to troll a bit more" is feeling more and more true by the minute. |
2021-10-22 01:10:54 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:10:56 +0200 | <aegon> | a lot of work in pushing consoles is staring at cor usages and tweaking |
2021-10-22 01:12:01 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:12:54 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:13:11 +0200 | <aegon> | monochrom: aye, ultimately all of them were more open to it as a langauge that could be used but happy with c++. I want to some day play around with a game engine in hask but the recent findings about run time library loading on windows are a downer. If you have refernce on haskell optimization i'd love to grab em and read through it. I'm workign off of what i've been able to find on the wiki and some blog |
2021-10-22 01:13:17 +0200 | <aegon> | posts |
2021-10-22 01:13:36 +0200 | kong4ndrew | (~kong4ndre@199.247.111.247) (Remote host closed the connection) |
2021-10-22 01:13:56 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2021-10-22 01:14:01 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:14:04 +0200 | <aegon> | also apparently up untill GHC 9 the concurrency loop was using an incorrect api from the kernel and messing with the scheduler / greedy looping? |
2021-10-22 01:14:19 +0200 | <Inst> | i mean the point re astral chain is that it's a heavily optimized game that uses certain tweaks to be able to run on mobile hardware, but taking a 10-20% penalty in haskell might make it inoperable |
2021-10-22 01:14:21 +0200 | <aegon> | i forget the talk but i think it was sometime recent |
2021-10-22 01:14:55 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:15:03 +0200 | <aegon> | Inst: i'm not sure haskell woudl incur a 10 - 20% penalty given what i've read and how much of that is actually just shipping things off to the gpu / apu |
2021-10-22 01:15:14 +0200 | <Inst> | it already has framerate drops on existing hardware, although it's also an example insofar as switch devs typically make stylistic choices in order to avoid taxing the tegra x1 |
2021-10-22 01:15:32 +0200 | <Axman6> | I've never considered making games in Haskell, it doesn't seem like a niche it would be well suited to, making other real world apps makes much more sense. |
2021-10-22 01:16:01 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:16:18 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-22 01:16:38 +0200 | <sm> | lots of people have though, #haskell-game:matrix.org / #haskell-game:libera.chat is where they hang out |
2021-10-22 01:16:50 +0200 | <Axman6> | the gaming world has found their local minima with C++ (and really, pushing everything to the GPU). I can't see what advantages there would be persuing that given the amount of money invested in the games world already |
2021-10-22 01:16:55 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:17:05 +0200 | <aegon> | Inst: a lot of times frame hiccups are caused by memory allocation /deallocation or reading from disk more so than cpu throughput, i'm not sure haskell would be better or worse w.r.t. |
2021-10-22 01:17:39 +0200 | <Axman6> | yeah absolutely, not saying it can't be done, but the fact that Haskell isn't (currently) well suited to that domain doesn't make it not a good choice of language for gettingh real work done. It'd been paying my bills doing that for like 7 years, so something's working out |
2021-10-22 01:18:02 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:18:37 +0200 | <Inst> | also given that virtually everyone's already running off an engine, and everything else is just a mod to an engine, would haskell actually be useful since development and testing times wouldn't necessarily be that big a part of total development? |
2021-10-22 01:18:49 +0200 | <Inst> | they spend a lot of time and resources on graphical assets, music, plots, etc |
2021-10-22 01:18:55 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:19:09 +0200 | <aegon> | i'm just a haskell enthusiast from the gaming world, I want to try pushing it into that niche for fun. c++20 concepts might change my mind but i'm tired of pushing things in that world from a c++ perspective, its like infinate boiler plate thats inflexible no matter what you do |
2021-10-22 01:19:09 +0200 | <Inst> | total development -> add resource expenditures |
2021-10-22 01:19:10 +0200 | <Cale> | geekosaur: It's not really in a state where it would be licenseable at the moment... and it's full of arrow-y FRP, which we'd probably want to rewrite to use Reflex if we were resuscitating it today. |
2021-10-22 01:20:02 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:20:15 +0200 | <Axman6> | Can someone do something about Guest372? |
2021-10-22 01:20:36 +0200 | <Axman6> | just realised every second line of my log is them joining or parting |
2021-10-22 01:20:40 +0200 | <Inst> | aegon: maybe if someone needs a completely different engine, there might be a chance to get haskell in there |
2021-10-22 01:20:53 +0200 | <aegon> | Axman6: lol, connection woes? |
2021-10-22 01:20:55 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:21:09 +0200 | <sm> | I think Zig is more likely the next big thing for games, https://news.ycombinator.com/item?id=28897469 |
2021-10-22 01:21:17 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-10-22 01:21:21 +0200 | <Inst> | alternate possibility: they're on mobile internet |
2021-10-22 01:21:40 +0200 | <Inst> | and they're driving in and out of a tunnel, say, in Italy or something |
2021-10-22 01:21:59 +0200 | <Inst> | oh, cool |
2021-10-22 01:22:02 +0200 | <Inst> | i just checked the IP out |
2021-10-22 01:22:03 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:22:47 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-22 01:22:56 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:23:08 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) |
2021-10-22 01:23:12 +0200 | <sm> | so here's a piece of haskell-related trivia: if you're using Show/Read to serialise/deserialise, you can use pretty-show to make a more human readable format, and still read by just stripping the newlines |
2021-10-22 01:23:42 +0200 | <Inst> | is it considered rude to point out guest372's ip? |
2021-10-22 01:24:02 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:24:04 +0200 | <sm> | usually a bit invasive and off topic Inst, yes |
2021-10-22 01:24:19 +0200 | <Axman6> | and we can all see it if we want to |
2021-10-22 01:24:20 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-10-22 01:24:24 +0200 | <aegon> | also its not hidden in irc, i get a message with it everytime they leave or go |
2021-10-22 01:24:27 +0200 | <Inst> | no, but where the IP resolves to |
2021-10-22 01:24:29 +0200 | <davean> | Inst: probably considered generally passive agressive to do it indirectly. |
2021-10-22 01:24:39 +0200 | <Inst> | fine, it's an alibaba ip |
2021-10-22 01:24:56 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:25:08 +0200 | <Inst> | then again, alibaba has cloud services so it might have nothing to do with the actual firm |
2021-10-22 01:25:31 +0200 | <aegon> | yeah I'd feel uncomfortable if someone started discussing my geolocation even though its out there by default |
2021-10-22 01:25:45 +0200 | <davean> | Especially being so weird about it |
2021-10-22 01:25:50 +0200 | <davean> | instead of just saying what they want to get at |
2021-10-22 01:26:02 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:26:04 +0200 | <davean> | like clearly Inst is uncomfortable with what they're thinking, which is super suspicious |
2021-10-22 01:26:07 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-22 01:26:10 +0200 | <sm> | so can we talk about Haskell again |
2021-10-22 01:26:15 +0200 | <davean> | Please |
2021-10-22 01:26:20 +0200 | <Axman6> | yeah |
2021-10-22 01:26:55 +0200 | <Inst> | davean: it's cloud, but I just thought it would have been cool if Alibaba programmers were expressing an interest in Haskell |
2021-10-22 01:26:56 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:27:02 +0200 | <sm> | Can Haskell Be Marketed To Beginners As A Better Python |
2021-10-22 01:27:03 +0200 | <Axman6> | hey anyone want to review a PR on my package amazonka-s3-streaming? it's been mostly rewritten because it was honestly absolutely awful initally https://github.com/axman6/amazonka-s3-streaming/pull/25 |
2021-10-22 01:27:44 +0200 | <sm> | also, when GHC 9.2! |
2021-10-22 01:27:53 +0200 | <davean> | sm: Oh man |
2021-10-22 01:27:55 +0200 | <davean> | sm: uh about that |
2021-10-22 01:28:03 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:28:04 +0200 | <Axman6> | sm: yes! https://www.youtube.com/watch?v=BvECNQRrjCY |
2021-10-22 01:28:06 +0200 | <davean> | WTF knows |
2021-10-22 01:28:21 +0200 | <Axman6> | GHC 9.2???? |
2021-10-22 01:28:25 +0200 | <aegon> | sm: pythoners don't know what types are |
2021-10-22 01:28:34 +0200 | aegon | let my bias out |
2021-10-22 01:28:47 +0200 | <aegon> | i worked in it for 6 years in the web world and its maddening |
2021-10-22 01:28:47 +0200 | <davean> | Axman6: Yah, its a bit cursed with fixes ATM |
2021-10-22 01:28:57 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:29:08 +0200 | <aegon> | loose dicts everywhere |
2021-10-22 01:29:27 +0200 | <Axman6> | I've been translating a python project into HAskell, they've gone all in on using the python typing stuff, makes the job a hell of a lot easier |
2021-10-22 01:29:42 +0200 | <sm> | nice |
2021-10-22 01:29:59 +0200 | <Axman6> | (it's code from Microsoft that's pretty academic so I'm not too surprised) |
2021-10-22 01:30:03 +0200 | <aegon> | thats rare imo, i have yet to see a python project at a company attempt types |
2021-10-22 01:30:03 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:30:11 +0200 | <Axman6> | loose dicts sink ships |
2021-10-22 01:30:23 +0200 | <Inst> | lol ax, sorry, i'll stop annoying you guys |
2021-10-22 01:30:34 +0200 | <Inst> | nice video |
2021-10-22 01:30:48 +0200 | <Axman6> | I think this has been using types from the outset, and it feels fairly haskellish a lot of the time. deciding when something should be a typeclass is a bit of a pain |
2021-10-22 01:30:57 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:30:59 +0200 | <davean> | aegon: Do the python programmers you know not write type systems? |
2021-10-22 01:31:21 +0200 | <monochrom> | "Inside every Haskell discussion is a Python discussion that tries to get out" >:) |
2021-10-22 01:31:24 +0200 | <davean> | aegon: you know types are required for some of the accelerated python stuff? |
2021-10-22 01:31:36 +0200 | <davean> | aegon: several companies I know use the python-to-machine-code compilation stuff |
2021-10-22 01:31:49 +0200 | <aegon> | davean: heallll no. its funcs that take dicts all the way down. |
2021-10-22 01:32:03 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:32:13 +0200 | <davean> | I mean thats the language semantics sure - but that deosn't mean the dicts aren't nominal structures |
2021-10-22 01:32:22 +0200 | <aegon> | but i jumped from web land to game / graphics land ~4-ish years ago and have only ever gone back to python to play with machine learning so I'm probably out of date there |
2021-10-22 01:32:37 +0200 | <davean> | aegon: yah I'm talking web python here |
2021-10-22 01:32:40 +0200 | <aegon> | and most the companies i interact with are now using node / typescript for web stuff |
2021-10-22 01:32:48 +0200 | <Axman6> | I feel like every haskeller who comes up against criticism from pythonisters should have that video on speed dial |
2021-10-22 01:32:57 +0200 | <davean> | aegon: honestly its the web where I've seen python need the performance to get compiled with types |
2021-10-22 01:32:57 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:33:32 +0200 | <davean> | Things like science and machine learning and data analysis are all on like numpy and scipy that have C backends already |
2021-10-22 01:33:45 +0200 | <davean> | its the business logic stuff thats slow and needs direct perforamnce improvements |
2021-10-22 01:34:04 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:34:10 +0200 | <davean> | anyway, still not Haskell, but at least closer :) |
2021-10-22 01:34:57 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:35:54 +0200 | <aegon> | roger. I hope i don't hav to python again but it wouldn't be the end of the world. the type system last time i used it felt about on par with typescripts stuff. I didn't know they were using it to inform compilation anywhere |
2021-10-22 01:36:04 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:36:54 +0200 | <aegon> | i've been eager to try my hand at optimizing some haskell after reading up on it but haven't come across any place where its needed yet. monochrom do have a good toy project idea that will put in c-- land? :D or other resources on optimization |
2021-10-22 01:36:57 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:37:15 +0200 | <aegon> | i guess i should say optimizing GHC |
2021-10-22 01:37:18 +0200 | <davean> | aegon: oh optimizing Haskell is fun! |
2021-10-22 01:37:28 +0200 | <monochrom> | I don't. |
2021-10-22 01:37:39 +0200 | <davean> | I did a talk on that almost a year ago now |
2021-10-22 01:38:04 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:38:06 +0200 | <monochrom> | But look for "fusion" papers and SPJ's "core" talks. |
2021-10-22 01:38:33 +0200 | <monochrom> | "core" referring to the intermediate language in GHC. |
2021-10-22 01:38:58 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:39:32 +0200 | <monochrom> | SPJ's "core" talks don't just teach you it, they also show you an optimization pass that interested SPJ at the time of the talk. |
2021-10-22 01:40:04 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:40:21 +0200 | <davean> | aegon: what sort of optimizations are you interested in doing? |
2021-10-22 01:40:58 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:41:18 +0200 | <davean> | Are you interested in optizing Haskell libraries, programs, GHC specificly, or the code GHC produces in general (Or something I've missed as an option) |
2021-10-22 01:41:38 +0200 | <aegon> | monochrom: awesome, collecting links based on those criteria |
2021-10-22 01:42:05 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:42:58 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:43:36 +0200 | <aegon> | davean: i want to have more experience optimizing memory usage and the code ghc produces. Get a better feel for reasoning about how nested recursion or iterating over a list is going ot actually play out in core land and if it doesen't remove the complexity i expect it to, where to poke or look for in the source |
2021-10-22 01:43:38 +0200 | natechan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-10-22 01:44:05 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-22 01:44:06 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:44:11 +0200 | <davean> | Ok so specific programs (or maybe libraries) |
2021-10-22 01:44:13 +0200 | jgeerds | (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 258 seconds) |
2021-10-22 01:44:26 +0200 | <aegon> | i'm writing haskell right now as if its going to take everything up into lambda calculus land and distill it into the best iterative set of instructions possible but i know thats a pretty brittle / bad assumption |
2021-10-22 01:44:59 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:45:20 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 01:45:27 +0200 | <aegon> | I've read up on fusion, inlining pragmas, the stages of compilation but just have no reasonable experince with hacking at any of it. The stuff i've written so far performs well enough which means GHC is great :D because i'm not being particularly careful |
2021-10-22 01:46:05 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:46:14 +0200 | <davean> | yah usually GHC compiles Haskell code well, even though it doesn't even try that hard |
2021-10-22 01:46:54 +0200 | <aegon> | but I'm also mainly processing lazy bytestrings for the "work" of the application. I should probably be forming everything as pipes or with conduit but when i started those were super scary libraries |
2021-10-22 01:46:54 +0200 | <sm> | Axman6: I have now watched your video and understand, that's great :) |
2021-10-22 01:46:59 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:47:11 +0200 | <sm> | this new language looks a bit verbose, but powerful |
2021-10-22 01:47:13 +0200 | <davean> | aegon: oh but machines is so much more fun :) |
2021-10-22 01:47:45 +0200 | <Axman6> | verbosity gives the ~compiler~ interpreter more options for optimisation |
2021-10-22 01:48:01 +0200 | <awpr> | lazy bytestrings get a lot of undeserved hate because they get conflated with lazy IO returning lazy bytestrings |
2021-10-22 01:48:05 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:48:13 +0200 | <monochrom> | I like the machines package too. |
2021-10-22 01:48:19 +0200 | <monochrom> | My only complain is: |
2021-10-22 01:48:23 +0200 | akspecs__ | (~akspecs@user/akspecs) (Ping timeout: 264 seconds) |
2021-10-22 01:48:26 +0200 | <monochrom> | Data.Machine and Control.Lens |
2021-10-22 01:48:39 +0200 | <monochrom> | Does anyone see the oxymorons I see? |
2021-10-22 01:48:50 +0200 | <monochrom> | Why is it not Control.Machine and Data.Lens? |
2021-10-22 01:48:50 +0200 | <geekosaur> | that ship sank years ago :( |
2021-10-22 01:48:56 +0200 | <davean> | monochrom: Oh I see it, but I just read them as different jokes |
2021-10-22 01:48:57 +0200 | <awpr> | at this point `Data.` is basically the `.com` of Haskell module names |
2021-10-22 01:48:59 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:49:18 +0200 | <davean> | I really just need to figure out my selector transformer semantics |
2021-10-22 01:49:21 +0200 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) (Quit: WeeChat 2.3) |
2021-10-22 01:49:21 +0200 | <monochrom> | Both Data. and Control. are .com |
2021-10-22 01:49:24 +0200 | <davean> | So I can publish that package :( |
2021-10-22 01:49:33 +0200 | <davean> | instead of just having a bunch of non-composible transformers |
2021-10-22 01:49:39 +0200 | <monochrom> | Hell, even better: |
2021-10-22 01:50:02 +0200 | <awpr> | `Com.Kmett.Lens` go full Java style |
2021-10-22 01:50:05 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:50:08 +0200 | <davean> | I'm actually sad "Control.Lens" wasn't just "Lens" |
2021-10-22 01:50:13 +0200 | <geekosaur> | Control is a misnomer because your data *is* control structures |
2021-10-22 01:50:25 +0200 | <monochrom> | (|Data> + |Control>)/sqrt2 = (|.com> + |.org|)/sqrt2 |
2021-10-22 01:50:59 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:51:39 +0200 | <geekosaur> | and of course everything is data, so we reach ==davean |
2021-10-22 01:52:03 +0200 | <geekosaur> | well, or codata |
2021-10-22 01:52:06 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:53:00 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:53:27 +0200 | <aegon> | Axman6: python 5 looks dope |
2021-10-22 01:54:06 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:55:00 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:56:06 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:56:56 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb932154b917507392a6.dip0.t-ipconnect.de) |
2021-10-22 01:57:00 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:58:06 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 01:59:00 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 01:59:39 +0200 | <dolio> | They're on 5 now? I thought 3 was still controversial. |
2021-10-22 02:00:02 +0200 | <awpr> | just wait until Python 6 lands with `-XDependentHaskell` |
2021-10-22 02:00:07 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:00:29 +0200 | <aegon> | i'd never heard of Machines |
2021-10-22 02:00:34 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb87897f933eeab9e85f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-10-22 02:00:52 +0200 | <aegon> | gripe to share that i can't fix and don't think is super unreasonable but a perfect example of the hardest part of haskell to me... |
2021-10-22 02:01:00 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:01:05 +0200 | <geekosaur> | can't be outdone by perl now, can they? }:> |
2021-10-22 02:01:23 +0200 | <Axman6> | dolio: https://www.youtube.com/watch?v=BvECNQRrjCY |
2021-10-22 02:01:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 02:01:35 +0200 | <aegon> | i needed to to matrix math recently and ended up on linear which i was super happy with, until i started using it and realizing everything was mathy. I'm still happy with it but trying to find out how to get an inverse of a quaternion was a journey |
2021-10-22 02:02:04 +0200 | <dolio> | Oh, I see. :þ |
2021-10-22 02:02:07 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:02:14 +0200 | <geekosaur> | you were doing matrix math and expecting it to not be mathy? |
2021-10-22 02:03:01 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:04:03 +0200 | <aegon> | i didn't expect to have to dig into an instance class called RealFrac on quaternion to find that given a unit quaterion i can use recip to get the inverse normally given in math libs |
2021-10-22 02:04:04 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 02:04:07 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:04:42 +0200 | <aegon> | like i ended up cross referencing and digging into what Hamiltonian was to find out how to do some basic stuff. which is fair, it is a mathy thing, but i do wish the docs had some practicality / notes |
2021-10-22 02:04:54 +0200 | wrengr | wrengr_away |
2021-10-22 02:05:01 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:05:02 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 02:06:07 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:07:01 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:08:07 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:09:01 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:09:53 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-10-22 02:10:08 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:10:12 +0200 | <aegon> | i guess i don't know how it could be done better and still use the right classes for the things it does but mapping from the type classes to normal use cases was a journey. Hopefully in a month or so on theo ther end of this i'll remember to try a pr with a overview doc or something |
2021-10-22 02:11:02 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:11:03 +0200 | <aegon> | but it feels like that happens a lot in hask land compared to other langauges where theres this awesome library that does something really slick and well but good luck using it if you aren't the author and know what some very high level concepts mean |
2021-10-22 02:12:08 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:13:02 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:13:13 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 252 seconds) |
2021-10-22 02:13:40 +0200 | <aegon> | imo learning them and digging into it is a better path to understanding what your working with but since we were talkign about haskells marketablility. Seemed relevant. Scotty / Spock are awesome, but it took me like 3 days to understand how to use either |
2021-10-22 02:14:08 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:14:34 +0200 | <dsal> | jackdk: I'm doing a type application to type the proxy, but I'm not sure how to name a function that uses a type internally, but doesn't have any parameters that reference the type. |
2021-10-22 02:14:56 +0200 | jaitoon | (~Jaitoon@2a02:c7f:a5f:1d00:3901:d03b:2d77:c4b6) (Quit: Leaving) |
2021-10-22 02:15:02 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:15:28 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-10-22 02:15:59 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
2021-10-22 02:16:09 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:16:45 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-10-22 02:17:03 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:17:18 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 02:18:09 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:19:00 +0200 | <aegon> | geekosaur: yeah, keep math out of my math libs, and don't start talking about science and facts please :P |
2021-10-22 02:19:03 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:19:27 +0200 | <jackdk> | dsal: Here is an example. You need `-XTypeApplications` to select the type to `fromEnum`, `-XScopedTypeVariables` to be able to reference the type var `a` inside the body, and `-XAllowAmbiguousTypes` to defer the ambiguity check to the use site. https://www.irccloud.com/pastebin/SJhDUCgy/EnumIndices.hs |
2021-10-22 02:20:09 +0200 | <jackdk> | dsal: you then call it like `enumIndices @Bool`, which evaluates to `[0, 1]` |
2021-10-22 02:20:09 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:20:29 +0200 | <monochrom> | Heh I wrote a similar example. whee = fromEnum (minBound :: a) == 1 |
2021-10-22 02:20:41 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Remote host closed the connection) |
2021-10-22 02:21:03 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:21:42 +0200 | <jackdk> | oh yeah right you don't need to use a type application enumIndices; a type annotation suffices there |
2021-10-22 02:22:02 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-22 02:22:09 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:22:10 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb932154b917507392a6.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-22 02:23:03 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:23:23 +0200 | <aegon> | its a dumb criticism to bring up, obvously if your using haskell you should be comfortable navigating all that stuff as part of the language. And i certainly oculdn't write a linear library to match linear. But on top of the functional part being rough for newcomers navigating the libraries is also often rough until you grok it. |
2021-10-22 02:24:00 +0200 | <monochrom> | I still like the proxy approach though. |
2021-10-22 02:24:10 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:24:37 +0200 | aegon | goes back to working on this 14000 line pile of hask with little to no comments and 3 letter vars all over the place. <_< >_> |
2021-10-22 02:25:04 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:25:09 +0200 | <monochrom> | You can ellide all 3 extensions, especially when you also use "whee p = ... (minBound `asProxyTypeOf` p) ..." |
2021-10-22 02:26:10 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:27:04 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:28:10 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:29:04 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:29:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) |
2021-10-22 02:30:11 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:30:24 +0200 | <Inst> | bingo |
2021-10-22 02:30:27 +0200 | <Inst> | let's see how it goes |
2021-10-22 02:30:34 +0200 | <Inst> | i talked my champion influencer friend into learning haskell |
2021-10-22 02:31:04 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:31:11 +0200 | mestre | (~mestre@191.177.175.57) (Quit: Lost terminal) |
2021-10-22 02:31:29 +0200 | <Inst> | only a matter of time before i talk her into trying to bribe randumbs into learning haskell so they can get a hold of korean comics before they're officially released stateside |
2021-10-22 02:32:11 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:32:50 +0200 | <aegon> | Inst: i'm very curous how this scheme plays out. Its very hustler-ey |
2021-10-22 02:33:05 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:33:34 +0200 | <Inst> | well, main thing is that she's a bit ADHD-ish |
2021-10-22 02:33:38 +0200 | <Inst> | she's studying to be an accountant |
2021-10-22 02:33:44 +0200 | <Inst> | any way I can keep her away from Python, she's at CUNY |
2021-10-22 02:33:45 +0200 | <Inst> | ? |
2021-10-22 02:34:11 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:35:05 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:36:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-22 02:36:01 +0200 | Guest87 | (~Guest87@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-10-22 02:36:12 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:36:14 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-22 02:36:16 +0200 | <Guest87> | can I have a -fno-warn-incomplete-patterns for exactly one case of |
2021-10-22 02:36:27 +0200 | <dsal> | jackdk: Thanks. I'm not sure which version I like more. The one without the proxy is slightly easier on the user, I guess. |
2021-10-22 02:36:33 +0200 | <Guest87> | without disabling the warning in all of the file |
2021-10-22 02:36:46 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-10-22 02:36:55 +0200 | <aegon> | Guest87: not that I know of, why not complete the patterns? |
2021-10-22 02:37:05 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:37:25 +0200 | <Inst> | ah crap, this sucks |
2021-10-22 02:37:30 +0200 | <Inst> | CUNY -> City University of New York |
2021-10-22 02:37:31 +0200 | <monochrom> | Yeah, easier to write the one single missing pattern. |
2021-10-22 02:37:37 +0200 | <Inst> | they have like 20 different colleges spread throughout the city |
2021-10-22 02:37:44 +0200 | <Guest87> | because it doesn't make sense in my case, I have a oneOf parser and if I don't get the value I expect the parser failed anyway |
2021-10-22 02:37:55 +0200 | <Inst> | google it: not a single college offers a haskell-based intro course, the only Haskell course I see is graduate level |
2021-10-22 02:38:10 +0200 | <Guest87> | well I'll just use some "default" value and call it a day |
2021-10-22 02:38:12 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:38:30 +0200 | <monochrom> | a oneOf parser doesn't need incomplete patterns. |
2021-10-22 02:38:40 +0200 | <dsal> | Guest87: You can define your own error or let the compiler make one up that you may or may not recognize. |
2021-10-22 02:38:53 +0200 | <aegon> | Guest87: but without the rest of the patterns it will fail in a way you cant control, if it can fail shouldn't you handle the error case instead of undefined behavior land |
2021-10-22 02:39:06 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:39:35 +0200 | <aegon> | you wont care about it till that case happens and you don't know why the program crashes |
2021-10-22 02:39:35 +0200 | <Guest87> | monochrom: then how do I match against its result ? |
2021-10-22 02:40:12 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:40:46 +0200 | <Guest87> | aegon: yeah but *in theory" it should never crash because I matched against all the inputs in oneOf |
2021-10-22 02:40:55 +0200 | <monochrom> | oneOf s = anyChar >>= \c -> if c `elem` s then pure c else empty --- where is the incomplete pattern? |
2021-10-22 02:41:06 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:41:11 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-22 02:41:15 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 260 seconds) |
2021-10-22 02:41:43 +0200 | <monochrom> | And anyChar doesn't need incomplete pattern either, if that's what you mean. |
2021-10-22 02:42:12 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:42:35 +0200 | <Guest87> | monochrom: I apparently wasn't clear, I'm something like `s <- oneOf "abc"` and then `case s of 'a' -> ...` |
2021-10-22 02:42:56 +0200 | <Guest87> | s,something,doing something |
2021-10-22 02:43:06 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:43:17 +0200 | <monochrom> | Then it is not a lot of work to add: _ -> error "doesn't happen" |
2021-10-22 02:43:28 +0200 | <awpr> | `choice [char 'a' *> ..., char 'b' *> ..., char 'c' *> ...]` |
2021-10-22 02:44:09 +0200 | <awpr> | (or just add the error and mention "impossible" in the message) |
2021-10-22 02:44:13 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:44:31 +0200 | <monochrom> | I mean, suppose in the file there are like 20 places where you have to do that, sure, that's annoying. |
2021-10-22 02:44:37 +0200 | <monochrom> | But you said just one place. |
2021-10-22 02:44:46 +0200 | <aegon> | awpr: neat |
2021-10-22 02:44:53 +0200 | <monochrom> | In fact, if there are 20 places, I turn off the warning altogether. |
2021-10-22 02:45:03 +0200 | <monochrom> | In fact, I turn off the warning altogether, always. |
2021-10-22 02:45:06 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:45:30 +0200 | <Guest87> | thank you very much, both solutions are perfect |
2021-10-22 02:46:13 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:47:07 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:47:14 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Ping timeout: 260 seconds) |
2021-10-22 02:48:13 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:48:18 +0200 | <aegon> | :t *> |
2021-10-22 02:48:19 +0200 | <lambdabot> | error: parse error on input ‘*>’ |
2021-10-22 02:48:24 +0200 | <aegon> | :t (*>) |
2021-10-22 02:48:25 +0200 | <lambdabot> | Applicative f => f a -> f b -> f b |
2021-10-22 02:49:07 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:50:15 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:51:07 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:52:14 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:52:46 +0200 | <dsal> | I don't appreciate the judgment of warnings. |
2021-10-22 02:53:08 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:54:15 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:55:08 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:55:52 +0200 | skreli | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 02:56:05 +0200 | <skreli> | ?src ($) |
2021-10-22 02:56:06 +0200 | <lambdabot> | f $ x = f x |
2021-10-22 02:56:15 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:57:08 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:57:25 +0200 | <aegon> | ?src (&) |
2021-10-22 02:57:25 +0200 | <lambdabot> | Source not found. My pet ferret can type better than you! |
2021-10-22 02:57:32 +0200 | <geekosaur> | pity @src tells half the story there |
2021-10-22 02:57:33 +0200 | <aegon> | rude |
2021-10-22 02:57:35 +0200 | <aegon> | lol |
2021-10-22 02:58:15 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 02:58:41 +0200 | <dsal> | Yeah, there's kind of an important feature missing from that src thing. |
2021-10-22 02:59:08 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 02:59:15 +0200 | <geekosaur> | hm, intended to say less than half |
2021-10-22 02:59:27 +0200 | <geekosaur> | since the fixity's the whole point of it |
2021-10-22 02:59:49 +0200 | <dsal> | Oh. Is there another important piece missing? |
2021-10-22 03:00:16 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:00:20 +0200 | <geekosaur> | I was thinking of its response to ($) |
2021-10-22 03:00:35 +0200 | <geekosaur> | where the whole point is `infixr 9` |
2021-10-22 03:00:46 +0200 | <geekosaur> | sorry, 0 |
2021-10-22 03:00:53 +0200 | <geekosaur> | kee reversing the fixity levels |
2021-10-22 03:01:09 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:02:07 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-10-22 03:02:15 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:02:49 +0200 | <skreli> | True, but you can get that half in ghci |
2021-10-22 03:02:50 +0200 | <dsal> | % :i (&) |
2021-10-22 03:02:50 +0200 | <yahb> | dsal: (&) :: a -> (a -> b) -> b -- Defined in `Data.Function'; infixl 1 & |
2021-10-22 03:03:01 +0200 | <skreli> | :i ($) |
2021-10-22 03:03:09 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:03:17 +0200 | <skreli> | % :i ($) |
2021-10-22 03:03:17 +0200 | <yahb> | skreli: ($) :: (a -> b) -> a -> b -- Defined in `GHC.Base'; infixr 0 $ |
2021-10-22 03:04:15 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:04:19 +0200 | <geekosaur> | yes, but it'd be nice if @src reported it since what it does report is kinda useless |
2021-10-22 03:05:07 +0200 | <dsal> | Where does @src come from? |
2021-10-22 03:05:09 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:05:29 +0200 | mmhat | (~mmh@55d45d75.access.ecotel.net) (Ping timeout: 258 seconds) |
2021-10-22 03:06:08 +0200 | <geekosaur> | hardcoded database in the lambdabot repo |
2021-10-22 03:06:17 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:07:10 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:07:57 +0200 | skreli | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (WeeChat 3.3) |
2021-10-22 03:08:11 +0200 | skreli | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 03:08:16 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:09:10 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:10:17 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:10:57 +0200 | <aegon> | is there a way to turn on warnings for shadowing vars? |
2021-10-22 03:11:10 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:11:52 +0200 | skreli | Clark |
2021-10-22 03:12:14 +0200 | <geekosaur> | -Wname-shadowing ? |
2021-10-22 03:12:16 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:13:10 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:14:11 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 264 seconds) |
2021-10-22 03:14:17 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:14:36 +0200 | Clark | Hayek |
2021-10-22 03:15:11 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:15:46 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:e12b:5f61:be92:9101) (Remote host closed the connection) |
2021-10-22 03:16:02 +0200 | <aegon> | geekosaur: thanks |
2021-10-22 03:16:03 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:e12b:5f61:be92:9101) |
2021-10-22 03:16:17 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:17:11 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:18:17 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:19:11 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-10-22 03:19:11 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:19:18 +0200 | mmhat | (~mmh@55d456b5.access.ecotel.net) |
2021-10-22 03:19:45 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds) |
2021-10-22 03:20:17 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:21:11 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:22:18 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:23:12 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:23:20 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (WeeChat 3.3) |
2021-10-22 03:24:18 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:24:55 +0200 | <dsal> | :t (>=>) |
2021-10-22 03:24:56 +0200 | <lambdabot> | Monad m => (a -> m b) -> (b -> m c) -> a -> m c |
2021-10-22 03:25:12 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:25:16 +0200 | <dsal> | It's only ever occurred to me that I should use that once. But I've used it more than once. I should probably understand it at some point. |
2021-10-22 03:25:35 +0200 | <dsal> | I guess it reads pretty clearly. |
2021-10-22 03:26:18 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:27:12 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:27:46 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-10-22 03:28:19 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:28:30 +0200 | mud | (~mud@user/kadoban) |
2021-10-22 03:28:57 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-10-22 03:29:12 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:30:19 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:31:12 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:32:19 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:33:13 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:34:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:35:13 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:36:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:37:13 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:38:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:38:25 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-10-22 03:39:01 +0200 | jespada | (~jespada@2803:9800:9842:7a62:9560:3718:bb2f:f5ee) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-10-22 03:39:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:39:54 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 265 seconds) |
2021-10-22 03:40:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:40:57 +0200 | mvk | (~mvk@2607:fea8:5cc1:300::4b63) |
2021-10-22 03:41:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:41:27 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-10-22 03:42:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:43:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:43:19 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Read error: Connection reset by peer) |
2021-10-22 03:44:20 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:44:55 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-10-22 03:45:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:46:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:47:14 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:48:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:49:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:50:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:51:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:52:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:52:46 +0200 | xff0x | (~xff0x@2001:1a81:524c:400:5205:21d5:64e1:92) (Ping timeout: 252 seconds) |
2021-10-22 03:53:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:53:49 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-22 03:53:54 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-22 03:54:21 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:54:25 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:5b1b:a88f:ea9:b216) |
2021-10-22 03:54:46 +0200 | guydb89 | (~guy@98.40.140.117) |
2021-10-22 03:55:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:56:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:57:15 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 03:58:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 03:59:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:00:22 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:01:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:02:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:02:36 +0200 | mmhat | (~mmh@55d456b5.access.ecotel.net) (Ping timeout: 258 seconds) |
2021-10-22 04:03:16 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:04:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:05:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:06:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:07:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:07:17 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 04:08:23 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:09:05 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) () |
2021-10-22 04:09:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:09:19 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 04:09:35 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) () |
2021-10-22 04:09:38 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 04:10:01 +0200 | Guest87 | (~Guest87@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-10-22 04:10:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:10:24 +0200 | Hayek | (~skreli@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Client Quit) |
2021-10-22 04:10:41 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 04:11:17 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:12:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:12:25 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 04:13:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:13:18 +0200 | MQ-17J | (~MQ-17J@8.21.10.17) |
2021-10-22 04:14:09 +0200 | <sm> | how do I make an IOException, so I can throwIO it ? |
2021-10-22 04:14:24 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:15:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:16:22 +0200 | <sm> | call ioError or userError msg, I guess - IOError seems to be a synonym |
2021-10-22 04:16:25 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:16:27 +0200 | ente1 | (~ente@p200300dc5f17790014214a4427ad1af6.dip0.t-ipconnect.de) |
2021-10-22 04:16:40 +0200 | mmhat | (~mmh@55d497bf.access.ecotel.net) |
2021-10-22 04:16:57 +0200 | <ente1> | what would you use for wring a json rest api in haskell? |
2021-10-22 04:17:02 +0200 | ente1 | ente_ |
2021-10-22 04:17:04 +0200 | <monochrom> | Yeah, ioError (userError msg) |
2021-10-22 04:17:18 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:18:25 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:19:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:19:21 +0200 | <monochrom> | or s/ioError/throwIO/ if you like. Doesn't matter which. |
2021-10-22 04:19:49 +0200 | <aegon> | ente_: Scotty |
2021-10-22 04:19:50 +0200 | <Hayek> | ?src zipWith |
2021-10-22 04:19:50 +0200 | <lambdabot> | zipWith f (a:as) (b:bs) = f a b : zipWith f as bs |
2021-10-22 04:19:50 +0200 | <lambdabot> | zipWith _ _ _ = [] |
2021-10-22 04:20:18 +0200 | <aegon> | ente_: Scotty + Aeson |
2021-10-22 04:20:25 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:21:13 +0200 | <aegon> | theres a real world scotty example app but its kinda over the top in class seperation imo |
2021-10-22 04:21:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:22:23 +0200 | <aegon> | ente_: what kind of storage are you communicating with |
2021-10-22 04:22:25 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:23:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:24:27 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:25:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:26:01 +0200 | <ente_> | aegon: do you mean database? I honestly have no idea; before I just always used postgres (in conjunction with Go) |
2021-10-22 04:26:26 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:26:30 +0200 | <shapr> | I wrote a scotty app if you want to see something that works. |
2021-10-22 04:26:50 +0200 | mrianbloom | (sid350277@id-350277.ilkley.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-22 04:26:50 +0200 | mcfilib | (sid302703@user/mcfilib) (Ping timeout: 260 seconds) |
2021-10-22 04:26:50 +0200 | teehemkay | (sid14792@id-14792.lymington.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-22 04:26:50 +0200 | td_ | (~td@94.134.91.188) (Ping timeout: 260 seconds) |
2021-10-22 04:26:52 +0200 | kristjansson_ | (sid126207@id-126207.tinside.irccloud.com) (Ping timeout: 252 seconds) |
2021-10-22 04:26:52 +0200 | hubvu | (sid495858@user/hubvu) (Ping timeout: 252 seconds) |
2021-10-22 04:26:53 +0200 | <aegon> | ente_: depending on how comfy you are with haskell persistent then postgresql-simple and resource-pool are good |
2021-10-22 04:27:03 +0200 | td_ | (~td@94.134.91.188) |
2021-10-22 04:27:08 +0200 | grfn | (sid449115@id-449115.helmsley.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-22 04:27:10 +0200 | <aegon> | persistent is more black boxey than postgresql-simple |
2021-10-22 04:27:19 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:27:25 +0200 | gaze___ | (sid387101@id-387101.helmsley.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-22 04:27:27 +0200 | <ente_> | aegon: I have never used anything |
2021-10-22 04:27:44 +0200 | <ente_> | aegon: but postgresql-simple sounds ... simple |
2021-10-22 04:28:00 +0200 | rune | (sid21167@id-21167.ilkley.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-22 04:28:00 +0200 | sclv | (sid39734@haskell/developer/sclv) (Ping timeout: 260 seconds) |
2021-10-22 04:28:26 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:28:31 +0200 | econo | (uid147250@user/econo) (Ping timeout: 252 seconds) |
2021-10-22 04:28:31 +0200 | sa | (sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 252 seconds) |
2021-10-22 04:28:35 +0200 | hook54321 | (sid149355@user/hook54321) (Ping timeout: 260 seconds) |
2021-10-22 04:28:35 +0200 | Adeon | (sid418992@id-418992.lymington.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-22 04:28:35 +0200 | whez | (sid470288@id-470288.lymington.irccloud.com) (Ping timeout: 260 seconds) |
2021-10-22 04:28:40 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-22 04:28:56 +0200 | <ente_> | aegon: bruh https://imgur.com/a/kj0TE7p |
2021-10-22 04:28:59 +0200 | gaze___ | (sid387101@helmsley.irccloud.com) |
2021-10-22 04:29:03 +0200 | whez | (sid470288@lymington.irccloud.com) |
2021-10-22 04:29:03 +0200 | <aegon> | it is, i used it and was happy, now that i'm more familiar with haskell stuff though I wish i'd gone with persistent for all the magic it provides. |
2021-10-22 04:29:04 +0200 | mcfilib | (sid302703@user/mcfilib) |
2021-10-22 04:29:04 +0200 | bitmapper | (uid464869@lymington.irccloud.com) |
2021-10-22 04:29:05 +0200 | teehemkay | (sid14792@lymington.irccloud.com) |
2021-10-22 04:29:06 +0200 | grfn | (sid449115@helmsley.irccloud.com) |
2021-10-22 04:29:20 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:29:21 +0200 | <ente_> | aegon: hmm... I'll have a look at both ig |
2021-10-22 04:29:21 +0200 | rune | (sid21167@ilkley.irccloud.com) |
2021-10-22 04:29:24 +0200 | mrianbloom | (sid350277@ilkley.irccloud.com) |
2021-10-22 04:29:30 +0200 | hubvu | (sid495858@user/hubvu) |
2021-10-22 04:29:36 +0200 | econo | (uid147250@user/econo) |
2021-10-22 04:29:42 +0200 | sa | (sid1055@tinside.irccloud.com) |
2021-10-22 04:29:45 +0200 | <aegon> | if shapr has code thats public that'd be a huge time saver, i ended up with something like this https://github.com/scotty-web/scotty/blob/master/examples/reader.hs in the reader i threw a resource-pool of postgresql-simple connections |
2021-10-22 04:29:47 +0200 | kristjansson_ | (sid126207@tinside.irccloud.com) |
2021-10-22 04:30:04 +0200 | <ente_> | btw - how do you install libraries in haskell |
2021-10-22 04:30:09 +0200 | sclv | (sid39734@haskell/developer/sclv) |
2021-10-22 04:30:19 +0200 | <aegon> | and took some of the monad transformer / effect composition stuff from this https://github.com/eckyputrady/haskell-scotty-realworld-example-app |
2021-10-22 04:30:22 +0200 | <ente_> | I have seen stack and ghc-pkg but am still a bit coonfused |
2021-10-22 04:30:26 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-22 04:30:29 +0200 | hook54321 | (sid149355@user/hook54321) |
2021-10-22 04:30:38 +0200 | <ente_> | (sorry if that's a *very* noob question) |
2021-10-22 04:31:20 +0200 | Guest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-22 04:31:50 +0200 | Adeon | (sid418992@lymington.irccloud.com) |
2021-10-22 04:31:53 +0200 | <aegon> | ente_: stack or cabal i think but i'm old and don't do nix stuff. imo if your new stack is the easiest way to get rollin but i think an equal number would say cabal has caught up in features |
2021-10-22 04:32:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 04:34:10 +0200 | <shapr> | Yeah, either one is fine. |
2021-10-22 04:35:20 +0200 | <c_wraith> | Is there any fancy number theory trick to efficiently distinguish a prime from the square of a prime? |
2021-10-22 04:36:15 +0200 | <shapr> | here's something I wrote three years ago that uses spock: https://github.com/shapr/sporkle/blob/master/app/Main.hs |
2021-10-22 04:36:19 +0200 | <shapr> | it was a demo for teaching others. |
2021-10-22 04:36:59 +0200 | <shapr> | here's a different thing I wrote using Scotty: https://github.com/shapr/fermatslastmargin |
2021-10-22 04:39:16 +0200 | <byorgey> | c_wraith: I don't know of any way to do better than e.g. testing if the number is a square (by computing the square of its integer square root) or testing for primality. |
2021-10-22 04:40:12 +0200 | <aegon> | ente_: and heres the bits i can share of the scotty thing i did https://paste.tomsmeding.com/SOgubUXf |
2021-10-22 04:40:26 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 04:40:38 +0200 | td_ | (~td@94.134.91.188) (Ping timeout: 260 seconds) |
2021-10-22 04:41:28 +0200 | <byorgey> | c_wraith: hmm, I guess you can get a tiny bit of mileage out of the fact that odd squares in base 10 must end in 1, 5, or 9 |
2021-10-22 04:42:17 +0200 | <byorgey> | and maybe you can quickly rule out some other cases by considering the remainder modulo some other divisors |
2021-10-22 04:42:24 +0200 | td_ | (~td@94.134.91.189) |
2021-10-22 04:42:57 +0200 | <Inst> | yeah, here's the problem with getting drunk and BS-ing, no one will answer your haskell questions |
2021-10-22 04:43:03 +0200 | <Inst> | okay, I have something weird |
2021-10-22 04:43:15 +0200 | <Inst> | or maybe not |
2021-10-22 04:43:54 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds) |
2021-10-22 04:43:59 +0200 | <Inst> | yup, debugged it, it's weird |
2021-10-22 04:44:42 +0200 | <Inst> | i tried a simple recursive function, it's probably a syntax error on VSCode GHCi somewhere |
2021-10-22 04:44:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-22 04:45:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-10-22 04:47:17 +0200 | <c_wraith> | byorgey: hmm. all odd squares have remainder 1 mod 8. That's probably good enough of a first pass that testing the integer square root is ok as the next pass. |
2021-10-22 04:48:13 +0200 | <byorgey> | c_wraith: ah, nice |
2021-10-22 04:48:49 +0200 | <byorgey> | and you don't even have to do any division, just look at the last 3 bits |
2021-10-22 04:48:53 +0200 | <c_wraith> | yeah |
2021-10-22 04:49:08 +0200 | <byorgey> | also, how big are these numbers? |
2021-10-22 04:49:32 +0200 | <c_wraith> | in all honesty, probably small enough that just doing a floating point square root would work. But I don't want to count on it |
2021-10-22 04:50:04 +0200 | <byorgey> | fair enough |
2021-10-22 04:51:07 +0200 | mmhat | (~mmh@55d497bf.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-10-22 04:54:55 +0200 | infinity0 | (~infinity0@occupy.ecodis.net) (Remote host closed the connection) |
2021-10-22 04:55:02 +0200 | <aegon> | ente_: if this is like your first whack at haskell monad transformers were super scary for me and every web framework has em at the base, this is long but good https://www.fpcomplete.com/haskell/tutorial/monad-transformers/ |
2021-10-22 04:55:25 +0200 | MQ-17J | (~MQ-17J@8.21.10.17) (Ping timeout: 260 seconds) |
2021-10-22 04:56:24 +0200 | <dsal> | I'm fairly anti-persistent after having gone through that debate recently. |
2021-10-22 04:56:33 +0200 | <aegon> | ente_: and i think the thing that really tripped me up is that the runReaderT etc create the context |
2021-10-22 04:56:53 +0200 | <dsal> | It's probably cool if you don't care about databases, but there were too many things I couldn't figure out how to do in persistent even before I got to the stuff it wouldn't do at all. |
2021-10-22 04:57:08 +0200 | <aegon> | dsal: yeah i had to ad postGIS types to postgresql-simple and i don't think i would have been able to figure out how to do that with all the complexitiy of persistent |
2021-10-22 04:57:15 +0200 | <aegon> | *add |
2021-10-22 04:57:16 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-22 04:57:28 +0200 | <dsal> | Right. enums and postgis both look nightmarish. |
2021-10-22 04:58:12 +0200 | <dsal> | PG enums are why I was asking about proxies/type applications earlier. I realized I've never actually looked at how type applications worked, just sort of cargo culted them around. Made life easier. |
2021-10-22 04:58:36 +0200 | <dsal> | Now I have a test thing that's like `pgEnumsMatch @HaskellType "postgres_type"` and it does all the fancy tests. |
2021-10-22 04:59:07 +0200 | infinity0 | (~infinity0@occupy.ecodis.net) |
2021-10-22 05:00:14 +0200 | <aegon> | dsal: did any blog post or docs get you to an aha moment? I used type applications in HaskTorch's gradually typed stuff and thought I knew them, then went to use em in a new project and chased my tail around for a day before reforming the problem to not need them |
2021-10-22 05:01:01 +0200 | <aegon> | (type applications that is) |
2021-10-22 05:01:22 +0200 | <dsal> | I just read this: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_applications.html |
2021-10-22 05:01:34 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 05:02:37 +0200 | <dsal> | I usually don't need them, but my problem here was basically the above. I want to test that of this haskell type occupants are the same as the postgres enum values. I'm going to have a few of these, so I just wanted to do the thing once. |
2021-10-22 05:05:22 +0200 | InstX1 | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds) |
2021-10-22 05:06:15 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2021-10-22 05:06:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-22 05:06:47 +0200 | <dsal> | Turns out reading documentation can really shave some time off of understanding things. I also hadn't looked up AllowAmbiguousTypes. That sounds scary, but it's for exactly this type of thing. |
2021-10-22 05:07:30 +0200 | <awpr> | yeah, a lot of GHC extensions suffer from people being needlessly scared of them |
2021-10-22 05:07:47 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-22 05:07:47 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-22 05:07:47 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-22 05:08:26 +0200 | <dsal> | It's kind of a scary sounding name. |
2021-10-22 05:08:57 +0200 | <aegon> | for whatever reason it seems impossible for me to find the ghc users guide when i want it. I'll get tons of monday morning haskell / fp complete posts but never a link to the actual docs. need to up my google / duckduckgo game |
2021-10-22 05:09:15 +0200 | <awpr> | exactly, that's what I mean. `UndecidableInstances` is also really scary sounding, but it just means to turn off the guard rails that stop you from writing infinite loops in your types |
2021-10-22 05:10:29 +0200 | <dsal> | Heh, I just went off to read about UndecidableInstances and came back and you were talking about it. |
2021-10-22 05:11:23 +0200 | <aegon> | i thought there was a vote around default enabling some extensions |
2021-10-22 05:11:39 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-10-22 05:11:42 +0200 | <dsal> | It's really helpful to read these things, but I like to wait until I'm maximally dumb. I remember reading about `FunctionalDependencies` and kind of glazed over a bit and couldn't imagine a case where I needed that. A couple of days later… |
2021-10-22 05:14:40 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds) |
2021-10-22 05:15:58 +0200 | mbuf | (~Shakthi@136.185.83.238) |
2021-10-22 05:18:54 +0200 | guydb89 | (~guy@98.40.140.117) (Ping timeout: 260 seconds) |
2021-10-22 05:18:59 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 264 seconds) |
2021-10-22 05:19:16 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 258 seconds) |
2021-10-22 05:19:24 +0200 | cheater | (~Username@user/cheater) |
2021-10-22 05:24:25 +0200 | <davean> | aegon: How about IncoherentInstances? |
2021-10-22 05:35:37 +0200 | dut | (~dut@user/dut) |
2021-10-22 05:37:16 +0200 | <Axman6> | @djinn (b -> c) -> (d -> e -> b) -> d -> e -> c |
2021-10-22 05:37:16 +0200 | <lambdabot> | f a b c d = a (b c d) |
2021-10-22 05:42:36 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 05:44:17 +0200 | dut | (~dut@user/dut) (Quit: Leaving) |
2021-10-22 05:45:06 +0200 | <aegon> | davean: not familiar with it, it seems Incoherent |
2021-10-22 05:50:47 +0200 | <davean> | aegon: you'll take the instance we give you, and don't expect us to be consistent about it! |
2021-10-22 05:51:23 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 05:54:54 +0200 | <davean> | aegon: never wanted to instances of Ord for one type? |
2021-10-22 05:56:27 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-22 05:59:35 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 06:00:42 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-10-22 06:04:48 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) |
2021-10-22 06:04:56 +0200 | <aegon> | how would it choose? that sounds like a recipe for disaster |
2021-10-22 06:06:47 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-10-22 06:07:57 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) (Client Quit) |
2021-10-22 06:08:57 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) |
2021-10-22 06:09:08 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-10-22 06:15:24 +0200 | <davean> | aegon: It would choose whichever it wanted at any given moment of course |
2021-10-22 06:16:10 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) (Quit: WeeChat 3.2) |
2021-10-22 06:17:10 +0200 | <davean> | Look, we promise you'll only be given one of them in a given case - isn't that good enough for you? |
2021-10-22 06:20:02 +0200 | <aegon> | well, the compiler knows best, i'll run with it |
2021-10-22 06:27:39 +0200 | <davean> | aegon: its the scariest language extension I think a sane programemr will have to use at some point |
2021-10-22 06:28:07 +0200 | <davean> | or put another way, that its the scariest langauge extension that there might not be a better way to do it |
2021-10-22 06:29:30 +0200 | bitmapper | (uid464869@lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-22 06:34:20 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-10-22 06:36:34 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.125) |
2021-10-22 06:39:23 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 258 seconds) |
2021-10-22 06:40:31 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 252 seconds) |
2021-10-22 06:41:05 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-10-22 06:41:29 +0200 | <aegon> | davean: looks like it was changed to OverlappingInstances |
2021-10-22 06:46:52 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-22 06:48:42 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Read error: Connection reset by peer) |
2021-10-22 06:48:55 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-22 06:51:12 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-10-22 06:53:10 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-22 06:53:11 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-10-22 06:56:19 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-10-22 06:59:01 +0200 | <davean> | aegon: no - there was a change but it was to make it specific to a given instance istead of a general language extension |
2021-10-22 07:00:59 +0200 | mvk | (~mvk@2607:fea8:5cc1:300::4b63) (Ping timeout: 264 seconds) |
2021-10-22 07:02:24 +0200 | schuelermine | (~anselmsch@user/schuelermine) |
2021-10-22 07:02:25 +0200 | <davean> | aegon: and incoherent is far worse than overlapping |
2021-10-22 07:02:38 +0200 | <schuelermine> | what even is the use for -XIncoherentInstances?! |
2021-10-22 07:02:42 +0200 | <davean> | See https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/instances.html#overlapping-instances |
2021-10-22 07:02:44 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 07:03:36 +0200 | <davean> | schuelermine: If you have to ask, I don't want to put ideas into your head ... |
2021-10-22 07:04:39 +0200 | <schuelermine> | I feel like the advantages of coherence could be done by simply allowing types to carry instances, i.e. a dumbed down dependent typing system, then type classes could be handled as ?implicit parameters |
2021-10-22 07:04:52 +0200 | <aegon> | overlapping sounds like sfinae |
2021-10-22 07:04:56 +0200 | <schuelermine> | I guess ‘simply’ is a big word here |
2021-10-22 07:05:06 +0200 | <schuelermine> | aegon: what the hell do you mean by that? |
2021-10-22 07:05:07 +0200 | <dsal> | -XSurpriseInstances |
2021-10-22 07:05:56 +0200 | <aegon> | whoa, that was a strong reaction :P I mean in template substitution where in c++ it will choose the most specific match |
2021-10-22 07:06:04 +0200 | <aegon> | https://en.cppreference.com/w/cpp/language/sfinae |
2021-10-22 07:06:11 +0200 | <schuelermine> | aegon: the reaction was not meant negatively, I was merely confused |
2021-10-22 07:06:19 +0200 | <schuelermine> | sorry if that came accross the wrong way |
2021-10-22 07:06:19 +0200 | <davean> | aegon: most specific match is what overlapping instances does |
2021-10-22 07:06:42 +0200 | <aegon> | oh sorry i mistook it, i wasn't offended just poking fun |
2021-10-22 07:07:08 +0200 | <c_wraith> | however... sometimes the most specific match can become... hidden. |
2021-10-22 07:07:13 +0200 | <aegon> | and most specific isn't really related to sfinae, :X i just heard it in the same video from cpp weekly where he was going over function resolution |
2021-10-22 07:07:28 +0200 | <davean> | c_wraith: yah, I mean it doesn't work in a sane manner |
2021-10-22 07:07:35 +0200 | <davean> | there can be ... incoherence |
2021-10-22 07:07:44 +0200 | <schuelermine> | I guess people find “what the hell” strong? idk, but I think I’ve had one other instance of people reacting negatively to that… |
2021-10-22 07:07:46 +0200 | <davean> | but its not the same as incoherent instances |
2021-10-22 07:07:53 +0200 | <aegon> | c_wraith: so ghc could stop searching for a "most specific" in some cases? |
2021-10-22 07:08:11 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-22 07:08:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-10-22 07:09:14 +0200 | <c_wraith> | aegon: it sometimes can't see that there's something more specific due to calling patterns. I don't actually know how to trigger the behavior, I just know I've seen it before. |
2021-10-22 07:09:23 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 07:09:53 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-22 07:09:53 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-22 07:09:53 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-22 07:09:56 +0200 | <c_wraith> | aegon: like when working in a polymorphic context, sometimes the instance selection gets deferred to a location that no longer has the necessary information |
2021-10-22 07:10:54 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 07:12:51 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 07:13:40 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-22 07:14:03 +0200 | <davean> | aegon: out of curiosity what made you think incoherent instances was replaced by overlapping? |
2021-10-22 07:14:10 +0200 | <davean> | That might be a documentation weakness somewhere? |
2021-10-22 07:14:38 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-22 07:14:47 +0200 | emf_ | (~emf@2620:10d:c090:400::5:70ff) (Ping timeout: 264 seconds) |
2021-10-22 07:14:51 +0200 | <aegon> | no its a bad reading by me, I read the section title as Overlapping Instances then processed taht IncoherentInstances was a "deprecated extension" so i assumed it was replaced |
2021-10-22 07:15:06 +0200 | <aegon> | reading the whole section clarifies though, they both exist but they are more specific now / tied to an instance |
2021-10-22 07:15:18 +0200 | <aegon> | i'm still digging into it, it does sound scary |
2021-10-22 07:15:26 +0200 | <aegon> | i cant think of a time I'd want the Incoherent behavior |
2021-10-22 07:17:42 +0200 | <davean> | Its not the behavior you'd want |
2021-10-22 07:17:51 +0200 | <davean> | Its that its the only way you could encode what you *did* want in Haskell |
2021-10-22 07:17:57 +0200 | <davean> | Its the removal of the restriction |
2021-10-22 07:20:40 +0200 | schuelermine | (~anselmsch@user/schuelermine) (Ping timeout: 252 seconds) |
2021-10-22 07:21:24 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-22 07:27:21 +0200 | <aegon> | i see, hmm, well, maybe not. I don't see what you'd have to encode this way. It seems to add more flexibility for instance resolution, i've used FlexibleContexts before but I don't see what would *require* Incoherent instances, is it a side effect of the intermidiate stage thats needed by the compiler before it determines the overlapping resolution? |
2021-10-22 07:29:26 +0200 | <c_wraith> | Incoherent instances are for when you have overlapping instances where options are tied in specificity |
2021-10-22 07:29:37 +0200 | <c_wraith> | That is in no way required by FlexibleContexts |
2021-10-22 07:30:21 +0200 | <c_wraith> | The only way incoherent instances would get involved is if you have *multiple* instances that differ only on constraints, or something like that |
2021-10-22 07:33:41 +0200 | <aegon> | is there a sane example of where you need that? I'm trying to contrive up something and coming up blank |
2021-10-22 07:34:15 +0200 | <aegon> | if i'm understanding correctly your talking aobut something like instanse Show (Int, b) and instance Show (b, Int) |
2021-10-22 07:35:07 +0200 | Guest27 | (~Guest27@2601:281:d480:2ce0:28de:914f:fac6:10b7) |
2021-10-22 07:35:25 +0200 | <c_wraith> | that's an example, yes |
2021-10-22 07:35:37 +0200 | <c_wraith> | there's no most-specific option to match (Int, Int) |
2021-10-22 07:36:44 +0200 | <aegon> | but like, why would a lib dev want such a thing :? |
2021-10-22 07:37:30 +0200 | <aegon> | or i guess need to be able to allow for such a thing |
2021-10-22 07:37:30 +0200 | mei | (~mei@user/mei) |
2021-10-22 07:37:35 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 264 seconds) |
2021-10-22 07:38:36 +0200 | <c_wraith> | The cases I've seen where it actually is *helpful* is when you happen to know that for whatever reason, every instance it might select is equivalent |
2021-10-22 07:39:08 +0200 | <c_wraith> | And you have other requirements that prevent expressing it as a single constraint |
2021-10-22 07:39:27 +0200 | <c_wraith> | It's not a common thing. Most people never need it. |
2021-10-22 07:45:30 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.125) (Quit: mikoto-chan) |
2021-10-22 07:45:57 +0200 | <aegon> | theres some cool info in the users guide i glossed over. this stuf is neat. I've kinda just accepted FlexibleInstances, FlexibleContexts etc as hand wavy things some libs need in order to be used |
2021-10-22 07:49:54 +0200 | Guest27 | (~Guest27@2601:281:d480:2ce0:28de:914f:fac6:10b7) (Ping timeout: 256 seconds) |
2021-10-22 07:58:18 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-10-22 08:05:00 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 260 seconds) |
2021-10-22 08:05:23 +0200 | <davean> | aegon: more people should RTFM |
2021-10-22 08:06:30 +0200 | <davean> | aegon: Honestly it wouldn't take that long to get a basic idea of every extension by reading the manual - if you're bored some day ... |
2021-10-22 08:06:57 +0200 | <aegon> | i'll definitely do it, for some reason i read all of real world haskell and learn you a haskell then skimped on the manual |
2021-10-22 08:07:00 +0200 | <aegon> | derp |
2021-10-22 08:07:16 +0200 | <aegon> | i gotta read the inside of my eye lids for a couple hours though :) |
2021-10-22 08:07:44 +0200 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-10-22 08:14:05 +0200 | benin | (~benin@183.82.207.116) |
2021-10-22 08:15:36 +0200 | chele | (~chele@user/chele) |
2021-10-22 08:18:42 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 08:21:02 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:70bb:31e2:9b65:43) |
2021-10-22 08:22:27 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-10-22 08:23:05 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 260 seconds) |
2021-10-22 08:27:35 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-10-22 08:30:38 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-10-22 08:31:01 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@128-71-225-36.broadband.corbina.ru) |
2021-10-22 08:31:22 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@128-71-225-36.broadband.corbina.ru) (Read error: Connection reset by peer) |
2021-10-22 08:33:12 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-22 08:34:02 +0200 | connrs | (~connrs@conners.plus.com) (Read error: Connection reset by peer) |
2021-10-22 08:34:20 +0200 | connrs | (~connrs@conners.plus.com) |
2021-10-22 08:34:35 +0200 | timCF | (~timCF@m91-129-111-87.cust.tele2.ee) (Ping timeout: 264 seconds) |
2021-10-22 08:42:06 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 08:44:47 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 264 seconds) |
2021-10-22 08:45:11 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Quit: Reconnecting) |
2021-10-22 08:45:34 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-22 08:46:35 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-10-22 08:48:22 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-10-22 08:49:01 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-22 08:52:21 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-10-22 08:53:04 +0200 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds) |
2021-10-22 08:54:00 +0200 | pfurla | (~pfurla@216.151.180.27) |
2021-10-22 09:00:50 +0200 | hueso_ | (~root@user/hueso) (Ping timeout: 246 seconds) |
2021-10-22 09:01:26 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-10-22 09:06:39 +0200 | Guest27 | (~Guest27@2601:281:d480:2ce0:28de:914f:fac6:10b7) |
2021-10-22 09:07:17 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 09:08:11 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:e12b:5f61:be92:9101) (Ping timeout: 264 seconds) |
2021-10-22 09:08:16 +0200 | michalz | (~michalz@185.246.204.41) |
2021-10-22 09:11:41 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 09:12:07 +0200 | ubert | (~Thunderbi@178.165.203.151.wireless.dyn.drei.com) |
2021-10-22 09:13:37 +0200 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) (Quit: Leaving) |
2021-10-22 09:14:29 +0200 | vpan | (~0@212.117.1.172) |
2021-10-22 09:15:52 +0200 | hueso | (~root@user/hueso) |
2021-10-22 09:16:10 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 258 seconds) |
2021-10-22 09:19:08 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-10-22 09:20:26 +0200 | Guest27 | (~Guest27@2601:281:d480:2ce0:28de:914f:fac6:10b7) (Quit: Client closed) |
2021-10-22 09:20:50 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:5b1b:a88f:ea9:b216) (Ping timeout: 260 seconds) |
2021-10-22 09:22:20 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-10-22 09:24:40 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-10-22 09:25:03 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-10-22 09:25:03 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-10-22 09:27:28 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-22 09:31:17 +0200 | alx741 | (~alx741@186.178.108.23) (Quit: alx741) |
2021-10-22 09:33:07 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:5b1b:a88f:ea9:b216) |
2021-10-22 09:34:43 +0200 | <dminuoso> | 08:54:08 davean | [06:05:23] aegon: more people should RTFM |
2021-10-22 09:34:46 +0200 | <dminuoso> | This channel would be so quiet. |
2021-10-22 09:34:49 +0200 | <dminuoso> | :> |
2021-10-22 09:35:17 +0200 | <dminuoso> | Something like half questions in here are covered in GHC or cabal manuals.. |
2021-10-22 09:37:25 +0200 | <Profpatsch> | Just because it’s written down doesn’t mean it’s discoverable |
2021-10-22 09:37:52 +0200 | <davean> | Profpatsch: I mean its basicly the definition of discoverable to be in the manual |
2021-10-22 09:38:06 +0200 | <davean> | If you haven't read the manual for tools you use, are you even trying to understand? |
2021-10-22 09:39:53 +0200 | <tomsmeding> | TBH the ghc user's guide amounts to a huge amount of pages. Now actually the user's guide is actually structured quite well (and indexed in search engines) so you can actually find what you want, but in general "it's in the manual = discoverable" is untrue: "it's in a 300 page scanned PDF" is _not_ discoverable. |
2021-10-22 09:40:27 +0200 | <davean> | the GHC manual was never in a PDF during the time I've been in Haskell which is over a decade |
2021-10-22 09:40:42 +0200 | <davean> | but even then - don't you read the manuals of your tools when you start using them? |
2021-10-22 09:40:50 +0200 | <tomsmeding> | not if they're hundreds of pages long, no |
2021-10-22 09:41:03 +0200 | <Rembane_> | Knowing what to google to find the right thing in the manual is a skill in itself, a skill many here have, but probably not the people who ask the RTM-worthy questions. |
2021-10-22 09:41:05 +0200 | <tomsmeding> | but I agree the GHC manual has discoverable materual :) |
2021-10-22 09:41:08 +0200 | <tomsmeding> | *material |
2021-10-22 09:41:09 +0200 | <davean> | The GHC manual was a tiny fraction of what I read getting started with Haskell |
2021-10-22 09:41:12 +0200 | <tomsmeding> | Was just responding to the general remark |
2021-10-22 09:41:51 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-22 09:42:00 +0200 | <tomsmeding> | maybe I'm one of those stupid young people that can't bother to spend days reading a manual before getting started, but no, I don't :p |
2021-10-22 09:42:20 +0200 | son0p | (~ff@181.136.122.143) (Read error: Connection reset by peer) |
2021-10-22 09:42:23 +0200 | <davean> | tomsmeding: Saved me a lot more than the day it took to read - and it was an interesting day |
2021-10-22 09:42:28 +0200 | <davean> | a day worth it all on its own |
2021-10-22 09:43:01 +0200 | <davean> | Honestly a large portion of the problems I've had with GHC were not keeping up |
2021-10-22 09:43:13 +0200 | <Profpatsch> | davean: are you saying you have read the manual of every tool you use? |
2021-10-22 09:43:18 +0200 | <Profpatsch> | *doubt* |
2021-10-22 09:43:22 +0200 | cfricke | (~cfricke@user/cfricke) |
2021-10-22 09:43:25 +0200 | <[exa]> | #haskell the best hackage indexing service |
2021-10-22 09:43:30 +0200 | <davean> | Profpatsch: I read the manual for every tool thats a major part of what I do |
2021-10-22 09:43:43 +0200 | <davean> | I mean the gcc one was pretty bad |
2021-10-22 09:43:59 +0200 | <Profpatsch> | I mean, good on you |
2021-10-22 09:44:15 +0200 | <dminuoso> | tomsmeding: Honestly I think over the past decades, the velocity of things have trained people to refuse consulting or reading long documents. |
2021-10-22 09:44:21 +0200 | <Profpatsch> | But like, can’t expect everybody to do that (esp if neurodivergent) |
2021-10-22 09:44:22 +0200 | <dminuoso> | Webpages like stackoverflow did great damage in that regard. |
2021-10-22 09:44:35 +0200 | <Profpatsch> | It’s called lazy evaluation |
2021-10-22 09:44:45 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-10-22 09:44:57 +0200 | <Profpatsch> | Plus, UX research has somewhat progressed |
2021-10-22 09:45:10 +0200 | <davean> | Profpatsch: UX has nothing to do with understanding |
2021-10-22 09:45:14 +0200 | <davean> | UX can't think for you |
2021-10-22 09:45:18 +0200 | <Profpatsch> | (although a single greppable html page is somehow still the pinnacle of discoverability …) |
2021-10-22 09:45:47 +0200 | <davean> | You need a library of knowlege to build on |
2021-10-22 09:46:00 +0200 | <Rembane_> | davean: Have you ever considered making a podcast where you review manuals? |
2021-10-22 09:46:01 +0200 | <davean> | if you don't have the basic ideas you can't think the thoughts |
2021-10-22 09:46:23 +0200 | <Profpatsch> | davean: I have the library of all possible books, and I tend to lazily recurse into what seems useful at the time |
2021-10-22 09:46:31 +0200 | <davean> | Rembane_: People would get bored on episode 30 of "I wonder why people wanted this" about the emacs manual |
2021-10-22 09:46:36 +0200 | <Profpatsch> | https://libgen.is/ |
2021-10-22 09:46:55 +0200 | <Rembane_> | davean: I would listen! So you would have an audience of > 0 :D |
2021-10-22 09:47:32 +0200 | <davean> | (actually the emacs manual wasn't that long, its just cut up into tiny pieces) |
2021-10-22 09:47:41 +0200 | <davean> | (Theres a lot of non-manual stuff) |
2021-10-22 09:47:47 +0200 | <Profpatsch> | imho the change in how people consume information hasn’t so much to do with stackoverflow |
2021-10-22 09:47:51 +0200 | <Profpatsch> | as it has with the hyperlink |
2021-10-22 09:48:06 +0200 | <Profpatsch> | You don’t *have* to study Tomes front-to-back, so people tend not to |
2021-10-22 09:48:06 +0200 | <davean> | BTW Profpatsch I use to act like you do |
2021-10-22 09:48:28 +0200 | <davean> | But it was after a decade of slowly realizing it had caused a rotten foundation and I was fundimentally worse at the things I did for it that I changed |
2021-10-22 09:48:38 +0200 | <davean> | it was a very slow change |
2021-10-22 09:48:59 +0200 | <davean> | Of realizing having expediently answered a question didn't teach me the principals behind it |
2021-10-22 09:51:17 +0200 | <davean> | Well sorta. I mean thats more broad |
2021-10-22 09:51:44 +0200 | <davean> | eh, the details and nuance are a long discussion and I want to go to bed |
2021-10-22 09:52:04 +0200 | <tomsmeding> | just getting started with the day :) |
2021-10-22 09:53:11 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Remote host closed the connection) |
2021-10-22 09:53:26 +0200 | <maerwald> | the best thing is writing tutorials for others, because then you see all the things you can't explain |
2021-10-22 09:53:31 +0200 | <Profpatsch> | davean: I feel like it’s a complementary approach |
2021-10-22 09:53:48 +0200 | <Profpatsch> | e.g. having to study the whole manual before writing your first line of code is not a good approach |
2021-10-22 09:54:16 +0200 | <Profpatsch> | cause you usually want to evaluate quickly in the beginning before you invest a bunch of time |
2021-10-22 09:54:46 +0200 | <Profpatsch> | but once you decide it’s the way to go and have some initial experience, it makes sense to sit your ass down and actually study the manual |
2021-10-22 09:54:46 +0200 | <maerwald> | depends on the person |
2021-10-22 09:54:49 +0200 | <davean> | more than slightly but less than significantly agree |
2021-10-22 09:55:12 +0200 | <tomsmeding> | ("sort of"?) |
2021-10-22 09:55:35 +0200 | <Profpatsch> | with nix I agree it would have been best to just study the manual |
2021-10-22 09:55:52 +0200 | <maerwald> | there's no right way to learn nix, because it's not a structured ecosystem |
2021-10-22 09:55:59 +0200 | <Profpatsch> | Would have saved me a lot of wtf and being annoyed at how arbitrary it all seemed |
2021-10-22 09:56:10 +0200 | <maerwald> | well, it is arbitrary, that's the point... |
2021-10-22 09:56:18 +0200 | <maerwald> | it grew into all directions |
2021-10-22 09:56:21 +0200 | <Profpatsch> | maerwald: the manuals are rather good, but also poorly structured so it’s hard to see why you want to read them and in what order |
2021-10-22 09:56:23 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-10-22 09:56:32 +0200 | <davean> | maerwald: I think its the truth, and I try not to accept its the point |
2021-10-22 09:56:34 +0200 | <Profpatsch> | But that’s a UX thing again |
2021-10-22 09:56:40 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-10-22 09:56:49 +0200 | <Profpatsch> | GHC also has a User manual and the Haskell standard, and multiple other things |
2021-10-22 09:57:11 +0200 | <Profpatsch> | e.g. knowing the GHC runtime flags is not super useful when you are learning how to HAskell |
2021-10-22 09:57:23 +0200 | <Profpatsch> | esp since you are going to forget them as soon as yo uread them |
2021-10-22 09:57:43 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-10-22 09:58:54 +0200 | <davean> | I'd thought I forgot them |
2021-10-22 09:59:02 +0200 | jumper149 | (~jumper149@80.240.31.34) |
2021-10-22 09:59:03 +0200 | <davean> | until years later I had a problem and had an idea how to fix it |
2021-10-22 09:59:51 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 10:00:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 10:00:57 +0200 | <davean> | anyway this would be a fun seriously long off topic discussion |
2021-10-22 10:01:03 +0200 | <davean> | but not now and not in #haskell |
2021-10-22 10:03:28 +0200 | <maerwald> | you only need remember one: -fspecialise-aggressively |
2021-10-22 10:03:30 +0200 | <maerwald> | :D |
2021-10-22 10:03:39 +0200 | <davean> | maerwald: :< |
2021-10-22 10:04:35 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 260 seconds) |
2021-10-22 10:04:40 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
2021-10-22 10:05:00 +0200 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-10-22 10:07:22 +0200 | <davean> | maerwald: So I take it your code doesn't have a lot of loops? |
2021-10-22 10:07:35 +0200 | <davean> | (specificly that reuse class methods in multiple points in the loop) |
2021-10-22 10:07:58 +0200 | <maerwald> | it safed my ass yesterday, optimizing streamly code |
2021-10-22 10:08:24 +0200 | <davean> | Interesting - why wasn't the relivent functions marked INLINABLE? |
2021-10-22 10:08:34 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-22 10:09:27 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:5b1b:a88f:ea9:b216) (Ping timeout: 258 seconds) |
2021-10-22 10:10:18 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:b3ce:25bf:d052:b94e) |
2021-10-22 10:14:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-22 10:16:29 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-22 10:16:55 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
2021-10-22 10:17:54 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-22 10:18:35 +0200 | MoC | (~moc@user/moc) |
2021-10-22 10:25:46 +0200 | <dminuoso> | Im using servant to accept a multi-form request, my wai application has a simple logger middleware around it. When I do simple `curl https://url -XPOST -F "data=@./sample.csv"` the logger middleware properly logs some `Content-Disposition: form-data; name="data"; filename="sample.csv"` followed by the blob of that file |
2021-10-22 10:25:57 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb932154b917507392a6.dip0.t-ipconnect.de) |
2021-10-22 10:26:14 +0200 | <dminuoso> | However, when our client sends a request to that same endpoint, the servant multiform part works properly, but the logger middleware acts as if this was no multiform post without any content disposition. |
2021-10-22 10:26:50 +0200 | <dminuoso> | The request happens too rarely that I can simply sniff it the next time |
2021-10-22 10:26:59 +0200 | <maerwald> | davean: there's INLINE everywhere, but if I remove this flag, performance drops from 7.5s to 8.5 |
2021-10-22 10:27:52 +0200 | <dminuoso> | Sorry I should have elaborated, servant expects `MultipartForm Mem (MultipartData Mem)` |
2021-10-22 10:27:56 +0200 | <c_wraith> | dminuoso: the middleware would need to read the body to see that info. If something else has already read it, it would only see an empty body |
2021-10-22 10:28:05 +0200 | <c_wraith> | mutability! |
2021-10-22 10:29:32 +0200 | ub | (~Thunderbi@178.165.203.151.wireless.dyn.drei.com) |
2021-10-22 10:29:53 +0200 | <dminuoso> | c_wraith: Sure, but that would apply to my request as well as theirs. |
2021-10-22 10:29:55 +0200 | <dminuoso> | It's the same server |
2021-10-22 10:30:10 +0200 | <dminuoso> | Thing Im wondering is, are there multiple styles of multipart form-data that I dont know about? |
2021-10-22 10:30:38 +0200 | <c_wraith> | oh, I missed that. I see. |
2021-10-22 10:31:05 +0200 | <dminuoso> | The confusing thing is, to the logger this is just http and headers. |
2021-10-22 10:31:16 +0200 | jgeerds | (~jgeerds@55d40de2.access.ecotel.net) |
2021-10-22 10:31:31 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:b3ce:25bf:d052:b94e) (Ping timeout: 252 seconds) |
2021-10-22 10:31:32 +0200 | <c_wraith> | is it logging request size? |
2021-10-22 10:32:31 +0200 | xff0x | (~xff0x@2001:1a81:5287:aa00:fcfc:7af3:e2b:ab16) |
2021-10-22 10:32:51 +0200 | <dminuoso> | Ohhh hold on. |
2021-10-22 10:33:05 +0200 | <dminuoso> | c_wraith: I think you gave me an idea. |
2021-10-22 10:34:23 +0200 | <dminuoso> | c_wraith: Perfect thanks! The logger middleware in wai-extras seems to only log request bodies if they are smaller than 2KiB. |
2021-10-22 10:34:42 +0200 | <c_wraith> | huh. that makes sense, but I wouldn't have thought of it. Nice find. |
2021-10-22 10:34:50 +0200 | <tomsmeding> | that's really obscure |
2021-10-22 10:35:06 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:709e:32b8:8140:3ed0) |
2021-10-22 10:35:12 +0200 | <tomsmeding> | oh _smaller_. I guess that makes sense in a way |
2021-10-22 10:35:27 +0200 | <c_wraith> | it definitely makes sense. it has to buffer anything it reads |
2021-10-22 10:35:30 +0200 | <dminuoso> | It should be configurable. |
2021-10-22 10:35:40 +0200 | <dminuoso> | I dont mind it defaulting to that limit, but I should be able to say "log everything" |
2021-10-22 10:35:45 +0200 | <c_wraith> | and there's no limit on upload size. |
2021-10-22 10:35:51 +0200 | <dminuoso> | Mmm |
2021-10-22 10:35:59 +0200 | <dminuoso> | Well, at least I wanna be able to raise the threshold to something reasonable. |
2021-10-22 10:36:00 +0200 | <c_wraith> | You really don't want someone to be able to make your server buffer multi-gigabyte files |
2021-10-22 10:36:17 +0200 | <dminuoso> | c_wraith: You have to authenticate to that API anyway |
2021-10-22 10:36:17 +0200 | <c_wraith> | yeah, even 100k wouldn't be an issue |
2021-10-22 10:36:37 +0200 | <dminuoso> | I think this is a small fix to wai-extras |
2021-10-22 10:36:42 +0200 | <c_wraith> | I'm less worried about attacks and more worried about bugs. :) |
2021-10-22 10:36:44 +0200 | <dminuoso> | For now Ill simply log the data in the servant handler instead. |
2021-10-22 10:37:12 +0200 | <dminuoso> | c_wraith: This is an API for just a single customer. If they DoS is it, it's their service that is degraded. |
2021-10-22 10:37:20 +0200 | <dminuoso> | It's very simple for us to point fingers then. |
2021-10-22 10:37:31 +0200 | <c_wraith> | heh. With a single user, ok. Once you get a second user.... |
2021-10-22 10:37:37 +0200 | <dminuoso> | We wont |
2021-10-22 10:37:42 +0200 | <dminuoso> | This is a dedicated API that only this customer will ever see. |
2021-10-22 10:37:53 +0200 | <c_wraith> | But in any case, you can certainly make it bigger than 2k without risk |
2021-10-22 10:38:25 +0200 | <dminuoso> | Yeah, I can safely just add another field to https://hackage.haskell.org/package/wai-extra-3.1.7/docs/Network-Wai-Middleware-RequestLogger.html… |
2021-10-22 10:38:40 +0200 | <dminuoso> | Some `Maybe Int` should be fine |
2021-10-22 10:40:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:b5c0:69fb:2ebc:745e) (Remote host closed the connection) |
2021-10-22 10:41:36 +0200 | desantra | (~skykanin@user/skykanin) |
2021-10-22 10:42:25 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-22 10:42:41 +0200 | desantra | (~skykanin@user/skykanin) (Client Quit) |
2021-10-22 10:45:44 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 10:46:06 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb93c8c758eae23fe552.dip0.t-ipconnect.de) |
2021-10-22 10:47:10 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-10-22 10:48:02 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-10-22 10:49:31 +0200 | nehsou^ | (~nehsou@wsip-68-227-92-38.mc.at.cox.net) |
2021-10-22 10:49:42 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb932154b917507392a6.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-22 10:52:35 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 10:57:42 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds) |
2021-10-22 11:04:58 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-22 11:05:03 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-22 11:07:23 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-10-22 11:08:12 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-10-22 11:16:28 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-22 11:19:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-22 11:22:58 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 11:27:25 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 260 seconds) |
2021-10-22 11:30:49 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb93c8c758eae23fe552.dip0.t-ipconnect.de) |
2021-10-22 11:34:10 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb93c8c758eae23fe552.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-22 11:41:17 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 11:45:46 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) (Ping timeout: 252 seconds) |
2021-10-22 11:55:11 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-10-22 11:56:55 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-10-22 11:57:45 +0200 | michalz | (~michalz@185.246.204.41) (Ping timeout: 260 seconds) |
2021-10-22 12:03:17 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving) |
2021-10-22 12:07:36 +0200 | <Profpatsch> | Word64 please :) |
2021-10-22 12:15:29 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
2021-10-22 12:27:45 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 12:30:15 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-22 12:30:15 +0200 | <dminuoso> | Sounds reasonable actually |
2021-10-22 12:31:58 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 252 seconds) |
2021-10-22 12:43:13 +0200 | fendor | (~fendor@91.141.35.79.wireless.dyn.drei.com) |
2021-10-22 12:43:54 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 12:48:29 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-10-22 12:49:08 +0200 | neurocyte0132889 | (~neurocyte@213.188.113.91) |
2021-10-22 12:49:08 +0200 | neurocyte0132889 | (~neurocyte@213.188.113.91) (Changing host) |
2021-10-22 12:49:08 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-10-22 12:55:30 +0200 | fusion86 | (~fusion@2a02-a44c-e6e5-1-309e-d6f5-67ba-dda3.fixed6.kpn.net) |
2021-10-22 12:57:17 +0200 | michalz | (~michalz@185.246.204.41) |
2021-10-22 12:57:42 +0200 | mmhat | (~mmh@55d497bf.access.ecotel.net) |
2021-10-22 13:00:52 +0200 | alx741 | (~alx741@186.178.108.23) |
2021-10-22 13:03:34 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 13:06:58 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds) |
2021-10-22 13:15:56 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-22 13:16:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 13:16:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 13:19:07 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 13:19:17 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-22 13:20:58 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-10-22 13:23:47 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 13:24:22 +0200 | <fusion86> | Hey all. I have a small question about the record syntax and pattern matching. Pattern matching on your record usually results in less code to do the same thing, but when having nested records it can get clusterfucky. In the first snippet the code is small enough so that it doesn't really matter, but for the second snippet it really makes a difference. Which solution would be better? https://paste.tomsmeding.com/ohEg |
2021-10-22 13:24:22 +0200 | <fusion86> | shI4 |
2021-10-22 13:24:47 +0200 | <fusion86> | Unfortunate max text size, link -> https://paste.tomsmeding.com/ohEgshI4 |
2021-10-22 13:25:37 +0200 | <Rembane_> | fusion86: I'm quite fond of composing the accessor functions, as in the second example |
2021-10-22 13:26:13 +0200 | <Cajun> | this seems like something lens and optics are meant to solve, right? |
2021-10-22 13:27:28 +0200 | <Rembane_> | They do, but they also might be absolutely overwhelming depending on the developer |
2021-10-22 13:28:12 +0200 | <fusion86> | Yeah I am trying to keep it a bit simple because it's also a group project |
2021-10-22 13:28:38 +0200 | <Rembane_> | That seems like a good approach |
2021-10-22 13:28:46 +0200 | <fusion86> | I've already caused enough feature creep :) Though I'll make a mental note to look at those two sometimes later. |
2021-10-22 13:28:53 +0200 | <Rembane_> | :D |
2021-10-22 13:28:54 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
2021-10-22 13:29:02 +0200 | <dminuoso> | fusion86: lens/optics provide a language to do this pattern matching. |
2021-10-22 13:29:25 +0200 | <dminuoso> | They are designed precisely for operating on deeply nested data structures. |
2021-10-22 13:30:09 +0200 | <dminuoso> | I dont know the surrounding code, but perhaps they might be worth a lok into |
2021-10-22 13:39:40 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-10-22 13:43:18 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 13:46:00 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-10-22 13:47:43 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 13:47:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) (Ping timeout: 264 seconds) |
2021-10-22 13:48:48 +0200 | <Profpatsch> | fusion86: For records I’m quite fond of (&) a f = f a |
2021-10-22 13:49:02 +0200 | <Profpatsch> | foo & barfield & bazfield |
2021-10-22 13:49:30 +0200 | <Profpatsch> | Which is fine as long as you don’t need to update nested records a lot, in that case (micro)lens is a good solution |
2021-10-22 13:49:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-10-22 13:49:32 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-22 13:50:57 +0200 | dminuoso | thinks `optics` should always be mentioned alongside lens. |
2021-10-22 13:51:42 +0200 | <dminuoso> | Their problem domain would already include Prisms, so microlens is not even an option |
2021-10-22 13:52:53 +0200 | <Cajun> | optics (at least the library with the name) is a lot more friendly, good errors and very good documentation |
2021-10-22 13:53:08 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-22 13:53:09 +0200 | <Cajun> | though isnt it possible to just make your own lenses with zero dependencies by just following the format? |
2021-10-22 13:53:10 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-10-22 13:55:25 +0200 | <dminuoso> | sure, and optics can consume VL style optics too |
2021-10-22 13:55:36 +0200 | <dminuoso> | There's helpers to build the profunctor representation for all (?) of them |
2021-10-22 13:57:23 +0200 | <Inst> | [exa] |
2021-10-22 13:57:26 +0200 | Guest4208 | (~neo3@cpe-292712.ip.primehome.com) |
2021-10-22 13:57:33 +0200 | <Inst> | I have a friend, she's apparently a champion influencer and she's at CUNY |
2021-10-22 13:57:50 +0200 | <Inst> | I'm selling her Haskell as her first language, with some lies about how Haskell is so incredibly remunerated when it's hard to get a job in Haskell |
2021-10-22 13:57:51 +0200 | <Franciman> | Columbia University of New Yowk? |
2021-10-22 13:57:57 +0200 | <Inst> | City University of New York |
2021-10-22 13:58:29 +0200 | <Inst> | It used to be like UC system, then CUNY had some mandate to accept everyone and they jumped the shark |
2021-10-22 13:58:37 +0200 | <dminuoso> | What is a champion influencer? |
2021-10-22 13:58:49 +0200 | <Franciman> | somebody with a lot of instagram followers? |
2021-10-22 13:58:58 +0200 | <maerwald> | is this still about evangelizing haskell? |
2021-10-22 13:59:01 +0200 | Guest4208 | neo |
2021-10-22 13:59:03 +0200 | <Inst> | dminuoso: on social media she can get people to listen to what she says, she's notorious for recruiting 1000 people to some webgame |
2021-10-22 13:59:06 +0200 | neo | Guest9859 |
2021-10-22 13:59:12 +0200 | Guest9859 | neo3 |
2021-10-22 13:59:15 +0200 | <unit73e> | what's the haskell religion called? |
2021-10-22 13:59:21 +0200 | <unit73e> | haskellism? |
2021-10-22 13:59:44 +0200 | <Inst> | I'm wondering if you know anyone at CUNY, who might be able to guide her through independent study, although CUNY is so bad they have Haskell in graduate courses |
2021-10-22 13:59:46 +0200 | <dminuoso> | Inst: Oh so champion is just a qualifier? |
2021-10-22 13:59:53 +0200 | <Inst> | yeah |
2021-10-22 13:59:55 +0200 | <dminuoso> | Inst: For a moment I wasnt sure whether that was a reference to some platform. |
2021-10-22 13:59:56 +0200 | <Hecate> | unit73e: there is a sect called the Church of 𝛈-reduction |
2021-10-22 14:00:03 +0200 | <maerwald> | coding is awful, I always tell people to pick a different career |
2021-10-22 14:00:18 +0200 | <Inst> | it's money |
2021-10-22 14:00:19 +0200 | <unit73e> | Hecate, lol there's always a religion about something |
2021-10-22 14:00:28 +0200 | <Hecate> | unit73e: it's not a real one :P |
2021-10-22 14:00:29 +0200 | <Inst> | alternatives might be to work 72 hours a day at minimum or near minimum wage for 40k a year incomes |
2021-10-22 14:00:33 +0200 | <dminuoso> | maerwald: You generally sound very frustrated. Have you considered carpentry? :> |
2021-10-22 14:00:44 +0200 | <maerwald> | dminuoso: I am an actual brick layer. |
2021-10-22 14:00:49 +0200 | <unit73e> | wait, cuny? seriously? |
2021-10-22 14:00:54 +0200 | <Inst> | also, in theory, if people are fine with adding to the list of people looking and waiting for Haskell jobs |
2021-10-22 14:01:01 +0200 | <dminuoso> | maerwald: By actual, do you mean trained? |
2021-10-22 14:01:04 +0200 | <maerwald> | yes |
2021-10-22 14:01:07 +0200 | <Inst> | we could just deploy her to drag people into an online course |
2021-10-22 14:01:09 +0200 | <Inst> | for haskell |
2021-10-22 14:01:13 +0200 | <Inst> | as a first language / intro level, etc |
2021-10-22 14:01:21 +0200 | <dminuoso> | maerwald: Interesting, how do go from masonry to software development? |
2021-10-22 14:01:22 +0200 | <Inst> | might be able to get 100 students if you're interested in such |
2021-10-22 14:01:30 +0200 | <maerwald> | dminuoso: it felt like the natural thing to do... LOL |
2021-10-22 14:01:31 +0200 | <unit73e> | that's an unfortunate short name for a university |
2021-10-22 14:01:40 +0200 | <Inst> | why? |
2021-10-22 14:01:47 +0200 | <Inst> | I'm an ex-New Yorker. CUNY is perfectly natural. |
2021-10-22 14:01:58 +0200 | <maerwald> | dminuoso: building crap and cheating your customers... it's kinda the same |
2021-10-22 14:02:07 +0200 | <unit73e> | Inst, because cunny also means another thing |
2021-10-22 14:02:09 +0200 | <Inst> | Oh, I think in American slang CUNY -> female genitalia is not a natural association. |
2021-10-22 14:02:20 +0200 | <dminuoso> | maerwald: Except its not. Software development is better because there's absolutely no liability ever. |
2021-10-22 14:02:24 +0200 | <dminuoso> | ;) |
2021-10-22 14:02:26 +0200 | <maerwald> | true |
2021-10-22 14:02:38 +0200 | <Inst> | Female genitalia is a common profanity in British slang, far less so in American English. |
2021-10-22 14:02:42 +0200 | <maerwald> | for mixing concrete wrong you can get into prison in certain circumstances |
2021-10-22 14:02:43 +0200 | <unit73e> | I laught at companies losing millions |
2021-10-22 14:02:50 +0200 | <unit73e> | it's funny |
2021-10-22 14:03:07 +0200 | <Inst> | CUNY happens to be a massive system, though, it's NYC |
2021-10-22 14:03:17 +0200 | <dminuoso> | maerwald: Yeah I bet you can. There's tons of regulations on construction from what I hear. |
2021-10-22 14:03:50 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-10-22 14:03:58 +0200 | <unit73e> | tbf if you cared about bugs involving lots of money you wouldn't sleep at night |
2021-10-22 14:04:03 +0200 | <dminuoso> | Apparently you cant even use cement when its over an hour old? |
2021-10-22 14:04:12 +0200 | <dminuoso> | *concrete |
2021-10-22 14:04:45 +0200 | <maerwald> | "this function was written 4 years ago, can we still use it" |
2021-10-22 14:04:46 +0200 | <maerwald> | xD |
2021-10-22 14:04:46 +0200 | <unit73e> | huh yeah because it will dry |
2021-10-22 14:05:03 +0200 | <unit73e> | that's not common knowledge? |
2021-10-22 14:05:06 +0200 | <maerwald> | I only use frest functions |
2021-10-22 14:05:09 +0200 | <maerwald> | *fresh |
2021-10-22 14:05:19 +0200 | <dminuoso> | unit73e: No it's mostly just arbitrary regulation. After an hour it will not be dried out. |
2021-10-22 14:05:31 +0200 | <dminuoso> | And it's a very conservative threshold |
2021-10-22 14:05:36 +0200 | <maerwald> | dminuoso: there's concrete that hardens in 15 minutes |
2021-10-22 14:05:42 +0200 | <maerwald> | with lots of chemicals |
2021-10-22 14:05:45 +0200 | <Profpatsch> | maerwald: funny thing but I think “this JS framework was written 4 years ago can we still use it” |
2021-10-22 14:05:56 +0200 | <Profpatsch> | is being said thousands if not millions of times per day |
2021-10-22 14:06:00 +0200 | <dminuoso> | maerwald: Interesting, Im guessing there's little to no water involved? |
2021-10-22 14:06:09 +0200 | <maerwald> | it's fun to get those chemicals on your skin |
2021-10-22 14:06:13 +0200 | <maerwald> | (not) |
2021-10-22 14:06:21 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
2021-10-22 14:06:47 +0200 | <maerwald> | at least while coding I can chill inside without getting burned by chemicals, crushed by cranes and stones etc |
2021-10-22 14:06:52 +0200 | <dminuoso> | Profpatsch: Even in Haskell we started developing these common transitive dependencies that have been unmaintained for a long while. |
2021-10-22 14:07:06 +0200 | <dminuoso> | Some of them are well written to the point it doesnt really matter, but others.. *shrugs* |
2021-10-22 14:07:22 +0200 | <maerwald> | dminuoso: some statistics suggest the likelihood of dying is higher when working in construction compared to going to war |
2021-10-22 14:07:44 +0200 | <dminuoso> | maerwald: and apparently agriculture has one of the highest injury rates ever. |
2021-10-22 14:07:53 +0200 | <maerwald> | in software, it's more about suicide (it's amongst the top 10 suicidal jobs) |
2021-10-22 14:07:59 +0200 | <dminuoso> | But that makes a lot of sense considering that farmers have to handle very large and dangerous equipment on their own every day.. |
2021-10-22 14:08:12 +0200 | <zincy> | maerwald: Where is the source for that stat? |
2021-10-22 14:08:23 +0200 | <maerwald> | I read it on the internet lol |
2021-10-22 14:08:28 +0200 | <zincy> | 4chan? |
2021-10-22 14:08:34 +0200 | <maerwald> | not sure if it's a study |
2021-10-22 14:09:30 +0200 | <zincy> | Suicidal jobs sounds like a curious way of raising the unemployment rate |
2021-10-22 14:10:06 +0200 | <dminuoso> | *lowering you mean |
2021-10-22 14:10:12 +0200 | <dminuoso> | people keep freeing up those jobs. |
2021-10-22 14:10:35 +0200 | <zincy> | Suicidal jobs I read as the "job" is suicidal |
2021-10-22 14:10:37 +0200 | <maerwald> | if you must code, avoid fintech and you'll be fine |
2021-10-22 14:10:48 +0200 | <zincy> | Why avoid fintech? |
2021-10-22 14:10:58 +0200 | <unit73e> | dminuoso, it has to be a paste or it will end up being clumps. I do get it that it's convervative |
2021-10-22 14:11:04 +0200 | <maerwald> | I've never been in a more stressful environment than fintech in my entire life |
2021-10-22 14:11:12 +0200 | <zincy> | Really? Tell more |
2021-10-22 14:11:34 +0200 | <maerwald> | well, try it |
2021-10-22 14:11:36 +0200 | <maerwald> | :D |
2021-10-22 14:11:39 +0200 | <dminuoso> | I guess fintech has that extreme wall street mentality of "giving 170% on 22 hours a day"? |
2021-10-22 14:11:40 +0200 | <zincy> | I am :D |
2021-10-22 14:11:45 +0200 | <dminuoso> | With extreme pressure? |
2021-10-22 14:11:55 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-10-22 14:12:20 +0200 | <zincy> | Yeah I can imagina some fintechs try and emulate goldman sachs culture |
2021-10-22 14:12:45 +0200 | <zincy> | Most good coders have the luxury of just witching jobs no? |
2021-10-22 14:12:49 +0200 | <zincy> | *switching |
2021-10-22 14:12:51 +0200 | <unit73e> | maerwald, according to urban dictionary "Wall Street will be replaced by fintech some day in the near future." |
2021-10-22 14:13:42 +0200 | <maerwald> | do it when you're young |
2021-10-22 14:13:47 +0200 | <maerwald> | :D |
2021-10-22 14:13:55 +0200 | <dminuoso> | zincy: Yes, no, perhaps. |
2021-10-22 14:14:10 +0200 | <dminuoso> | It depends on your flexibility and what you want. |
2021-10-22 14:14:11 +0200 | <maerwald> | sadly, Haskell is much more prominent in fintech |
2021-10-22 14:14:22 +0200 | <zincy> | Something Something Cardano |
2021-10-22 14:14:25 +0200 | <dminuoso> | I could probably switch a job in a pinch if I dont give a damn about what language or environment I'd work in. |
2021-10-22 14:14:50 +0200 | <zincy> | dminuoso: Yes finding a good job is really hard |
2021-10-22 14:14:52 +0200 | <dminuoso> | Got a couple outstanding offers that Im simply not interested in for one reason or another. |
2021-10-22 14:14:57 +0200 | <maerwald> | zincy: well, Cardano at least has extremly high engineering standards |
2021-10-22 14:15:02 +0200 | <zincy> | If you want to choose the language / culture/ good colleagues |
2021-10-22 14:15:17 +0200 | <maerwald> | I much rather have quality than time pressure |
2021-10-22 14:15:23 +0200 | <unit73e> | usually you don't get perfect everything |
2021-10-22 14:15:23 +0200 | <zincy> | But do they? |
2021-10-22 14:15:29 +0200 | <maerwald> | zincy: yes |
2021-10-22 14:15:56 +0200 | <zincy> | Ok Ill take your word for it |
2021-10-22 14:16:05 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-22 14:16:21 +0200 | <zincy> | Have you read Stephen Diehl's blog |
2021-10-22 14:16:23 +0200 | <unit73e> | in my anedoctal experience if you prioritize language in your job you end up having zellot nerds as colleagues |
2021-10-22 14:16:35 +0200 | <zincy> | hahaha ^ |
2021-10-22 14:16:36 +0200 | <maerwald> | zincy: pff... I sold my sould to the devil long ago |
2021-10-22 14:17:01 +0200 | <dminuoso> | unit73e: Or more likely, you wont find a job that is close by nearby or has the payment you want. |
2021-10-22 14:17:11 +0200 | <dminuoso> | Or the flexibility you need. |
2021-10-22 14:17:31 +0200 | <unit73e> | that's true as well |
2021-10-22 14:17:45 +0200 | <dminuoso> | I wouldn't want a full presence vacation, for instance. Right now I work 5 days a week from home with a fully flexible time schedule. |
2021-10-22 14:17:49 +0200 | <zincy> | Yeah, hence why I am looking at typescript jobs - bigger pool |
2021-10-22 14:17:50 +0200 | <dminuoso> | To me this is very valuable. |
2021-10-22 14:17:53 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 14:18:09 +0200 | <maerwald> | zincy: I know a haskeller who switched to typescript and never looked back |
2021-10-22 14:18:12 +0200 | <maerwald> | a good haskeller |
2021-10-22 14:18:33 +0200 | <unit73e> | I have mostly worked with Java. It's not a great language but at least you have a lot of offer. |
2021-10-22 14:18:36 +0200 | <zincy> | Tons of jobs in Typescript and you can use some of your knowledge from Haskell. :) |
2021-10-22 14:18:40 +0200 | <maerwald> | yes |
2021-10-22 14:18:43 +0200 | <maerwald> | it's a good choice |
2021-10-22 14:18:59 +0200 | <maerwald> | and it's quite pragmatic |
2021-10-22 14:19:10 +0200 | <maerwald> | you won't be staring at Generics code for 3 hours |
2021-10-22 14:19:26 +0200 | <maerwald> | until you realize you have no idea what's going on |
2021-10-22 14:19:51 +0200 | <unit73e> | clients love typescript programmers because you actually see the results. I work mostly backend so the client is never impressed. |
2021-10-22 14:20:14 +0200 | <unit73e> | except when I spit some 5min frontend code, then the client is impressed :\ |
2021-10-22 14:20:23 +0200 | <janus> | unit73e: so clients are super impressed by purescript? |
2021-10-22 14:20:28 +0200 | <dminuoso> | unit73e: So we offload some our tasks to another shop, they do mostly just invisible backend stuff. Im generally impressed with their results. |
2021-10-22 14:20:40 +0200 | <maerwald> | unit73e: managers kinda understand frontend development these days. But they don't understand that you can't apply the same mindset/workflow/practices to backend. |
2021-10-22 14:20:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 14:20:51 +0200 | <dminuoso> | But then again, their work is submitted as a PR that I approve... :) |
2021-10-22 14:20:57 +0200 | <unit73e> | janus, if the end result is pretty yes lol |
2021-10-22 14:21:38 +0200 | <maerwald> | deploy often, iterate quickly: yes, for frontend. For backend, I'll go with the opposite: deploy only if you absolutely must, iterate slowly, wait before you understand the data. |
2021-10-22 14:22:35 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 14:23:37 +0200 | <maerwald> | but hey, frontend is more stress |
2021-10-22 14:23:48 +0200 | <maerwald> | talking to actual users etc.? Oh god. |
2021-10-22 14:24:17 +0200 | <maerwald> | "do you like this?" |
2021-10-22 14:24:24 +0200 | <maerwald> | "can we make the button green?" |
2021-10-22 14:25:09 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-10-22 14:25:11 +0200 | <maerwald> | or make it perpendicular |
2021-10-22 14:25:45 +0200 | <zincy> | The good thing about backend is your project manager probably doesn't have an opinion on cache invalidation |
2021-10-22 14:26:23 +0200 | <maerwald> | having a project manager being tech-savy is usually worse... you'll have to explain every single decision and everything becomes an argument |
2021-10-22 14:27:14 +0200 | <zincy> | That sounds awful |
2021-10-22 14:28:02 +0200 | <maerwald> | there are only two options: 1. a team with natural synergy or 2. a team with clear hierarchy |
2021-10-22 14:28:32 +0200 | <maerwald> | and 3. open source anarchy |
2021-10-22 14:28:32 +0200 | <dminuoso> | maerwald: tech savvy managing can work perfectly as long as they understand that they are no longer in the process of making technical decisions. |
2021-10-22 14:29:06 +0200 | <maerwald> | dminuoso: right |
2021-10-22 14:29:29 +0200 | <maerwald> | that's the same with parenting |
2021-10-22 14:29:33 +0200 | trainlag1602 | (~saroa@user/trainlag1602) |
2021-10-22 14:29:51 +0200 | <dminuoso> | In what way? |
2021-10-22 14:29:52 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-10-22 14:29:54 +0200 | <maerwald> | tends to work with a delay of 2 decades |
2021-10-22 14:29:58 +0200 | alzgh | (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
2021-10-22 14:30:30 +0200 | <dminuoso> | Oh yes, as a parent you make pedagogical decisions, irrespective of having a childhood experience your own. |
2021-10-22 14:30:38 +0200 | <dminuoso> | Well some do. |
2021-10-22 14:30:50 +0200 | mei6 | (~mei@user/mei) |
2021-10-22 14:30:54 +0200 | <maerwald> | tech is about emotions |
2021-10-22 14:31:05 +0200 | <dminuoso> | My current emotion is extremely negative. |
2021-10-22 14:31:09 +0200 | <maerwald> | although we pretend we're all scientist nerds |
2021-10-22 14:31:10 +0200 | mei | (~mei@user/mei) (Ping timeout: 260 seconds) |
2021-10-22 14:31:11 +0200 | mei6 | mei |
2021-10-22 14:31:14 +0200 | <dminuoso> | Something-something-django-something-something |
2021-10-22 14:31:25 +0200 | <zincy> | Pythonic! |
2021-10-22 14:31:52 +0200 | <maerwald> | dminuoso: I actually picked python over haskell for a microservice :D |
2021-10-22 14:31:56 +0200 | <zincy> | Duplication is better than abstraction |
2021-10-22 14:32:46 +0200 | <maerwald> | like, the input data was absolute trash... I needed something that's good with xml and that I can code up in 4 hours |
2021-10-22 14:32:47 +0200 | neo3 | (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 264 seconds) |
2021-10-22 14:32:48 +0200 | <maerwald> | -> python |
2021-10-22 14:33:13 +0200 | <maerwald> | no point in desinging anything when the input is trash |
2021-10-22 14:34:20 +0200 | <maerwald> | Also, I think django swallows every 200 requests or so |
2021-10-22 14:34:37 +0200 | <maerwald> | sometimes a request just fails and the next one works |
2021-10-22 14:34:51 +0200 | <maerwald> | close enough, lets ship |
2021-10-22 14:34:57 +0200 | <dminuoso> | maerwald: Ive not been impressed with the django ecosystem. The websockets stuff is horrendously bad. |
2021-10-22 14:35:17 +0200 | <zincy> | Concurrency in python is so odd |
2021-10-22 14:35:25 +0200 | <maerwald> | I found it lovely... my test suited ended up 5 times as big as the actual implementatiooon |
2021-10-22 14:35:30 +0200 | <dminuoso> | Perhaps |
2021-10-22 14:35:56 +0200 | <maerwald> | but if it's low-maintenance, I don't see a point for Haskell |
2021-10-22 14:36:02 +0200 | <maerwald> | where I OCD over details |
2021-10-22 14:36:15 +0200 | <dminuoso> | maerwald: Right now Ive been spending 2 hours on some "oh there's an N+1 query. add prefetch_related..." and that worsened the N+1 by 2 orders of magnitude. |
2021-10-22 14:36:26 +0200 | <dminuoso> | So yeah.. |
2021-10-22 14:36:31 +0200 | <dminuoso> | This is very high maintenance. :P |
2021-10-22 14:36:38 +0200 | <dminuoso> | But then again, the entire project is of non-trivial size |
2021-10-22 14:37:02 +0200 | <maerwald> | another good reason to pick python over haskell: selenium |
2021-10-22 14:37:24 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 14:37:27 +0200 | <dminuoso> | maerwald: honestly you can also simply do a mixing of both. |
2021-10-22 14:37:48 +0200 | <dminuoso> | But for web development things are not particularly pretty in haskell yeah |
2021-10-22 14:37:56 +0200 | <dminuoso> | Yesod hasnt convinced me, and there's nothing else |
2021-10-22 14:38:03 +0200 | <maerwald> | 1. relying on undermaintained haskell bindings, why? 2. why would I need strong types for a procedural/imperative test configuration |
2021-10-22 14:38:11 +0200 | <dminuoso> | For APIs you can get away with some basic libraries just fine |
2021-10-22 14:38:37 +0200 | <zincy> | dimunoso: Why are web programs in Haskell not pretty? |
2021-10-22 14:38:37 +0200 | <maerwald> | I have the same opinion about propellor... there even is a Debian type |
2021-10-22 14:38:50 +0200 | <maerwald> | and I never figured out why I need types for that sort of configuration |
2021-10-22 14:38:54 +0200 | <maerwald> | it never prevented real bugs |
2021-10-22 14:39:39 +0200 | <maerwald> | if then else combined with ++ can give you real bugs :) |
2021-10-22 14:40:06 +0200 | <zincy> | Haskell is great for web dev because most of it is concurency and de/serialisation |
2021-10-22 14:40:16 +0200 | <zincy> | But it isnt "pretty" haskell |
2021-10-22 14:40:35 +0200 | <zincy> | In the same way a compiler for lambda calculus is pretty |
2021-10-22 14:41:05 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 14:41:37 +0200 | <maerwald> | > if False then [1] else [2] ++ [4] |
2021-10-22 14:41:39 +0200 | <lambdabot> | [2,4] |
2021-10-22 14:41:45 +0200 | <maerwald> | now imagine the ++ is on the next line |
2021-10-22 14:41:51 +0200 | <maerwald> | carefully aligned |
2021-10-22 14:41:52 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 14:41:54 +0200 | <maerwald> | will you realise it? |
2021-10-22 14:42:33 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 14:42:54 +0200 | <dminuoso> | 14:38:37 zincy | dimunoso: Why are web programs in Haskell not pretty? |
2021-10-22 14:43:06 +0200 | <dminuoso> | There's only yesod, and that's all very opinionated. |
2021-10-22 14:43:14 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) |
2021-10-22 14:43:25 +0200 | <dminuoso> | If you dont like shakespear, I dont know whether there are any reasonable alternatives |
2021-10-22 14:43:27 +0200 | <maerwald> | this is where a linter would actually help... not these nonsensical hlint rules, but here telling me "do you understand the precedence here? Do you really mean that?" |
2021-10-22 14:43:37 +0200 | <zincy> | dminuoso: Servant? |
2021-10-22 14:43:54 +0200 | <dminuoso> | servant is okayish for APIs |
2021-10-22 14:43:58 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-22 14:44:05 +0200 | <dminuoso> | But it doesnt have much else for web development |
2021-10-22 14:44:15 +0200 | <zincy> | Yeah barebones |
2021-10-22 14:44:25 +0200 | <dminuoso> | And in fact if you treat HTTP seriously, servant is very cumbersome because its very poor on the semantic side |
2021-10-22 14:44:28 +0200 | <dminuoso> | like cache control |
2021-10-22 14:44:29 +0200 | <zincy> | So you mean Haskell lacks a killer web framework |
2021-10-22 14:44:46 +0200 | <dminuoso> | I dont think a "killer <anything> framework" really exists in any language |
2021-10-22 14:44:48 +0200 | <zincy> | As in Elixir has Phoenix (which seems very good) |
2021-10-22 14:45:05 +0200 | <dminuoso> | I actually wrote some elixir stuff in phoenix, incidentally that was my gateway drug to Haskell |
2021-10-22 14:45:30 +0200 | <dminuoso> | At the end I got so annoyed by the lack of any static analysis (dialyzr has awful gibberish output)... |
2021-10-22 14:45:37 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-10-22 14:45:50 +0200 | <zincy> | Yeah |
2021-10-22 14:46:01 +0200 | <dminuoso> | Combined with very magical things like |> being implemented as a macro, which means it "magically" doesnt work in all the places you'd expect it to, and generate awful diagnostics when it doesnt... |
2021-10-22 14:46:13 +0200 | <dminuoso> | To me it caused a lot of frustrationg |
2021-10-22 14:46:18 +0200 | <dminuoso> | But I can see how people might enjoy elixir |
2021-10-22 14:46:27 +0200 | <dminuoso> | It just wasn't the right fit for me |
2021-10-22 14:46:42 +0200 | <zincy> | Yeah the dynamic typing is annoying |
2021-10-22 14:46:47 +0200 | <vaibhavsagar[m]> | what do you mean about servant being poor on the semantic side? |
2021-10-22 14:46:52 +0200 | <zincy> | But seems like they have a ton of well maintained libaries for web |
2021-10-22 14:46:55 +0200 | <dminuoso> | zincy: also, much of phoenix - in particular ecto - is just tons of tons of macros piled ontop of each other. |
2021-10-22 14:46:57 +0200 | <vaibhavsagar[m]> | it's a DSL for APIs |
2021-10-22 14:47:01 +0200 | trainlag1602 | (~saroa@user/trainlag1602) () |
2021-10-22 14:47:05 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-10-22 14:47:06 +0200 | <dminuoso> | zincy: which generally makes for a horrible user experience |
2021-10-22 14:47:21 +0200 | <dminuoso> | vaibhavsagar[m]: HTTP is a deeply semantic protocol. |
2021-10-22 14:47:37 +0200 | <maerwald> | vaibhavsagar[m]: it's also an actual server |
2021-10-22 14:47:49 +0200 | <maerwald> | and uses wai under the hood |
2021-10-22 14:47:59 +0200 | <vaibhavsagar[m]> | yes, I know that |
2021-10-22 14:48:01 +0200 | <jumper149> | vaibhavsagar[m]: Some parts of the HTTP protocol don't translate nicely to a servant API. For example returning a different status like 400, can't be represented in the API. |
2021-10-22 14:48:01 +0200 | <zincy> | dminuoso: I was wondering about when is the right time to create a DSL, seems like coders like to implement them a lot just because they are fun) |
2021-10-22 14:48:04 +0200 | <dminuoso> | vaibhavsagar[m]: So say if you have a servant client, and the server sets a cache control header, do you imagine the servant client will respect that? :-) |
2021-10-22 14:48:07 +0200 | trainlag1602 | (~saroa@user/trainlag1602) |
2021-10-22 14:48:08 +0200 | <maerwald> | so it's NOT just a DSL |
2021-10-22 14:48:18 +0200 | <jumper149> | Not trivially at least. |
2021-10-22 14:48:46 +0200 | <dminuoso> | vaibhavsagar[m]: Mind you, I use servant heavily in some of our projects. I like what its good at, but I can definitely see its problems. |
2021-10-22 14:49:14 +0200 | <vaibhavsagar[m]> | sure, I'm not trying to defend Servant, I haven't used it at all in a while |
2021-10-22 14:49:17 +0200 | <zincy> | dminuoso: What is your favourite alternative to servant? |
2021-10-22 14:49:21 +0200 | <vaibhavsagar[m]> | but I was curious about what you meant |
2021-10-22 14:49:31 +0200 | <dminuoso> | zincy: the swagger ecosystem is mostly similar |
2021-10-22 14:49:51 +0200 | <dminuoso> | And you get more guaranteed interop from it |
2021-10-22 14:50:06 +0200 | <zincy> | Sorry similar to ... ? |
2021-10-22 14:50:08 +0200 | <dminuoso> | Since swagger generators/tools are available for a plethora of langauges |
2021-10-22 14:50:12 +0200 | <dminuoso> | zincy: to servant. |
2021-10-22 14:50:17 +0200 | <maerwald> | jumper149: but there's UVerb now |
2021-10-22 14:50:23 +0200 | <zincy> | Oh yeah |
2021-10-22 14:50:28 +0200 | <dminuoso> | You can think of servant as simply being code generics |
2021-10-22 14:50:37 +0200 | <dminuoso> | It just generates some boilerplate code around some API |
2021-10-22 14:50:56 +0200 | <maerwald> | jumper149: https://github.com/haskell-servant/servant/pull/1314 |
2021-10-22 14:51:19 +0200 | <dminuoso> | vaibhavsagar[m]: I think HTTP being a semantic protocol is part in why I dislike it being used for APIs so much |
2021-10-22 14:51:28 +0200 | <dminuoso> | It's a wild abuse for the purpose of re-using tooling and authentication |
2021-10-22 14:51:33 +0200 | <maerwald> | https://github.com/haskell-servant/servant/blob/master/doc/cookbook/uverb/UVerb.lhs |
2021-10-22 14:51:46 +0200 | bartavelle | (~bartavell@2001:41d0:1:744c::1) |
2021-10-22 14:51:58 +0200 | <vaibhavsagar[m]> | yeah, that's fair |
2021-10-22 14:52:06 +0200 | <vaibhavsagar[m]> | I've used servant a bit at previous jobs |
2021-10-22 14:52:23 +0200 | <vaibhavsagar[m]> | it seemed like it choked when I wanted a JSON body in a non-200 response |
2021-10-22 14:52:42 +0200 | <vaibhavsagar[m]> | which AFAICT is definitely possible according to HTTP semantics |
2021-10-22 14:53:04 +0200 | <vaibhavsagar[m]> | but you had to contort servant into a pretzel to get it to do that |
2021-10-22 14:53:16 +0200 | <jumper149> | maerwald: Nice, that's pretty cool! |
2021-10-22 14:53:54 +0200 | <zincy> | I remember auth headers being a pain in Servant |
2021-10-22 14:54:06 +0200 | <zincy> | When trying to generate swagger docs |
2021-10-22 14:54:18 +0200 | bartavelle | (~bartavell@2001:41d0:1:744c::1) () |
2021-10-22 14:54:34 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-10-22 14:55:05 +0200 | <zincy> | Are there any good articles about the design space of building a web framework? |
2021-10-22 14:55:13 +0200 | <zincy> | As in what tradeoffs are at play |
2021-10-22 14:55:48 +0200 | jgeerds | (~jgeerds@55d40de2.access.ecotel.net) (Ping timeout: 258 seconds) |
2021-10-22 14:56:12 +0200 | <maerwald> | yes |
2021-10-22 14:57:12 +0200 | <maerwald> | https://haskell-servant.github.io/posts/2018-07-12-servant-dsl-typelevel.html |
2021-10-22 14:57:32 +0200 | <maerwald> | the alternative would have been TH |
2021-10-22 14:57:46 +0200 | <maerwald> | the motivation was to *generate* clients |
2021-10-22 14:58:02 +0200 | <maerwald> | something many people forget when they pick servant, thinking it's the only choice |
2021-10-22 14:58:30 +0200 | <maerwald> | if you don't generate clients or do other stuff like auto-generating swagger from the types |
2021-10-22 14:58:34 +0200 | <maerwald> | what's the point even |
2021-10-22 14:59:03 +0200 | <maerwald> | I think for internal API, this matters very little |
2021-10-22 14:59:16 +0200 | <maerwald> | the types are an interface for tools |
2021-10-22 14:59:55 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb93c8c758eae23fe552.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-10-22 15:00:40 +0200 | python476 | (~user@88.160.31.174) |
2021-10-22 15:01:24 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-10-22 15:01:44 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) |
2021-10-22 15:02:36 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-10-22 15:02:47 +0200 | <adamCS> | Anyone using emacs with hls and the autocomplete suggestion list thing gets very (very) slow? Is there a way to turn it off or somehow shorten the list of suggestions (if that's the issue)? |
2021-10-22 15:03:41 +0200 | python476 | agumonkey |
2021-10-22 15:07:07 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-10-22 15:08:03 +0200 | <Profpatsch> | I’m in the camp of generating source from swagger/openapi definitions in a typed language, and using that in your client code. |
2021-10-22 15:08:23 +0200 | <jumper149> | maerwald: I just looked at UVerb. One could argue that is glued on top of servant and isn't nicely integrated (yet?). Also I'm not saying that servant can't be extended to someday represent all of the HTTP protocol nicely on the type level. |
2021-10-22 15:10:21 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 15:10:31 +0200 | <zincy> | maerwald: I found the generation to be a bit lacking for reasonml at least. |
2021-10-22 15:11:57 +0200 | burakcank | (burakcank@has.arrived.and.is.ready-to.party) |
2021-10-22 15:13:21 +0200 | jespada | (~jespada@2803:9800:9842:7a62:c904:aff:1e1a:fc0a) |
2021-10-22 15:14:46 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 252 seconds) |
2021-10-22 15:16:00 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-22 15:16:36 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 15:17:43 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
2021-10-22 15:21:11 +0200 | <Franciman> | is there any material about using LinearTypes extension? |
2021-10-22 15:24:16 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-22 15:24:49 +0200 | delipickle | (~delipickl@097-086-022-157.res.spectrum.com) |
2021-10-22 15:25:22 +0200 | <xerox> | this is a start I guess https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-linear-types.rst |
2021-10-22 15:25:55 +0200 | <Franciman> | I want to understand if lineartypes can allow me to stop using the garbage collector |
2021-10-22 15:25:57 +0200 | <Franciman> | thanks xerox |
2021-10-22 15:26:53 +0200 | <adamCS> | Another Pipes question: is there a way to do "joinProducer :: m (Producer a m ()) -> Producer a m ()"? |
2021-10-22 15:27:43 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 15:27:55 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 15:27:56 +0200 | vpan | (~0@212.117.1.172) (Quit: Leaving.) |
2021-10-22 15:28:34 +0200 | __monty__ | (~toonn@user/toonn) |
2021-10-22 15:28:35 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 264 seconds) |
2021-10-22 15:29:39 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 15:29:39 +0200 | lavaman | (~lavaman@98.38.249.169) (Read error: Connection reset by peer) |
2021-10-22 15:30:01 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 15:30:32 +0200 | <vaibhavsagar[m]> | Franciman: they can't, AFAICT linear types haven't been integrated with the garbage collector at all |
2021-10-22 15:30:48 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) |
2021-10-22 15:30:52 +0200 | <Franciman> | thanks vaibhavsagar[m] |
2021-10-22 15:31:00 +0200 | <Franciman> | this makes me relieved |
2021-10-22 15:31:22 +0200 | <Franciman> | I was afraid there was something cool I could not achieve |
2021-10-22 15:31:26 +0200 | <Franciman> | but now I know I just need to wait |
2021-10-22 15:32:32 +0200 | max22- | (~maxime@2a01cb0883359800a17b4351977e7c2e.ipv6.abo.wanadoo.fr) |
2021-10-22 15:35:47 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 264 seconds) |
2021-10-22 15:36:47 +0200 | <vaibhavsagar[m]> | AFAIK the current status is "look at this cool thing we can make the type system do" instead of "here's how you can actually use this to manage resources" |
2021-10-22 15:37:14 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-10-22 15:37:18 +0200 | <Franciman> | getting the same vibe, tbf |
2021-10-22 15:37:58 +0200 | fusion86 | (~fusion@2a02-a44c-e6e5-1-309e-d6f5-67ba-dda3.fixed6.kpn.net) (Quit: Leaving) |
2021-10-22 15:38:12 +0200 | CiaoSen | (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-10-22 15:38:53 +0200 | jumper149 | (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
2021-10-22 15:42:43 +0200 | Inst_ | (~Inst@2601:6c4:4080:3f80:e9cf:d82f:5daa:fcc1) |
2021-10-22 15:44:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 15:47:11 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:709e:32b8:8140:3ed0) (Ping timeout: 264 seconds) |
2021-10-22 15:47:42 +0200 | <maerwald> | are you saying it's all marketing for a company? :p |
2021-10-22 15:48:20 +0200 | <Franciman> | V lang made us learn a lot of things |
2021-10-22 15:48:56 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-10-22 15:49:20 +0200 | <vaibhavsagar[m]> | society if V lang actually delivered even 50% of what it promised |
2021-10-22 15:49:35 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) (Ping timeout: 264 seconds) |
2021-10-22 15:50:03 +0200 | <Hecate> | vaibhavsagar[m]: hahahahaha |
2021-10-22 15:50:07 +0200 | <Hecate> | clearly |
2021-10-22 15:50:14 +0200 | <Franciman> | ahahahahah |
2021-10-22 15:50:47 +0200 | <Hecate> | https://joannakarpowicz.pl/ I love the Anubis |
2021-10-22 15:51:55 +0200 | <vaibhavsagar[m]> | does anyone else remember how they sold it as "fully statically linked" and when it was revealed they had a dependency on glibc the project owner said "well i meant statically linked except for system libraries" |
2021-10-22 15:52:12 +0200 | <vaibhavsagar[m]> | yeah, nice work, that's totally what those words mean |
2021-10-22 15:52:46 +0200 | <vaibhavsagar[m]> | i would be less annoyed if they hadn't called it V lang, since I go by V in most places |
2021-10-22 15:52:54 +0200 | <maerwald> | vaibhavsagar[m]: he meant you can go through hoops and link with musl. Clearly |
2021-10-22 15:52:56 +0200 | <merijn> | I don't blame him, who the fuck wants to fight with linking glibc statically :p |
2021-10-22 15:53:47 +0200 | <gehmehgeh> | V lang? |
2021-10-22 15:53:49 +0200 | <maerwald> | technically not a lie |
2021-10-22 15:53:56 +0200 | <vaibhavsagar[m]> | > compiles to native binaries without any dependencies |
2021-10-22 15:53:56 +0200 | <vaibhavsagar[m]> | https://vlang.io/ |
2021-10-22 15:53:58 +0200 | <lambdabot> | error: |
2021-10-22 15:53:58 +0200 | <lambdabot> | Variable not in scope: |
2021-10-22 15:53:58 +0200 | <lambdabot> | compiles |
2021-10-22 15:54:01 +0200 | <vaibhavsagar[m]> | nonsense |
2021-10-22 15:54:37 +0200 | <merijn> | Just blame your decision to support OpenBSD if you need an excuse to not link libc dynamically >.> |
2021-10-22 15:54:58 +0200 | <Franciman> | oh i love the new v webpage |
2021-10-22 15:55:11 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-10-22 15:55:45 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) |
2021-10-22 15:55:49 +0200 | <merijn> | I mean, if your website looks that sleek, you're spending to much time on the marketing and not enough on the implementation ;) |
2021-10-22 15:56:02 +0200 | <vaibhavsagar[m]> | > This tool already supports C and will soon support the latest standard of notoriously complex C++. It does full automatic conversion to human readable code. |
2021-10-22 15:56:16 +0200 | <merijn> | lol |
2021-10-22 15:56:21 +0200 | <vaibhavsagar[m]> | this is literally impossible |
2021-10-22 15:56:27 +0200 | <maerwald> | looks like it was meant as competition to C++ |
2021-10-22 15:56:31 +0200 | <merijn> | Tell me you don't know C++, without telling me you don't know C++ |
2021-10-22 15:56:39 +0200 | <vaibhavsagar[m]> | I guess on a long enough timescale everything is "soon" |
2021-10-22 15:57:15 +0200 | <vaibhavsagar[m]> | or maybe what they mean by "human readable code" is assembly, which is technically human readable I guess |
2021-10-22 15:57:18 +0200 | <Franciman> | so now I want to add a -XVmode extension to haskell |
2021-10-22 15:57:24 +0200 | <Franciman> | with all the features coming SOON |
2021-10-22 15:57:38 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 15:58:11 +0200 | <vaibhavsagar[m]> | Nim, Zig, and Rust are all players in that space |
2021-10-22 15:58:18 +0200 | <vaibhavsagar[m]> | and none of the devs involved there make grandiose promises they can't keep |
2021-10-22 15:58:26 +0200 | <maerwald> | I like Jai language better (from Jonathan Blow), which is ONLY marketing. None of the code is published xD |
2021-10-22 15:58:39 +0200 | <vaibhavsagar[m]> | call it -XLinearDependentTypes |
2021-10-22 15:58:50 +0200 | <maerwald> | Supposedly, he's been working on Jai since 2014 |
2021-10-22 15:58:59 +0200 | <maerwald> | held several talks about it over the years |
2021-10-22 15:59:03 +0200 | <maerwald> | but there's no *CODE* |
2021-10-22 15:59:23 +0200 | <lortabac> | ahah roc is a good competitor too, zero published code, plenty of conferences with amazing benchmarks |
2021-10-22 15:59:41 +0200 | <merijn> | I mean, Jonathan Blow isn't an engineer, he's an "artiste", why would you expect a serious general language from him? |
2021-10-22 15:59:44 +0200 | <vaibhavsagar[m]> | hah fair, Roc is pretty new though |
2021-10-22 16:00:21 +0200 | <lortabac> | I'm always amazed by the marketing skills of these people |
2021-10-22 16:00:21 +0200 | Guest22 | (~Guest22@wificampus-098210.grenet.fr) |
2021-10-22 16:00:59 +0200 | <merijn> | lortabac: Well, they have time, 'cause not programming :p |
2021-10-22 16:01:38 +0200 | <lortabac> | in the case of Roc it seems the product is for real, we'll see in a couple of years |
2021-10-22 16:02:01 +0200 | <vaibhavsagar[m]> | all you have to do is convince one foolish CS grad student that your ideas contain at least one PhD |
2021-10-22 16:02:11 +0200 | <vaibhavsagar[m]> | and they'll do the implementation for you |
2021-10-22 16:02:11 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 16:02:17 +0200 | bontaq` | (~user@ool-45779fe5.dyn.optonline.net) |
2021-10-22 16:02:17 +0200 | <merijn> | I mean, anyone doing a phd is foolish by definition... |
2021-10-22 16:02:29 +0200 | <Franciman> | phoolish doctor |
2021-10-22 16:02:33 +0200 | <vaibhavsagar[m]> | good point |
2021-10-22 16:02:37 +0200 | <Guest22> | if I have a parser p in Parsec/Megaparsec, is there a helper function to simply do something like `Text -> Parser a -> Bool` telling me if the parser matches the given string? without having the pull the full runParser? |
2021-10-22 16:03:10 +0200 | <Franciman> | Guest22: I think you want isRight . runParser ? |
2021-10-22 16:03:12 +0200 | <Guest22> | parseTest looks like a good fit but that still involves exceptions |
2021-10-22 16:03:21 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-10-22 16:03:54 +0200 | <Guest22> | but if I get a Left I will still have an exception to handle |
2021-10-22 16:04:10 +0200 | <merijn> | how so? |
2021-10-22 16:04:19 +0200 | <merijn> | :t either (const False) (const True) |
2021-10-22 16:04:20 +0200 | <lambdabot> | Either b1 b2 -> Bool |
2021-10-22 16:04:22 +0200 | <merijn> | Solved |
2021-10-22 16:04:37 +0200 | <Franciman> | :t runParser |
2021-10-22 16:04:39 +0200 | <lambdabot> | error: Variable not in scope: runParser |
2021-10-22 16:04:40 +0200 | <Franciman> | sad |
2021-10-22 16:04:56 +0200 | <vaibhavsagar[m]> | isRight . runParser "-" |
2021-10-22 16:05:50 +0200 | <vaibhavsagar[m]> | since runParser takes the name of the source file as its first argument |
2021-10-22 16:06:25 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-10-22 16:06:50 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Ping timeout: 260 seconds) |
2021-10-22 16:07:17 +0200 | <Guest22> | :t isRight |
2021-10-22 16:07:19 +0200 | <lambdabot> | Either a b -> Bool |
2021-10-22 16:07:32 +0200 | <Guest22> | oh oh nevermind! thanks |
2021-10-22 16:07:33 +0200 | <vaibhavsagar[m]> | oh actually \parser string -> isRight $ runParser parse "-" string |
2021-10-22 16:07:35 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) (Ping timeout: 264 seconds) |
2021-10-22 16:08:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-22 16:08:37 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-22 16:08:37 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-22 16:09:01 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-10-22 16:10:31 +0200 | <merijn> | hah, I think I just Fairbairned isRight. I'm proud of myself :p |
2021-10-22 16:11:02 +0200 | Guest22 | (~Guest22@wificampus-098210.grenet.fr) (Quit: Client closed) |
2021-10-22 16:13:44 +0200 | <Franciman> | you what |
2021-10-22 16:15:11 +0200 | <merijn> | Franciman: "The Fairbairn threshold is the point at which the effort of looking up or keeping track of the definition is outweighed by the effort of rederiving it or inlining it." |
2021-10-22 16:15:21 +0200 | <maerwald> | merijn: I use `either` and `maybe` much more than fromMaybe etc |
2021-10-22 16:15:48 +0200 | <Franciman> | lolz |
2021-10-22 16:15:49 +0200 | <Franciman> | takk |
2021-10-22 16:16:16 +0200 | <merijn> | maerwald: I use fromMaybe sometimes still, when I don't directly do anything with the result, but probably at least 50/50 for Maybe |
2021-10-22 16:16:30 +0200 | <maerwald> | maybe foo id |
2021-10-22 16:16:32 +0200 | <merijn> | I don't use the fromLeft/fromRight...ever, I think? |
2021-10-22 16:16:39 +0200 | bontaq` | bontaq |
2021-10-22 16:17:10 +0200 | <maerwald> | because here the naming is crystal clear |
2021-10-22 16:17:16 +0200 | <maerwald> | `fromMaybe` already confuses me |
2021-10-22 16:18:14 +0200 | <maerwald> | > :t listToMaybe |
2021-10-22 16:18:15 +0200 | xsperry | (~xs@user/xsperry) (Ping timeout: 265 seconds) |
2021-10-22 16:18:16 +0200 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
2021-10-22 16:18:20 +0200 | <maerwald> | :t listToMaybe |
2021-10-22 16:18:21 +0200 | <lambdabot> | [a] -> Maybe a |
2021-10-22 16:18:22 +0200 | <maerwald> | even worse |
2021-10-22 16:18:43 +0200 | <Franciman> | natural transformation, i reckon |
2021-10-22 16:18:45 +0200 | xsperry | (~xs@user/xsperry) |
2021-10-22 16:18:46 +0200 | <merijn> | Entirely unrelatedly |
2021-10-22 16:18:54 +0200 | <merijn> | Is it two's complement or twos' complement? |
2021-10-22 16:19:06 +0200 | <Franciman> | first |
2021-10-22 16:19:40 +0200 | <merijn> | Franciman: That's my instinct to, but the internet also says my instinct for one's complement is wrong and that it is ones' complement |
2021-10-22 16:20:28 +0200 | <Franciman> | we say |
2021-10-22 16:20:35 +0200 | <Franciman> | complemento a due |
2021-10-22 16:20:38 +0200 | <Franciman> | ah |
2021-10-22 16:20:54 +0200 | <Franciman> | i just recongized the the plural of due is due |
2021-10-22 16:21:02 +0200 | <Franciman> | so no clu anymore :O |
2021-10-22 16:24:02 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-10-22 16:24:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 16:26:06 +0200 | ubert | (~Thunderbi@178.165.203.151.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-22 16:26:06 +0200 | ub | ubert |
2021-10-22 16:26:40 +0200 | trainlag1602 | (~saroa@user/trainlag1602) (Ping timeout: 260 seconds) |
2021-10-22 16:29:00 +0200 | zebrag | (~chris@user/zebrag) |
2021-10-22 16:35:17 +0200 | <janus> | % :m +Data.Time.Clock Data.Time.Calendar Data.Time |
2021-10-22 16:35:18 +0200 | <yahb> | janus: |
2021-10-22 16:35:27 +0200 | trainlag1602 | (~saroa@user/trainlag1602) |
2021-10-22 16:35:28 +0200 | <janus> | % toEnum minBound :: Day |
2021-10-22 16:35:28 +0200 | <yahb> | janus: -25252734927764696-04-22 |
2021-10-22 16:35:57 +0200 | <janus> | why was it chosen to provide an Enum instance for Day when it can construct invalid values? |
2021-10-22 16:36:19 +0200 | jstolarek | (~jstolarek@137.220.120.162) |
2021-10-22 16:37:24 +0200 | <kritzefitz> | Why would that day be invalid? |
2021-10-22 16:39:14 +0200 | <janus> | ooh maybe it isn't. i had assumed that because zero is 1858-11-17. hadn't considered the concept of negative julian dates, this date seems a weird choice if negative values are also allowed. it could just have been 0000-00-00 |
2021-10-22 16:41:15 +0200 | <janus> | or Jan 1st :P oh well |
2021-10-22 16:41:25 +0200 | <janus> | ok, good to know it can be negative. thanks! |
2021-10-22 16:46:46 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-10-22 16:47:15 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 16:48:44 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) |
2021-10-22 16:48:48 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) |
2021-10-22 16:49:40 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 16:49:56 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 16:50:04 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 16:50:30 +0200 | trainlag1602 | (~saroa@user/trainlag1602) (Ping timeout: 260 seconds) |
2021-10-22 16:50:47 +0200 | ubert | (~Thunderbi@178.165.203.151.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-22 16:51:34 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 252 seconds) |
2021-10-22 16:52:39 +0200 | <davean> | janus: no theres good reason its that date |
2021-10-22 16:53:22 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-10-22 17:00:46 +0200 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 258 seconds) |
2021-10-22 17:07:33 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) (Ping timeout: 265 seconds) |
2021-10-22 17:08:37 +0200 | mud | (~mud@user/kadoban) (Quit: quit) |
2021-10-22 17:10:51 +0200 | trainlag1602 | (~saroa@user/trainlag1602) |
2021-10-22 17:12:49 +0200 | mud | (~mud@user/kadoban) |
2021-10-22 17:14:16 +0200 | trainlag1602 | (~saroa@user/trainlag1602) (Remote host closed the connection) |
2021-10-22 17:20:34 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 17:21:57 +0200 | delipickle_ | (~delipickl@gateway/vpn/pia/delipickle) |
2021-10-22 17:22:45 +0200 | delipickle_ | (~delipickl@gateway/vpn/pia/delipickle) (Client Quit) |
2021-10-22 17:24:34 +0200 | delipickle | (~delipickl@097-086-022-157.res.spectrum.com) (Ping timeout: 260 seconds) |
2021-10-22 17:25:35 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-10-22 17:25:42 +0200 | NotIndonesian | (znc@Indonesians.are.sick.bnc.HUNTERS.thats.bad.mn) (Remote host closed the connection) |
2021-10-22 17:29:13 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-22 17:29:38 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-10-22 17:32:58 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-10-22 17:33:35 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-10-22 17:34:23 +0200 | <maerwald> | https://github.com/composewell/streamly/blob/master/docs/streamly-vs-async.md |
2021-10-22 17:34:29 +0200 | <maerwald> | hmm, I never tried to use streamly for async |
2021-10-22 17:34:52 +0200 | <maerwald> | apparently it's equipped for that |
2021-10-22 17:34:52 +0200 | Guest81 | (~Guest81@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-10-22 17:35:13 +0200 | <shapr> | davean: what is that good reason? |
2021-10-22 17:35:23 +0200 | <Guest81> | what is an idiomatic way to write a one-to-one map using only base? |
2021-10-22 17:35:25 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 17:36:08 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 17:36:18 +0200 | <Guest81> | a function (or whatever really) that can be ran on its inputs as well as its outputs |
2021-10-22 17:36:51 +0200 | <Rembane_> | Guest81: Data.Map twice, and swap keys and values for the second one |
2021-10-22 17:36:57 +0200 | <Guest81> | like an f and f^-1, somehow running my case/of in reverse ... I hope I'm making sense |
2021-10-22 17:37:58 +0200 | <merijn> | Guest81: Sounds like you mean an isomorphism? |
2021-10-22 17:38:08 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-22 17:38:39 +0200 | <merijn> | Guest81: And isomorphism is a pair of functions 'f' and 'g where "f(g(x)) = x" and "g(f(x)) = x" for all 'x' |
2021-10-22 17:38:40 +0200 | <Guest81> | yes! an isomorphism, objective function you name it. But I really don't want to add unecessary dependencies to my little project |
2021-10-22 17:38:56 +0200 | <Guest81> | bijective* |
2021-10-22 17:39:32 +0200 | <merijn> | I mean, you can just do "newtype Isomorphism a b = Isomorphism (a -> b, b -> a)"? |
2021-10-22 17:40:31 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 252 seconds) |
2021-10-22 17:40:36 +0200 | <Guest81> | I totally agree .. except it's overkill for me if I'm only using it for one function |
2021-10-22 17:41:03 +0200 | <merijn> | What's overkill? |
2021-10-22 17:41:11 +0200 | <Guest81> | how would swap keys and values on a Data.Map though? https://hackage.haskell.org/package/containers-0.6.5.1/docs/Data-Map.html |
2021-10-22 17:41:25 +0200 | <merijn> | You don't, and also, that's not in base :p |
2021-10-22 17:42:07 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:70bb:31e2:9b65:43) (Quit: WeeChat 2.8) |
2021-10-22 17:42:25 +0200 | <Guest81> | oh so I must've misunderstood what Rembane_ said |
2021-10-22 17:42:36 +0200 | son0p | (~ff@181.136.122.143) |
2021-10-22 17:43:08 +0200 | <merijn> | I mean, you can write a bunch of code that converts the Map to a list of tuples, swap the tuples and build a new map |
2021-10-22 17:46:55 +0200 | <davean> | shapr: thats 2400000 days from the Julian Day |
2021-10-22 17:47:02 +0200 | <davean> | er |
2021-10-22 17:47:07 +0200 | <davean> | shapr: thats 2400000.5 days from the Julian Day |
2021-10-22 17:47:36 +0200 | <davean> | It aligns it with the standard UTC day edge, and rescales it to the standard day magnitude |
2021-10-22 17:50:11 +0200 | <geekosaur> | janus, I'd also point out that the year starting on 1 Jan is actually fairly recent. like England used 25 Mar for a long time, and other places used other dates |
2021-10-22 17:50:25 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-10-22 17:50:46 +0200 | <davean> | geekosaur: well the Julian Day is actually Jan 1st |
2021-10-22 17:50:57 +0200 | <merijn> | And in some places it still doesn't start on 1 January :p |
2021-10-22 17:51:12 +0200 | <geekosaur> | the calendar came from rome, I'd not be surprised if 1 Jan did too |
2021-10-22 17:51:13 +0200 | <merijn> | Hell, it doesn't even start on the same gregorian date every year in some places |
2021-10-22 17:51:16 +0200 | <davean> | So the Julian calendar *is* Jan 1st aligned |
2021-10-22 17:51:31 +0200 | <davean> | and we're talking Julian days here |
2021-10-22 17:51:34 +0200 | <Rembane_> | Guest81: It's my fault, I hoped that Data.Map was in base, but it itsn't. :) |
2021-10-22 17:51:57 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) |
2021-10-22 17:52:57 +0200 | <janus> | % addUTCTime (-1) (UTCTime (toEnum minBound) 0) |
2021-10-22 17:52:57 +0200 | <yahb> | janus: -25252734927764696-04-21 23:59:59 UTC |
2021-10-22 17:53:55 +0200 | <janus> | i wonder if that is also valid given that it contains a day that can't be constructed from an enum.. hmm |
2021-10-22 17:54:22 +0200 | <merijn> | I mean the best solution is to just forget Enum exists >.> |
2021-10-22 17:54:29 +0200 | <merijn> | It's a deeply problematic and bad class >.> |
2021-10-22 17:54:44 +0200 | <merijn> | Just, like, never assume that toEnum does anything remotely sensible |
2021-10-22 17:54:52 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) (Remote host closed the connection) |
2021-10-22 17:54:53 +0200 | <janus> | but what is the better way to construct Day then? |
2021-10-22 17:55:08 +0200 | <davean> | Day? |
2021-10-22 17:55:25 +0200 | <merijn> | For what purpose? |
2021-10-22 17:55:44 +0200 | <davean> | pattern YearDay :: Year -> DayOfYear -> Day |
2021-10-22 17:56:03 +0200 | <merijn> | There's a number of function for constructing Days, yeah |
2021-10-22 17:56:27 +0200 | <janus> | how is YearDay used? not too familiar with patterns |
2021-10-22 17:56:47 +0200 | <merijn> | janus: Pattern synonyms are basically "fake" constructors |
2021-10-22 17:56:54 +0200 | econo | (uid147250@user/econo) |
2021-10-22 17:56:56 +0200 | <janus> | % :t YearDay |
2021-10-22 17:56:57 +0200 | <yahb> | janus: ; <interactive>:1:1: error: Data constructor not in scope: YearDay |
2021-10-22 17:57:01 +0200 | <merijn> | Allowing you to expose custom patterns you can match on |
2021-10-22 17:57:10 +0200 | <merijn> | janus: So you use it like a constructor |
2021-10-22 17:57:32 +0200 | <merijn> | "foo (YearDay year day) = .." "foo :: Day -> ..." |
2021-10-22 17:57:45 +0200 | <merijn> | Of "YearDay 2021 156" |
2021-10-22 17:58:09 +0200 | <janus> | but then that's deconstructing? why can't yahb see it? |
2021-10-22 17:58:52 +0200 | <janus> | davean: seems to me like the Day constructor isn't exposed. if that is what you suggested when you said "Day?" |
2021-10-22 17:59:07 +0200 | <davean> | janus: it is exposed via the pattern I offered |
2021-10-22 17:59:18 +0200 | <davean> | yahb is dumb? |
2021-10-22 18:00:22 +0200 | <janus> | ok, let's assume i have a local ghci session (much smarter than yahb, right? ;). how do i make a Day using YearDay? |
2021-10-22 18:00:51 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 18:01:33 +0200 | <merijn> | "YearDay 2021 156" done |
2021-10-22 18:02:13 +0200 | <merijn> | % import Data.Time.Calendar.OrdinalDate |
2021-10-22 18:02:13 +0200 | <yahb> | merijn: |
2021-10-22 18:02:20 +0200 | <merijn> | % YearDay 2021 156 |
2021-10-22 18:02:20 +0200 | <yahb> | merijn: ; <interactive>:74:1: error: Data constructor not in scope: YearDay :: t0 -> t1 -> t |
2021-10-22 18:02:30 +0200 | <merijn> | Ah, I guess it doesn't work for constructing |
2021-10-22 18:02:33 +0200 | pavonia | (~user@user/siracusa) |
2021-10-22 18:02:49 +0200 | <merijn> | I mean, there's also just: |
2021-10-22 18:03:00 +0200 | <merijn> | % fromOrdinalDate 2021 156 |
2021-10-22 18:03:00 +0200 | <yahb> | merijn: 2021-06-05 |
2021-10-22 18:03:17 +0200 | <janus> | but it says "bidirectional abstract consturctor". so i thought bidirectionality means construction/destruction |
2021-10-22 18:03:32 +0200 | <merijn> | janus: I mean, yahb might just have an old version of time |
2021-10-22 18:03:58 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-10-22 18:04:18 +0200 | <Hecate> | hi lbseale :) |
2021-10-22 18:04:24 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 258 seconds) |
2021-10-22 18:05:15 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-22 18:06:38 +0200 | <merijn> | Once I become a millionair I'll just pay someone to document my code so I don't have to do it myself >.> |
2021-10-22 18:06:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 18:07:01 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-22 18:07:13 +0200 | <janus> | ooh ok. this works: cabal repl -b time==1.11; :m +Data.Time.Calendar.OrdinalDate; :t case undefined of YearDay a b -> a |
2021-10-22 18:07:49 +0200 | <lbseale> | Hecate: salut |
2021-10-22 18:07:50 +0200 | <janus> | and 1.11 is from October 2020, so pretty new |
2021-10-22 18:08:18 +0200 | <janus> | i had somehow assumed that the feature would be available with the stock time on GHC 9, but that is not the case |
2021-10-22 18:08:36 +0200 | <davean> | ... a year old is new? |
2021-10-22 18:08:44 +0200 | <merijn> | davean: I mean, sure |
2021-10-22 18:09:12 +0200 | <janus> | if we call GHC 9 new, we must also call time 1.11 new ;) |
2021-10-22 18:09:15 +0200 | <davean> | But yes, YearDay is bidirectional |
2021-10-22 18:09:21 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 18:09:21 +0200 | <davean> | I wouldn't call GHC 9 new |
2021-10-22 18:09:25 +0200 | <merijn> | I would |
2021-10-22 18:09:35 +0200 | <merijn> | I'm not using it yet :p |
2021-10-22 18:09:38 +0200 | <dolio> | I'm still using 8. :þ |
2021-10-22 18:09:39 +0200 | <davean> | I'm working on moving to 9.2 |
2021-10-22 18:10:01 +0200 | <merijn> | dolio: Nothing wrong with 8.10 :p |
2021-10-22 18:11:50 +0200 | <davean> | If you haven't updated to 9.0 at this point, I'd think you'd just skip it |
2021-10-22 18:11:56 +0200 | max22- | (~maxime@2a01cb0883359800a17b4351977e7c2e.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-10-22 18:11:59 +0200 | <merijn> | davean: I probably will |
2021-10-22 18:12:11 +0200 | <dolio> | I have it installed. I just don't think I've used it. |
2021-10-22 18:12:17 +0200 | <davean> | GHC 9 wasn't a glorious release IMO |
2021-10-22 18:12:47 +0200 | <merijn> | I haven't installed it yet, because I haven't had time to update my personal projects yet (still need to migrate most of them away from Travis CI >.>) |
2021-10-22 18:12:52 +0200 | <dolio> | Skipping X.0 versions isn't such a bad idea in general. :) |
2021-10-22 18:13:16 +0200 | <davean> | dolio: I agree and 9.0 is quite skippable |
2021-10-22 18:13:17 +0200 | <merijn> | And the only "work" project I have will probably never get 9.x support, tbh |
2021-10-22 18:13:29 +0200 | <merijn> | Unless it happens to "Just Work (TM)" with minor bounds fiddling |
2021-10-22 18:13:57 +0200 | <davean> | EOL? |
2021-10-22 18:14:59 +0200 | <merijn> | davean: Well, assuming minimal procrastination from me tonight/this weekend, the thesis goes to the committee on Tuesday and seeing as no one's paying my, I've running a severe "fucks" deficit :p |
2021-10-22 18:15:21 +0200 | <davean> | so yes, EOL :-p |
2021-10-22 18:15:33 +0200 | <merijn> | Arguably it's been EOL since it started :p |
2021-10-22 18:16:46 +0200 | <davean> | There was still stuff to prove with it then |
2021-10-22 18:18:46 +0200 | <lbseale> | I have a ByteString that I am trying to pipe to a little shell program that takes input on stdin, and puts its output to stdout. When I call it with `createProcess`, it hangs and never finishes. How do I get it to finish? |
2021-10-22 18:18:48 +0200 | <davean> | merijn: what is the thesis? |
2021-10-22 18:18:51 +0200 | <merijn> | Actually, it's only fairly recently reached the point I can *start* proving stuff ;) |
2021-10-22 18:19:03 +0200 | <merijn> | davean: But in classic phd fashion, that happened after money ran out |
2021-10-22 18:19:21 +0200 | wonko | (~wjc@62.115.229.50) |
2021-10-22 18:19:21 +0200 | <lbseale> | I don't understand unix pipes well enough to know what is going on with it |
2021-10-22 18:19:46 +0200 | <geekosaur> | lbseals, do you ever close the pipe handle? |
2021-10-22 18:19:47 +0200 | <merijn> | davean: Ostensibly graph processing on GPUs, in practice it's more about "jesus, everyone in empirical computer science is shite at science, so let me figure out how to do that first" :p |
2021-10-22 18:19:55 +0200 | <geekosaur> | lbseale ^^ |
2021-10-22 18:20:18 +0200 | <merijn> | geekosaur: 10 dollar says you're right ;) |
2021-10-22 18:20:38 +0200 | <geekosaur> | programs fed through pipes buffer their output so it's just waiting for more data, probably |
2021-10-22 18:20:38 +0200 | <lbseale> | geekosaur: I have tried that, but it seems like it never gets past the line where it's reading from stdOut |
2021-10-22 18:21:10 +0200 | <lbseale> | I'm not sure which ByteString function to use to read it |
2021-10-22 18:21:11 +0200 | <merijn> | lbseale: code? |
2021-10-22 18:21:25 +0200 | mei | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-10-22 18:21:33 +0200 | <geekosaur> | oh, you're trying to do open3-type stuff. you need either the writer or the reader in a thread if either the input or the output is larger than the system pipe buffer, because it'll hang otherwise |
2021-10-22 18:21:47 +0200 | <geekosaur> | you need to read and write at the same time to avoid deadlock |
2021-10-22 18:22:13 +0200 | <lbseale> | https://paste.tomsmeding.com/0Ko5iJuT |
2021-10-22 18:22:23 +0200 | <lbseale> | this represents every hack I tried at the end of the day yesterday |
2021-10-22 18:22:57 +0200 | <lbseale> | I can't remember what I did, but I also got it to do something where it ran out of memory |
2021-10-22 18:23:04 +0200 | <merijn> | And the shell script? |
2021-10-22 18:23:46 +0200 | <merijn> | I mean, if the output is huge, it might be blocked on writing output |
2021-10-22 18:23:47 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2021-10-22 18:23:52 +0200 | <lbseale> | it's this thing: https://metacpan.org/dist/JSON-PP/view/bin/json_pp |
2021-10-22 18:24:11 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-22 18:24:31 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 252 seconds) |
2021-10-22 18:24:44 +0200 | <merijn> | oh |
2021-10-22 18:24:45 +0200 | <lbseale> | I know that I could probably use aeson-pretty but it will be a hassle for me to get it installed and I'm curious to figure this out now |
2021-10-22 18:24:53 +0200 | <merijn> | You should close stdIn before reading from stdOut |
2021-10-22 18:24:59 +0200 | <lbseale> | aha! |
2021-10-22 18:25:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-22 18:25:07 +0200 | <merijn> | Fat chance the process won't produce output until it finishes reading |
2021-10-22 18:25:20 +0200 | <merijn> | If you're blocked reading the process blocks indefinitely for more input |
2021-10-22 18:25:37 +0200 | <merijn> | So, effectively, you're not close stdin :p |
2021-10-22 18:25:42 +0200 | <merijn> | *closing |
2021-10-22 18:25:44 +0200 | <lbseale> | makes sense |
2021-10-22 18:26:44 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-22 18:27:37 +0200 | <lbseale> | heyyy that worked! Thanks merijn ! |
2021-10-22 18:31:16 +0200 | <lbseale> | merijn: do I need to close stdOut after? Or do some other cleanup action? |
2021-10-22 18:31:35 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) (Ping timeout: 264 seconds) |
2021-10-22 18:32:23 +0200 | <Guest81> | I'm not too sure how class instances work but can I override them? |
2021-10-22 18:32:33 +0200 | <Guest81> | something like Pretty here: |
2021-10-22 18:32:33 +0200 | <geekosaur> | Guest81, no |
2021-10-22 18:32:34 +0200 | <Guest81> | https://hackage.haskell.org/package/prettyprinter-1.7.1/docs/Prettyprinter.html |
2021-10-22 18:32:41 +0200 | <merijn> | Guest81: You can't |
2021-10-22 18:33:22 +0200 | <Guest81> | So if pretty Bool is already defined, how could I "customize" it for my formatter? |
2021-10-22 18:33:35 +0200 | <Guest81> | suppose I want pretty True == "true" |
2021-10-22 18:33:48 +0200 | <Guest81> | I may be missing something |
2021-10-22 18:35:30 +0200 | <merijn> | Use a newtype of write your own function to serialise it that doesn't use the Pretty instance |
2021-10-22 18:35:56 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-22 18:36:08 +0200 | <Guest81> | but how do I lift whatever I end up with into Doc ann ? |
2021-10-22 18:36:15 +0200 | <merijn> | Like, you don't *have* to use the Pretty instance, you can also do 'case myBool of True -> "true"; False -> "false"' |
2021-10-22 18:36:16 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-22 18:36:57 +0200 | <merijn> | Doc has an OverloadedStrings instance |
2021-10-22 18:38:02 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-10-22 18:38:38 +0200 | <Guest81> | that works, could I also use viaShow? As that uses Strings, I think it would hurt prettyprinter as it was made to only use Text |
2021-10-22 18:39:12 +0200 | <merijn> | But viaShow will to the same thing as just "pretty" for Bool? |
2021-10-22 18:39:17 +0200 | <merijn> | > show True |
2021-10-22 18:39:20 +0200 | <lambdabot> | "True" |
2021-10-22 18:39:40 +0200 | <Guest81> | oh .. I can't override Show for Bool either, yikes! |
2021-10-22 18:40:34 +0200 | <Guest81> | um using OverloadedStrings only works if I write literals, is that right? |
2021-10-22 18:41:06 +0200 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) |
2021-10-22 18:41:07 +0200 | <Guest81> | I can't just convert a Text to Doc ... |
2021-10-22 18:41:29 +0200 | <merijn> | I mean, you can just do "pretty" on Text |
2021-10-22 18:41:40 +0200 | <merijn> | Which will just take it "as-is" |
2021-10-22 18:43:20 +0200 | <Guest81> | so I could just do `case boolean of True -> pretty "true" ...` |
2021-10-22 18:43:27 +0200 | <merijn> | yeah |
2021-10-22 18:43:46 +0200 | <Guest81> | that's enough flexibility for me :^) |
2021-10-22 18:44:29 +0200 | <Guest81> | I can finally scrap my crappy Show instances |
2021-10-22 18:45:25 +0200 | CiaoSen | (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-22 18:45:59 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 18:47:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-22 18:48:49 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-22 18:49:44 +0200 | emf | (~emf@2620:10d:c090:400::5:bb17) |
2021-10-22 18:50:45 +0200 | aa | (~douglasco@200.146.85.128.static.gvt.net.br) (Quit: Leaving) |
2021-10-22 18:53:26 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-22 18:53:46 +0200 | <janus> | Guest81: you can also make newtypes and then make your instances on them |
2021-10-22 18:53:59 +0200 | <janus> | ah right, merijn said that at 18:35 |
2021-10-22 18:54:00 +0200 | mbuf | (~Shakthi@136.185.83.238) (Quit: Leaving) |
2021-10-22 18:54:29 +0200 | <Guest81> | janus: oh I haven't thought of that, and I guess I didn't understand what merijn meant by it |
2021-10-22 18:54:34 +0200 | <Guest81> | very sneaky |
2021-10-22 18:55:10 +0200 | <janus> | Guest81: consider why there are Sum and Product newtypes |
2021-10-22 18:55:21 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) |
2021-10-22 18:56:53 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-10-22 18:57:11 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 19:04:22 +0200 | <shapr> | Does anyone have a good way to handle haddock errors for an automated hoogle rebuild? |
2021-10-22 19:06:08 +0200 | jkaye | (~jkaye@2601:281:8300:7530:8275:c2bd:871b:678c) |
2021-10-22 19:06:57 +0200 | <c_wraith> | another day, another wish b -> (a -> [a] -> b) -> [a] -> b was in base |
2021-10-22 19:10:56 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
2021-10-22 19:17:47 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) (Ping timeout: 264 seconds) |
2021-10-22 19:18:58 +0200 | spopooi | (~spopooi@2804:431:cfea:8190:1e39:18d9:9d9e:69d4) |
2021-10-22 19:24:09 +0200 | pfurla_ | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-10-22 19:24:37 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 19:26:45 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 265 seconds) |
2021-10-22 19:26:55 +0200 | pfurla | (~pfurla@216.151.180.27) (Ping timeout: 260 seconds) |
2021-10-22 19:26:57 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-10-22 19:26:57 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-10-22 19:26:57 +0200 | turlando | (~turlando@user/turlando) |
2021-10-22 19:27:13 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds) |
2021-10-22 19:27:55 +0200 | <dsal> | Is there an easy way to see what all amazing things I'm missing in ghc by being on an older version? |
2021-10-22 19:28:43 +0200 | <dsal> | I generally dislike smaller numbers but I feel like quantifying that might be good. :) |
2021-10-22 19:29:03 +0200 | turlando | (~turlando@user/turlando) (Read error: Connection reset by peer) |
2021-10-22 19:29:07 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-10-22 19:29:34 +0200 | heath1 | heath |
2021-10-22 19:30:37 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-10-22 19:30:37 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-10-22 19:30:37 +0200 | turlando | (~turlando@user/turlando) |
2021-10-22 19:31:20 +0200 | <jkaye> | What version are you using? |
2021-10-22 19:31:24 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) |
2021-10-22 19:33:22 +0200 | <dsal> | 8.4.4 |
2021-10-22 19:33:37 +0200 | <dsal> | Some older nix snapshot |
2021-10-22 19:36:05 +0200 | piele_ | piele |
2021-10-22 19:37:49 +0200 | <jkaye> | Lots of changes from there to current, but the biggest will be in the release note highlights for 9.0.1, which you can find here: https://downloads.haskell.org/ghc/9.0.1-rc1/docs/html/users_guide/9.0.1-notes.html |
2021-10-22 19:40:03 +0200 | <c_wraith> | and I'd recommend not using 9.0.1. 8.10.7 is in better shape. 9.0 has a lot of bugs that we're apparently just waiting on 9.2 to get fixed |
2021-10-22 19:40:31 +0200 | coot | (~coot@37.30.49.107.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-22 19:41:18 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 19:41:58 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 19:44:06 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-22 19:45:35 +0200 | Psybur | (~Psybur@mobile-166-170-29-82.mycingular.net) |
2021-10-22 19:46:11 +0200 | <geekosaur> | 9.2.1 currently has a codegen bug on ARM, but as keeps happening to it, it's raised even bigger issues |
2021-10-22 19:46:44 +0200 | <geekosaur> | they're currently worried that they will have to scrap and redo all the sub-word codegen |
2021-10-22 19:48:56 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 19:49:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) (Remote host closed the connection) |
2021-10-22 19:52:09 +0200 | <c_wraith> | ah, so that's what's holding up 9.2 |
2021-10-22 19:52:44 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-10-22 19:53:54 +0200 | <geekosaur> | sub-word support is a huge change to ghc, it's always been word-based |
2021-10-22 19:54:23 +0200 | <geekosaur> | but m1 native codegen needs proper sub-word support |
2021-10-22 19:54:25 +0200 | <c_wraith> | is this like sub-word field sizes in data? |
2021-10-22 19:54:50 +0200 | <geekosaur> | yeh |
2021-10-22 19:55:04 +0200 | <c_wraith> | uh-oh, maybe field order important! |
2021-10-22 19:55:05 +0200 | <geekosaur> | affects all FFI etc. |
2021-10-22 19:55:08 +0200 | <c_wraith> | *making |
2021-10-22 19:55:11 +0200 | <hololeap> | extractKnown t = case extract t of |
2021-10-22 19:56:05 +0200 | <hololeap> | how can I use LambdaCase here to avoid naming `t`? |
2021-10-22 19:56:30 +0200 | <monochrom> | Can't. Consider pattern guards or view patterns. |
2021-10-22 19:56:44 +0200 | <c_wraith> | you'd need to put the entire case in parens to be like (\case .....) . extract |
2021-10-22 19:56:57 +0200 | <geekosaur> | yeh, I was thinking becheaty with a vuiew pattern to do the extract and then you can lambdacase |
2021-10-22 19:57:05 +0200 | <geekosaur> | or that |
2021-10-22 19:57:52 +0200 | <c_wraith> | putting the whole thing in parens is the worst option available. :P |
2021-10-22 19:58:30 +0200 | fusion86 | (~fusion@2a02-a44c-e6e5-1-2ff7-7242-c0bf-93e9.fixed6.kpn.net) |
2021-10-22 19:59:51 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-10-22 19:59:56 +0200 | <c_wraith> | I used a view pattern today. It felt weird, but it's part of the standard now. I should get over it. |
2021-10-22 20:00:05 +0200 | <c_wraith> | err. pattern guard. |
2021-10-22 20:00:08 +0200 | <c_wraith> | not view pattern |
2021-10-22 20:00:21 +0200 | <dsal> | Every time I've used a view pattern, it didn't seem to make anything really better. |
2021-10-22 20:00:32 +0200 | <c_wraith> | view patterns are clearly awesome |
2021-10-22 20:00:39 +0200 | <c_wraith> | pattern guards are the sketchy ones |
2021-10-22 20:01:01 +0200 | <dsal> | I use pattern guards a lot. :) |
2021-10-22 20:01:03 +0200 | <c_wraith> | well... view patterns when combined with pattern synonyms |
2021-10-22 20:01:24 +0200 | <dsal> | Oh. Yeah, just doing them explicitly usually makes things that you could just as easily make without. |
2021-10-22 20:01:28 +0200 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2021-10-22 20:01:41 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-10-22 20:01:50 +0200 | <fusion86> | Hey all, I once again come to seek wisdom. Why some something like this not get caught by the compiler/linter? https://paste.tomsmeding.com/JDBcANE1 |
2021-10-22 20:02:19 +0200 | <c_wraith> | pattern guards just make me sad because they have weird scoping rules. |
2021-10-22 20:03:08 +0200 | <fusion86> | And is there a way to enforce a function to only accept a 'RecordA' instance, and not a 'RecordB'? Because when you just take a 'Thing' you could get either of those. |
2021-10-22 20:03:08 +0200 | <c_wraith> | fusion86: I'd be all for forbidding record syntax with multiple constructors, but I don't think it's a thing that's ever seriously been considered |
2021-10-22 20:04:13 +0200 | <fusion86> | Because I used that syntax in my game project like this. Would it be better to write it in another way then? https://paste.tomsmeding.com/QfpsgAy9 |
2021-10-22 20:04:15 +0200 | <dsal> | https://gitlab.haskell.org/ghc/ghc/-/issues/7169 left me a bit confused. |
2021-10-22 20:04:19 +0200 | <c_wraith> | fusion86: the underlying problem is caused by making RecordA and RecordB the same type |
2021-10-22 20:04:57 +0200 | <c_wraith> | fusion86: separate them into their own types, then have a sum type over that. Sure it adds an extra level of constructor, but it lets you actually express what you mean |
2021-10-22 20:05:18 +0200 | <dsal> | You could also just not name them. |
2021-10-22 20:05:24 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-10-22 20:05:52 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-10-22 20:05:58 +0200 | <c_wraith> | dsal: that doesn't help with the follow-up asking how to say something should only accept a RecordA |
2021-10-22 20:06:30 +0200 | <dsal> | Oh, right. You limit what types things can accept by making them different types. :) |
2021-10-22 20:07:07 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-22 20:07:08 +0200 | <dsal> | The partial record thing is a bit of an annoyance. |
2021-10-22 20:08:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-22 20:08:50 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-10-22 20:08:56 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 20:09:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 20:09:49 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2021-10-22 20:10:27 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-22 20:10:39 +0200 | <monochrom> | Do you really have functions, at the design level (so, not at the detailed coding level), that really says it doesn't want RecordB. |
2021-10-22 20:11:41 +0200 | <monochrom> | Because at this point I don't trust that this is not the XY problem of "the only reason I'm asking is because I want to use a field name as a function and I want it total". |
2021-10-22 20:12:20 +0200 | <monochrom> | which is an artifact of a flawed way of coding, not a consequence of the design. |
2021-10-22 20:13:46 +0200 | <monochrom> | If your have two cases and they have fundamentally disjoint field names, such as in Scene... |
2021-10-22 20:14:23 +0200 | <monochrom> | I can respect the field names serving a self-documentation purpose. I mean "data T = C1 Int Int Int | C2 Int Int Int Int Int Int" is very unhelpful. |
2021-10-22 20:15:05 +0200 | <monochrom> | But then I can't understand in what sense "field names are function names" is meaningful. |
2021-10-22 20:15:08 +0200 | <fusion86> | Not really I think. I was writing a renderPlayer function which takes both a 'World' and a 'Player' type. But the 'Gameplay' world has a player inside it, so I started thinking what would happen if I used the record accessor function on 'World' type which does not have a player. |
2021-10-22 20:15:22 +0200 | peterhil | (~peterhil@mobile-access-2e846e-36.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-10-22 20:15:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-22 20:15:52 +0200 | <fusion86> | At the bottom of this link https://medium.com/@willkurt/why-sum-types-matter-in-haskell-ba2c1ab4e372 is that the sum types you were talking about? |
2021-10-22 20:15:53 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 258 seconds) |
2021-10-22 20:16:12 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 20:16:36 +0200 | <fusion86> | Honestly most of my field names are there for self-documentation purposes though, is that a bad thing? |
2021-10-22 20:16:47 +0200 | <hololeap> | > I was thinking be cheaty with a view pattern to do the extract and then you can lambdacase -- geekosaur, can you show me an example of this? |
2021-10-22 20:17:05 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2021-10-22 20:17:25 +0200 | tfeb | (~tfb@88.98.95.237) |
2021-10-22 20:18:01 +0200 | <merijn> | fusion86: Sounds like you want -XNoFieldSelectors which should be in 9.2, I think? |
2021-10-22 20:18:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 20:18:34 +0200 | <merijn> | fusion86: Then you can reuse fieldnames without clashes, because it eliminates the implicit functions |
2021-10-22 20:18:59 +0200 | <merijn> | -XNoFieldSelectors is one of the few extensions I'm actually excited about, unlike stuff like LinearHaskell :p |
2021-10-22 20:19:45 +0200 | <fusion86> | And in the rare case where I would want to have such a function I just implement it myself? Or is there some magic for that too? |
2021-10-22 20:19:45 +0200 | <hololeap> | this actually works, although it may trigger nerd rage in some individuals: http://sprunge.us/42nMnn |
2021-10-22 20:20:12 +0200 | <merijn> | fusion86: You just implement it yourself, yeah |
2021-10-22 20:20:21 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-22 20:20:34 +0200 | <dsal> | hololeap: I'm not sure that introduces clarity. :) |
2021-10-22 20:20:41 +0200 | <geekosaur> | extractKnown (extract t -> t') = \case ... -- guess it's not actuallyt an improvement :( |
2021-10-22 20:20:56 +0200 | <merijn> | You could rewrite that to just use regular case of and it'd be infinitely easier |
2021-10-22 20:21:19 +0200 | <monochrom> | geekosaur: "this is getting out of hand. now there are two of them!" |
2021-10-22 20:21:51 +0200 | <dsal> | Isn't it just `extractKnown (extract -> t) = ...` ? |
2021-10-22 20:22:02 +0200 | <dsal> | You still have `t`, but you no longer have to call `extract` on it. |
2021-10-22 20:22:05 +0200 | <geekosaur> | maybe? |
2021-10-22 20:22:09 +0200 | <merijn> | monochrom: We should replace more educational material with memes :p |
2021-10-22 20:22:12 +0200 | <monochrom> | failing to eliminate t, now we have t' too, and Star Wars episode I |
2021-10-22 20:22:31 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) |
2021-10-22 20:22:47 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds) |
2021-10-22 20:24:07 +0200 | Guest81 | (~Guest81@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-10-22 20:24:45 +0200 | <shapr> | Is there a recipe for building haddock + hoogle in Jenkins (or other CI) and then emitting the results onto a server where I can run the hoogle server? |
2021-10-22 20:25:03 +0200 | <agumonkey> | anybody knows about naperian functors ? |
2021-10-22 20:25:33 +0200 | <merijn> | I'm gonna go with "yes" |
2021-10-22 20:25:51 +0200 | <hololeap> | also, just want to give a shout-out to the hasklig font. cool stuff :) |
2021-10-22 20:26:30 +0200 | tfeb | (~tfb@88.98.95.237) (Quit: died) |
2021-10-22 20:26:49 +0200 | <agumonkey> | merijn: I've been trying to read about them but couldn't find "easy" enough material |
2021-10-22 20:27:00 +0200 | <agumonkey> | if you know some, feel free to slap me with it like a large truit |
2021-10-22 20:27:22 +0200 | <merijn> | Oh, I've never heard about them, but I just assume someone knows about those ;) |
2021-10-22 20:27:22 +0200 | <dolio> | They're probably another word someone invented for representable functors. |
2021-10-22 20:27:51 +0200 | <c_wraith> | yes, they're the same as representable functors |
2021-10-22 20:27:56 +0200 | <agumonkey> | yeah one blog mentioned they were derived from repr |
2021-10-22 20:28:07 +0200 | <agumonkey> | merijn: I found about it on a book by gibbons and hinze IIRC |
2021-10-22 20:28:18 +0200 | <hololeap> | @hackage naperian |
2021-10-22 20:28:18 +0200 | <lambdabot> | https://hackage.haskell.org/package/naperian |
2021-10-22 20:28:26 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 260 seconds) |
2021-10-22 20:28:26 +0200 | <hololeap> | "Efficient representable functors" |
2021-10-22 20:28:38 +0200 | <agumonkey> | so i'm not on a quest for repr functors |
2021-10-22 20:28:40 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-10-22 20:29:10 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-10-22 20:31:10 +0200 | <agumonkey> | man functors are fascinating |
2021-10-22 20:31:19 +0200 | <agumonkey> | i get barely nothing but I like adjoint functors |
2021-10-22 20:31:28 +0200 | MQ-17J | (~MQ-17J@2607:fb90:47:70f6:3994:460d:fb23:b675) |
2021-10-22 20:31:31 +0200 | notzmv | (~zmv@user/notzmv) |
2021-10-22 20:33:21 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-10-22 20:37:53 +0200 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) |
2021-10-22 20:39:43 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 20:44:30 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-22 20:44:59 +0200 | neo3 | (~neo3@cpe-292712.ip.primehome.com) |
2021-10-22 20:45:36 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-10-22 20:46:35 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-10-22 20:50:27 +0200 | <fusion86> | Is it possible to use GHC 9.2 with stack? The latest stackage snapshot only goes up to 9.0.1 |
2021-10-22 20:50:47 +0200 | <merijn> | No clue |
2021-10-22 20:50:56 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-22 20:51:40 +0200 | timCF | (~timCF@m91-129-111-87.cust.tele2.ee) |
2021-10-22 20:52:20 +0200 | <jkaye> | Looks like even nightly is on 9.0.1, so not that I am aware of |
2021-10-22 20:52:37 +0200 | <geekosaur> | there are ways to force stack to use 9.2 prerelease. it would then be on you to constrain versions to get a functioning "resolver" |
2021-10-22 20:52:59 +0200 | <jkaye> | geekosaur: how would you do something like that? Mostly just interested |
2021-10-22 20:53:14 +0200 | <geekosaur> | I would assume fpcomplete is waiting for a working 9.2.1 release |
2021-10-22 20:53:34 +0200 | <geekosaur> | since currently there are only prereleases and various of those have problems |
2021-10-22 20:55:07 +0200 | <geekosaur> | I'm not a stack user so I can't give details off the top of my head but there's a command line option and corresponding stack.yaml entry to specify a compiler which in this case would be 9.2.0.<date> |
2021-10-22 20:55:30 +0200 | <geekosaur> | I don't recall how you constrain versions to get packages that willl work with that compiler |
2021-10-22 20:57:09 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-22 20:57:29 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 20:58:45 +0200 | aegon | (~mike@174.127.249.180) |
2021-10-22 20:59:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-10-22 21:00:18 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-10-22 21:01:33 +0200 | <fusion86> | In case anyone is interested, I used this config to get it 'working' https://raw.githubusercontent.com/DanBurton/stack-setup-info-gen/master/output/stack-ghc-9.2.1-rc1… |
2021-10-22 21:01:47 +0200 | <fusion86> | And with 'working' in mean that GHC works but all my dependencies are rip |
2021-10-22 21:02:05 +0200 | <fusion86> | But that's a problem for future me. Anyway, thanks for all the help with all my questions :) |
2021-10-22 21:03:02 +0200 | ec_ | (~ec@gateway/tor-sasl/ec) |
2021-10-22 21:04:41 +0200 | fusion86 | (~fusion@2a02-a44c-e6e5-1-2ff7-7242-c0bf-93e9.fixed6.kpn.net) (Quit: Leaving) |
2021-10-22 21:06:09 +0200 | spopooi | (~spopooi@2804:431:cfea:8190:1e39:18d9:9d9e:69d4) (Remote host closed the connection) |
2021-10-22 21:08:00 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-10-22 21:09:16 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-22 21:09:35 +0200 | max22- | (~maxime@2a01cb088335980063b7aac9e60f4864.ipv6.abo.wanadoo.fr) |
2021-10-22 21:14:31 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Remote host closed the connection) |
2021-10-22 21:14:43 +0200 | benin3 | (~benin@183.82.207.116) |
2021-10-22 21:15:14 +0200 | Null_A | (~null_a@2601:645:8700:2290:a891:322d:b92c:f184) (Remote host closed the connection) |
2021-10-22 21:15:49 +0200 | Null_A | (~null_a@2601:645:8700:2290:6cb0:bf84:22bf:3285) |
2021-10-22 21:16:55 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2021-10-22 21:17:10 +0200 | benin | (~benin@183.82.207.116) (Ping timeout: 260 seconds) |
2021-10-22 21:17:10 +0200 | benin3 | benin |
2021-10-22 21:18:18 +0200 | <awpr> | crowdsourcing time again: with type-level naturals, it's natural (...) to do induction on them as if they were Peano numbers. does anyone know of a meaningful use for type-level _integers_? would they be the subject of some useful form of induction? if so, what form? |
2021-10-22 21:21:56 +0200 | <ski> | agumonkey : perhaps the "What is a Naperian container?" by Peter G. Hancock in 2005-06-19 and "The universal property of logarithms" by Neil Ghani (via Hancock) in 2005-08-02 posts, both accessible at "Container Types" (blag) <http://sneezy.cs.nott.ac.uk/containers/blog/>, could be of some interest ? |
2021-10-22 21:22:56 +0200 | <ski> | agumonkey : er, sorry. the link should be <https://web.archive.org/web/20161104231529/http://sneezy.cs.nott.ac.uk/containers/blog/> |
2021-10-22 21:23:43 +0200 | <awpr> | e.g. would there be cases where you'd want to look at the sign and count towards a base case of zero? would there be cases where you'd always want to recurse on the successor (resp. predecessor) regardless of the relation to zero? count down to a negated power of two and terminate there? or is there just no important form of induction on integers? |
2021-10-22 21:24:19 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) |
2021-10-22 21:25:27 +0200 | <ski> | awpr : not sure what the difference between the "look at the sign and count towards a base case of zero" and "recurse on the successor (resp. predecessor) regardless of the relation to zero" was ? |
2021-10-22 21:25:52 +0200 | <awpr> | count towards zero is either the predecessor or successor depending on sign |
2021-10-22 21:26:13 +0200 | <awpr> | always the successor counts towards +infinity, and always the predecessor counts towards -infinity |
2021-10-22 21:27:01 +0200 | <awpr> | (the latter two are weird, because they don't terminate) |
2021-10-22 21:28:29 +0200 | <ski> | integers are "normally" defined as a quotient (grothendieck group) -- iow, you keep a pair of a credit/"positive" and a debit/"negative" part, and identify two pairs when "they cancel to the same" |
2021-10-22 21:28:56 +0200 | <awpr> | indeed. it's a bit clunky to use that in Haskell though, especially at the type level |
2021-10-22 21:29:18 +0200 | <ski> | oic |
2021-10-22 21:29:43 +0200 | <awpr> | gotta normalize by performing subtraction before you can ask anything meaningful about the values, and it's harder to make things abstract at type level |
2021-10-22 21:29:52 +0200 | burnsidesLlama | (~burnsides@dhcp168-036.wadham.ox.ac.uk) (Ping timeout: 258 seconds) |
2021-10-22 21:30:08 +0200 | <ski> | you can do computations without normalizing all the time. e.g. (order) comparision |
2021-10-22 21:31:43 +0200 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) (Quit: Leaving) |
2021-10-22 21:31:45 +0200 | <awpr> | so `compare (x - y) (z - w) = compare @Nat (x + w) (z + y)`? |
2021-10-22 21:31:54 +0200 | <ski> | yes |
2021-10-22 21:32:16 +0200 | <awpr> | ok, that representation might be more usable than I thought |
2021-10-22 21:32:25 +0200 | <ski> | (also negation, addition, subtraction, multiplication, &c.) |
2021-10-22 21:32:30 +0200 | <awpr> | it's still a bit awkward that `x == y` doesn't imply `x ~ y` |
2021-10-22 21:32:42 +0200 | <awpr> | right, arithmetic is easily done without normalizing |
2021-10-22 21:33:14 +0200 | <awpr> | the question still remains of what the use-case might be; what would one actually use them for after all the arithmetic is done? |
2021-10-22 21:33:48 +0200 | <ski> | hm, oh, i missed that part of your question |
2021-10-22 21:33:49 +0200 | <awpr> | like, with naturals, you can make fixed vectors, complete binary trees, finite set types, etc. |
2021-10-22 21:34:07 +0200 | <ski> | repetitions of an invertable transformation ? |
2021-10-22 21:34:19 +0200 | <awpr> | oh nice |
2021-10-22 21:34:35 +0200 | <awpr> | hmm, but that seems equally well served by value-level integers |
2021-10-22 21:34:56 +0200 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-10-22 21:35:02 +0200 | <awpr> | I guess if you have an invertable type-level transformation somehow, but I've never seen such a thing |
2021-10-22 21:35:12 +0200 | <ski> | i guess you could do free abelian group on some generators, by associating an integer with each generator |
2021-10-22 21:35:21 +0200 | arkeet | (arkeet@moriya.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-22 21:35:49 +0200 | <ski> | yea, i'm not sure where it'd reasonably come up, on the type level |
2021-10-22 21:36:34 +0200 | arkeet | (arkeet@moriya.ca) |
2021-10-22 21:37:01 +0200 | <awpr> | maybe one of the reasons this seems weird is: most of the ways you'd use naturals is to make products or natural powers of things, but negative numbers would lead that into quotients or negative powers, and Haskell doesn't really have those in its type vocabulary |
2021-10-22 21:40:50 +0200 | agumonkey | (~user@88.160.31.174) (Remote host closed the connection) |
2021-10-22 21:45:45 +0200 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 260 seconds) |
2021-10-22 21:45:46 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 252 seconds) |
2021-10-22 21:47:28 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 252 seconds) |
2021-10-22 21:47:37 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2021-10-22 21:48:42 +0200 | <awpr> | context: I've got https://github.com/awpr/dependent-literals/tree/gamma_kinds, and I sort of just cargo-culted in the idea that it should support negative integers, but I'm realizing a) the current representation is unwieldy, b) the negative numbers are especially unwieldy and make naturals more complicated, c) I've never really used them, and d) I can't even figure out how to contrive a use for them |
2021-10-22 21:49:49 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2021-10-22 21:49:49 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Remote host closed the connection) |
2021-10-22 21:50:07 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2021-10-22 21:51:30 +0200 | <awpr> | and e) lazy binary naturals seem to work pretty well (so far), but generalizing it to integers by adding a constructor for negatives is awkward: addition can't be lazy because the top-level sign constructor depends on the entire operands. negabinary seems promising, but then the question is... why? should I bother? |
2021-10-22 21:53:48 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-22 21:55:13 +0200 | MQ-17J | (~MQ-17J@2607:fb90:47:70f6:3994:460d:fb23:b675) (Read error: Connection reset by peer) |
2021-10-22 21:56:00 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-22 21:59:26 +0200 | jgeerds | (~jgeerds@55d40de2.access.ecotel.net) |
2021-10-22 22:01:05 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-22 22:02:20 +0200 | <dminuoso> | merijn: Re statically linking glibc. I absolutely loathe the part that if you rely on nss or iconv, you need to dynamically link against glibc still, and it better be the same version.. |
2021-10-22 22:02:40 +0200 | <koz> | Does anyone know which of the GHC plugin interfaces (as documented here: https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/extending_ghc.html#compiler-plugins) the record-dot-preprocessor plugin uses? |
2021-10-22 22:03:20 +0200 | <ski> | awpr : hmm .. i suppose maybe one might want slices of such vectors, keeping the index subrange .. and then, perhaps also want to generalize and support index ranges including negatives ? |
2021-10-22 22:03:47 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-10-22 22:04:52 +0200 | <dminuoso> | And neither is necessarily easy to control, especially since NSS is likely used if anything of it uses getaddrinfo, which is more than likely. |
2021-10-22 22:05:31 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 258 seconds) |
2021-10-22 22:05:59 +0200 | evocatus | (~evocatus@84.51.113.13) |
2021-10-22 22:06:47 +0200 | <geekosaur> | also looking up users and groups, which is done by more than just network programs |
2021-10-22 22:07:02 +0200 | <awpr> | ski: interesting, like the Python notion of negative indices counting back from the end? |
2021-10-22 22:07:12 +0200 | juhp | (~juhp@128.106.188.220) |
2021-10-22 22:08:24 +0200 | <awpr> | is there a reason to want a slice 2..4 to be a different type from a slice 3..5? or even more questionable, 2..4 of a 4-vector vs. -2..0 of a 4-vector? |
2021-10-22 22:10:14 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb93c8c758eae23fe552.dip0.t-ipconnect.de) |
2021-10-22 22:10:41 +0200 | <ski> | awpr : i was just thinking of stuff like `listArray (-4,4) [i^3 | i <- range (-4,4)]' |
2021-10-22 22:11:21 +0200 | <awpr> | oh, interesting, a generalized vector with indices being a subset of some numeric type |
2021-10-22 22:12:14 +0200 | <ski> | awpr : not sure. one could perhaps imagine an operation on a sequence with indices `a .. b-1' together with one with `b .. c - 1', combining them into one with `a .. c-1' |
2021-10-22 22:12:36 +0200 | <ski> | well, a contiguous subset, for the slice idea |
2021-10-22 22:12:53 +0200 | <ski> | (one could perhaps also imagine higher dimensional stuff ..) |
2021-10-22 22:13:43 +0200 | <awpr> | yeah, I guess this generalizes to: when you start getting into implementing refinement types, then integers start to make sense at the type level whenever the value level involves integers |
2021-10-22 22:14:04 +0200 | <ski> | (or perhaps one could allow other strides, hmm ..) |
2021-10-22 22:14:07 +0200 | ski | . o O ( "Multi-dimensional array views for systems programmers" by pervognsen (Per Vognsen) in 2019-01-20(?) - 2019-04-30 at <https://gist.github.com/pervognsen/0e1be3b683d62b16fd81381c909bf67e> ) |
2021-10-22 22:14:22 +0200 | <awpr> | ooh time to name-drop https://hackage.haskell.org/package/orthotope |
2021-10-22 22:14:56 +0200 | <awpr> | in that, though, strides are only ever value-level, it's only the bounds that are (sometimes) type-level |
2021-10-22 22:16:02 +0200 | <awpr> | this seems like good enough justification that I shouldn't paint things into a corner where signed numbers are ruled out, but maybe it's fine to leave them as "TODO" |
2021-10-22 22:17:45 +0200 | <awpr> | it might be profitable to have the main class be `HasNaturalLiterals a`, and then (optionally) have `class HasNaturalLiterals a => HasIntegerLiterals a`. then the integers don't interfere with naturals behaving nicely |
2021-10-22 22:18:26 +0200 | ski | . o O ( <https://en.wikipedia.org/wiki/SAC_programming_language> ) |
2021-10-22 22:18:31 +0200 | Pickchea | (~private@user/pickchea) |
2021-10-22 22:19:11 +0200 | <ski> | mhm |
2021-10-22 22:19:36 +0200 | awpr | keeps this open in a tab. might want to harvest ideas/techniques for my actual job |
2021-10-22 22:21:22 +0200 | arkeet | (arkeet@moriya.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-22 22:24:55 +0200 | <awpr> | koz: looks like it's a source plugin pre-type-checking, `parsedResultAction` |
2021-10-22 22:26:51 +0200 | <koz> | awpr: Ah, OK. So it basically modifies the parsed AST or something? |
2021-10-22 22:29:04 +0200 | <awpr> | looks that way. if it let the `(.)` operators make it to type-checking, they'd basically always be type errors, right? |
2021-10-22 22:29:48 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) (Remote host closed the connection) |
2021-10-22 22:29:51 +0200 | <koz> | Yeah, that makes sense. |
2021-10-22 22:30:21 +0200 | <koz> | Does said parsed AST contain module annotations? |
2021-10-22 22:30:25 +0200 | <koz> | (assuming there are any) |
2021-10-22 22:31:15 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) (Ping timeout: 260 seconds) |
2021-10-22 22:32:17 +0200 | <awpr> | hmm, that's a good question. I'd assume so, but maybe not in a form that's ready to use yet |
2021-10-22 22:33:30 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 258 seconds) |
2021-10-22 22:33:33 +0200 | <koz> | awpr: Ah, so it _can_ tell me 'annot is here', but not 'its type is X'? |
2021-10-22 22:33:50 +0200 | <awpr> | I found them in this form: https://hackage.haskell.org/package/ghc-8.10.2/docs/GHC-Hs-Decls.html#t:AnnDecl |
2021-10-22 22:34:23 +0200 | <awpr> | yeah, so that contains a pre-type-checker expression for the annotation value |
2021-10-22 22:34:42 +0200 | <koz> | Ah, so just its stringy name. |
2021-10-22 22:34:52 +0200 | <koz> | Or rather, stringly _value_. |
2021-10-22 22:35:02 +0200 | <awpr> | last field is `HsExpr` |
2021-10-22 22:35:17 +0200 | <awpr> | it's just not been type-inferenced or reduced to a value yet |
2021-10-22 22:35:20 +0200 | <koz> | Oh, even better. |
2021-10-22 22:35:29 +0200 | <koz> | Thanks awpr, that's very helpful, and you are uncommonly attractive. |
2021-10-22 22:35:37 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-10-22 22:35:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-22 22:35:48 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Ping timeout: 258 seconds) |
2021-10-22 22:37:13 +0200 | <awpr> | lol, np and thanks, I guess? |
2021-10-22 22:38:39 +0200 | <koz> | LOL |
2021-10-22 22:39:38 +0200 | mestre | (~mestre@191.177.175.57) |
2021-10-22 22:40:44 +0200 | Null_A | (~null_a@2601:645:8700:2290:6cb0:bf84:22bf:3285) (Remote host closed the connection) |
2021-10-22 22:41:50 +0200 | timCF | (~timCF@m91-129-111-87.cust.tele2.ee) (Quit: leaving) |
2021-10-22 22:44:36 +0200 | Hayek | (~xxx@2603-8000-b401-6099-7541-8f40-8f83-6bcb.res6.spectrum.com) |
2021-10-22 22:44:44 +0200 | mzan | (~quassel@mail.asterisell.com) (https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-10-22 22:48:27 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 258 seconds) |
2021-10-22 22:49:27 +0200 | arkeet | (arkeet@moriya.ca) |
2021-10-22 22:50:43 +0200 | nehsou^ | (~nehsou@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 265 seconds) |
2021-10-22 22:51:49 +0200 | jkaye | (~jkaye@2601:281:8300:7530:8275:c2bd:871b:678c) (Ping timeout: 252 seconds) |
2021-10-22 22:51:55 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-22 22:53:30 +0200 | fendor | (~fendor@91.141.35.79.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-22 22:55:22 +0200 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
2021-10-22 22:58:00 +0200 | connrs | (~connrs@conners.plus.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-22 22:58:07 +0200 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-22 22:58:20 +0200 | connrs | (~connrs@user/connrs) |
2021-10-22 23:00:00 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4852:7354:5eb5:641f) |
2021-10-22 23:07:33 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-22 23:07:43 +0200 | evocatus | (~evocatus@84.51.113.13) (Quit: Leaving) |
2021-10-22 23:10:35 +0200 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-10-22 23:13:34 +0200 | benin | (~benin@183.82.207.116) (Quit: The Lounge - https://thelounge.chat) |
2021-10-22 23:19:17 +0200 | f-a | (f2a@f2a.jujube.ircnow.org) |
2021-10-22 23:21:23 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-10-22 23:22:58 +0200 | zebrag | (~chris@user/zebrag) (Ping timeout: 260 seconds) |
2021-10-22 23:24:09 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-10-22 23:26:31 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-10-22 23:27:15 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds) |
2021-10-22 23:31:26 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (*.net *.split) |
2021-10-22 23:31:26 +0200 | nitrix | (~nitrix@user/nitrix) (*.net *.split) |
2021-10-22 23:31:26 +0200 | eruditass | (uid248673@uxbridge.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | agander_m | (sid407952@tinside.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | cbarrett | (sid192934@helmsley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | NemesisD | (sid24071@lymington.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | cln | (sid336875@ilkley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | angerman | (sid209936@ilkley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | gmc | (sid58314@ilkley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | vito | (sid1962@user/vito) (*.net *.split) |
2021-10-22 23:31:26 +0200 | scav | (sid309693@helmsley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | JSharp | (sid4580@lymington.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | bjs | (sid190364@user/bjs) (*.net *.split) |
2021-10-22 23:31:26 +0200 | NiKaN | (sid385034@helmsley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | nrr_ | (sid20938@lymington.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (*.net *.split) |
2021-10-22 23:31:26 +0200 | jinsun | (~quassel@user/jinsun) (*.net *.split) |
2021-10-22 23:31:26 +0200 | srk | (~sorki@user/srk) (*.net *.split) |
2021-10-22 23:31:26 +0200 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (*.net *.split) |
2021-10-22 23:31:26 +0200 | fluxit | (~fluxit@techsmix.net) (*.net *.split) |
2021-10-22 23:31:26 +0200 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | qwedfg | (~qwedfg@user/qwedfg) (*.net *.split) |
2021-10-22 23:31:26 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) (*.net *.split) |
2021-10-22 23:31:26 +0200 | ByronJohnson | (~bairyn@mail.digitalkingdom.org) (*.net *.split) |
2021-10-22 23:31:26 +0200 | asm | (~alexander@user/asm) (*.net *.split) |
2021-10-22 23:31:26 +0200 | ellie | (~ellie@user/ellie) (*.net *.split) |
2021-10-22 23:31:26 +0200 | tv | (~tv@user/tv) (*.net *.split) |
2021-10-22 23:31:26 +0200 | mrkajetanp | (~mrkajetan@88.98.245.28) (*.net *.split) |
2021-10-22 23:31:26 +0200 | jackhill | (~jackhill@kalessin.dragonsnail.net) (*.net *.split) |
2021-10-22 23:31:26 +0200 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (*.net *.split) |
2021-10-22 23:31:26 +0200 | drewolson | (~drewolson@user/drewolson) (*.net *.split) |
2021-10-22 23:31:26 +0200 | Hecate | (~mariposa@user/hecate) (*.net *.split) |
2021-10-22 23:31:26 +0200 | aarchi | (sid486183@uxbridge.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | hendi | (sid489601@lymington.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | gonz___ | (sid304396@lymington.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | sm2n | (~sm2n@user/sm2n) (*.net *.split) |
2021-10-22 23:31:26 +0200 | cls | (~cls@chalk.lubutu.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | T_S_ | (sid501726@uxbridge.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
2021-10-22 23:31:26 +0200 | slep | (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (*.net *.split) |
2021-10-22 23:31:26 +0200 | dpratt_ | (sid193493@helmsley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | aria | (sid380617@lymington.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | bradparker | (sid262931@uxbridge.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | tapas | (sid467876@ilkley.irccloud.com) (*.net *.split) |
2021-10-22 23:31:26 +0200 | nisstyre | (~wes@user/nisstyre) (*.net *.split) |
2021-10-22 23:31:26 +0200 | sqrt2 | (~ben@80-108-18-7.cable.dynamic.surfer.at) (*.net *.split) |
2021-10-22 23:31:26 +0200 | jrm | (~jrm@156.34.187.65) (*.net *.split) |
2021-10-22 23:31:27 +0200 | tdammers | (~tdammers@77.109.72.177.res.static.edpnet.net) (*.net *.split) |
2021-10-22 23:31:27 +0200 | w1gz | (~do@159.89.11.133) (*.net *.split) |
2021-10-22 23:31:27 +0200 | gnyeki | (~gnyeki@user/gnyeki) (*.net *.split) |
2021-10-22 23:31:27 +0200 | mmarusea1ph2 | (~mihai@198.199.100.72) (*.net *.split) |
2021-10-22 23:31:27 +0200 | CannabisIndica | (~herb@user/mesaboogie) (*.net *.split) |
2021-10-22 23:31:27 +0200 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (*.net *.split) |
2021-10-22 23:31:27 +0200 | m5zs7k | (aquares@web10.mydevil.net) (*.net *.split) |
2021-10-22 23:31:27 +0200 | tureba | (~tureba@tureba.org) (*.net *.split) |
2021-10-22 23:31:27 +0200 | sshine | (~simon@hubris.eta.solutions) (*.net *.split) |
2021-10-22 23:31:27 +0200 | samebchase | (~thelounge@51.15.68.182) (*.net *.split) |
2021-10-22 23:31:33 +0200 | slep | (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) |
2021-10-22 23:31:33 +0200 | jackhill | (~jackhill@kalessin.dragonsnail.net) |
2021-10-22 23:31:33 +0200 | gnyeki | (~gnyeki@li578-216.members.linode.com) |
2021-10-22 23:31:36 +0200 | ByronJohnson | (~bairyn@mail.digitalkingdom.org) |
2021-10-22 23:31:37 +0200 | sqrt2 | (~ben@80-108-18-7.cable.dynamic.surfer.at) |
2021-10-22 23:31:37 +0200 | Hecate | (~mariposa@163.172.211.189) |
2021-10-22 23:31:37 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2021-10-22 23:31:38 +0200 | tapas | (sid467876@id-467876.ilkley.irccloud.com) |
2021-10-22 23:31:38 +0200 | cls | (~cls@chalk.lubutu.com) |
2021-10-22 23:31:40 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2021-10-22 23:31:41 +0200 | gmc | (sid58314@id-58314.ilkley.irccloud.com) |
2021-10-22 23:31:41 +0200 | NemesisD | (sid24071@id-24071.lymington.irccloud.com) |
2021-10-22 23:31:41 +0200 | agander_m | (sid407952@id-407952.tinside.irccloud.com) |
2021-10-22 23:31:41 +0200 | angerman | (sid209936@id-209936.ilkley.irccloud.com) |
2021-10-22 23:31:41 +0200 | samebchase | (~thelounge@51.15.68.182) |
2021-10-22 23:31:41 +0200 | cln | (sid336875@id-336875.ilkley.irccloud.com) |
2021-10-22 23:31:41 +0200 | cbarrett | (sid192934@id-192934.helmsley.irccloud.com) |
2021-10-22 23:31:42 +0200 | yaroot | (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
2021-10-22 23:31:48 +0200 | asm | (~alexander@burner.asm89.io) |
2021-10-22 23:31:51 +0200 | drewolson | (~drewolson@user/drewolson) |
2021-10-22 23:31:51 +0200 | tdammers | (~tdammers@77.109.72.177.res.static.edpnet.net) |
2021-10-22 23:31:53 +0200 | scav | (sid309693@id-309693.helmsley.irccloud.com) |
2021-10-22 23:31:55 +0200 | gonz___ | (sid304396@id-304396.lymington.irccloud.com) |
2021-10-22 23:31:57 +0200 | nisstyre | (~wes@li798-187.members.linode.com) |
2021-10-22 23:31:57 +0200 | mmaruseacph2 | (~mihai@198.199.100.72) |
2021-10-22 23:31:57 +0200 | dpratt_ | (sid193493@id-193493.helmsley.irccloud.com) |
2021-10-22 23:32:11 +0200 | jackhill | KM4MBG |
2021-10-22 23:32:11 +0200 | ellie | (~ellie@user/ellie) |
2021-10-22 23:32:14 +0200 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2021-10-22 23:32:14 +0200 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2021-10-22 23:32:21 +0200 | bradparker | (sid262931@id-262931.uxbridge.irccloud.com) |
2021-10-22 23:32:22 +0200 | T_S_ | (sid501726@id-501726.uxbridge.irccloud.com) |
2021-10-22 23:32:23 +0200 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2021-10-22 23:32:23 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2021-10-22 23:32:25 +0200 | aria | (sid380617@id-380617.lymington.irccloud.com) |
2021-10-22 23:32:28 +0200 | KM4MBG | jackhill |
2021-10-22 23:32:32 +0200 | vito | (sid1962@id-1962.uxbridge.irccloud.com) |
2021-10-22 23:32:33 +0200 | bjs | (sid190364@id-190364.helmsley.irccloud.com) |
2021-10-22 23:32:34 +0200 | nisstyre | (~wes@li798-187.members.linode.com) (Signing in (nisstyre)) |
2021-10-22 23:32:34 +0200 | nisstyre | (~wes@user/nisstyre) |
2021-10-22 23:32:42 +0200 | bjs | (sid190364@id-190364.helmsley.irccloud.com) (Changing host) |
2021-10-22 23:32:42 +0200 | bjs | (sid190364@user/bjs) |
2021-10-22 23:32:46 +0200 | nrr_ | (sid20938@id-20938.lymington.irccloud.com) |
2021-10-22 23:32:47 +0200 | vito | (sid1962@id-1962.uxbridge.irccloud.com) (Changing host) |
2021-10-22 23:32:47 +0200 | vito | (sid1962@user/vito) |
2021-10-22 23:32:51 +0200 | aarchi | (sid486183@id-486183.uxbridge.irccloud.com) |
2021-10-22 23:32:52 +0200 | hendi | (sid489601@id-489601.lymington.irccloud.com) |
2021-10-22 23:32:56 +0200 | JSharp | (sid4580@id-4580.lymington.irccloud.com) |
2021-10-22 23:32:57 +0200 | eruditass | (uid248673@id-248673.uxbridge.irccloud.com) |
2021-10-22 23:33:10 +0200 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) |
2021-10-22 23:33:11 +0200 | srk | (~sorki@user/srk) |
2021-10-22 23:33:19 +0200 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2021-10-22 23:33:20 +0200 | CnnibisIndica | (~herb@user/mesaboogie) |
2021-10-22 23:33:25 +0200 | w1gz | (~do@159.89.11.133) |
2021-10-22 23:33:27 +0200 | jrm | (~jrm@156.34.187.65) |
2021-10-22 23:33:27 +0200 | jinsun | (~quassel@user/jinsun) |
2021-10-22 23:33:28 +0200 | nitrix | (~nitrix@user/nitrix) |
2021-10-22 23:33:30 +0200 | mrkajetanp | (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) |
2021-10-22 23:33:31 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2021-10-22 23:33:32 +0200 | m5zs7k | (aquares@web10.mydevil.net) |
2021-10-22 23:33:33 +0200 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) |
2021-10-22 23:33:34 +0200 | sm2n | (~sm2n@user/sm2n) |
2021-10-22 23:33:37 +0200 | tv | (~tv@user/tv) |
2021-10-22 23:33:38 +0200 | fluxit | (~fluxit@techsmix.net) |
2021-10-22 23:33:39 +0200 | sshine | (~simon@hubris.eta.solutions) |
2021-10-22 23:33:52 +0200 | qwedfg | (~qwedfg@user/qwedfg) |
2021-10-22 23:35:44 +0200 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) |
2021-10-22 23:36:42 +0200 | tureba | (~tureba@tureba.org) |
2021-10-22 23:39:29 +0200 | michalz | (~michalz@185.246.204.41) (Remote host closed the connection) |
2021-10-22 23:39:58 +0200 | max22- | (~maxime@2a01cb088335980063b7aac9e60f4864.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-10-22 23:41:18 +0200 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2021-10-22 23:43:33 +0200 | <teddyc> | TIL: the backslash in anonymous functions is supposed to resemble lambda(λ). makes sense now |
2021-10-22 23:44:00 +0200 | <geekosaur> | it's as close as you get in ASCII, yeh |
2021-10-22 23:46:18 +0200 | <monochrom> | :) |
2021-10-22 23:48:43 +0200 | <pavonia> | ,\ |
2021-10-22 23:49:57 +0200 | <Rembane_> | You need to be slightly careful otherwise you'll fall down the J rabbit hole. |
2021-10-22 23:51:23 +0200 | <hpc> | (.) is also meant to resemble the middot thing that math uses for function composition |
2021-10-22 23:51:59 +0200 | <teddyc> | Rembane_: and APL from what I've seen from code_report on youtube. |
2021-10-22 23:52:03 +0200 | <monochrom> | Hrm! I didn't notice that cabal-install 3.4.1.0 exists. |
2021-10-22 23:52:37 +0200 | <teddyc> | hpc: ah, thats true. it always bothered me that i forgot the way it composes, but that sort of helps |
2021-10-22 23:52:44 +0200 | <Rembane_> | teddyc: Yes! :) |
2021-10-22 23:55:50 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 260 seconds) |
2021-10-22 23:57:28 +0200 | zebrag | (~chris@user/zebrag) |