Logs on 2020-11-23 (freenode/#haskell)
| 00:00:10 | → | christo joins (~chris@81.96.113.213) |
| 00:00:15 | × | atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
| 00:00:37 | × | m0rphism quits (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 246 seconds) |
| 00:01:08 | → | conal joins (~conal@66.115.157.141) |
| 00:01:39 | → | atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK) |
| 00:05:37 | <hekkaidekapus> | dminuoso: I read the page you linked. The main point there is a need of Benefactor Dictator For Life. Let’s say that I am a bit skeptic. ;) |
| 00:06:04 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 2.8) |
| 00:06:44 | <dminuoso> | And funding. |
| 00:06:46 | <dolio> | I don't understand the argument. First off, it's inappropriate for a language standard to specify things down to an intermediate language level. That means every compiler has to make a ton of decisions exactly like GHC down to a very low level. If you just want documentation of what GHC does, there's already a bunch of papers and wikis and users guides that actually describe GHC already. |
| 00:07:36 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 00:08:16 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 00:08:35 | <hekkaidekapus> | dolio: If you check the backlog, you will see that I expressed a few hours ago that I am not fond of rigourous standards. |
| 00:09:21 | <hekkaidekapus> | My argument here is that taking over Haskell98 and Haskell2010 by a backdoor is a sneaky way of handling matters. |
| 00:12:33 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:12:48 | <hekkaidekapus> | As to why very detailed standard are not my cup of coffee, things end up set in stone, drastic changes practically impossible. |
| 00:13:41 | → | weilzach joins (~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) |
| 00:13:48 | <dminuoso> | Unrelatedly, is there some cool trick to traverse over a data structure and fail if it has more than one target? |
| 00:13:59 | × | Lycurgus quits (~niemand@98.4.114.74) (Quit: Exeunt) |
| 00:14:09 | <dminuoso> | Beyond the very obvious toList and pattern matching on its length |
| 00:14:09 | × | weilzach quits (~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) (Client Quit) |
| 00:14:11 | <dolio> | Also, if you want an active standard process, you need to make new viable Haskell implementations. The standard process is useful as a way of codifying the commonalities of multiple implementations. That's how it originated. The standards process being useless is a symptom of GHC being the only viable choice. |
| 00:15:29 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) |
| 00:15:31 | → | weilzach joins (~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) |
| 00:15:43 | <dminuoso> | dolio: Perhaps, it could arguably also help in that regard. If we had a new vision of what "standard haskell" in the current state of haskell could be, it would reduce the willingness to flip on extensions and stick to "standard haskell" - perhaps opening up doors for newer implementations |
| 00:15:50 | <dminuoso> | Right now hackage is extension wild west. |
| 00:16:30 | <dolio> | You mean, like specifying a bunch of standard GHC extensions that are considered good enough to be mainstream? |
| 00:16:35 | <dolio> | The 'sneaky' thing? |
| 00:16:40 | <hekkaidekapus> | heh |
| 00:16:57 | <dminuoso> | Not necessarily just that. But at least part of it, yes. |
| 00:17:07 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 260 seconds) |
| 00:17:27 | × | weilzach quits (~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 00:17:27 | <dminuoso> | Haskell has resulted from academics doing research and trying out ideas. GHCs extensions are just that process. |
| 00:17:43 | <dminuoso> | I dont see anything fundamentally wrong as GHC extensions as precursors of haskell report features. |
| 00:18:33 | → | weilzach joins (~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) |
| 00:18:37 | <Axman6> | unpopular opinion: extensions are just language feature flags #facebookdev |
| 00:19:10 | <hpc> | how else would you develop new language features, anyway? |
| 00:19:29 | <Axman6> | laborious committee process like C++ |
| 00:19:43 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
| 00:19:52 | <hpc> | even then you have an implementation of it somewhere before it gets standardized |
| 00:20:20 | <hekkaidekapus> | hpc: Let’s do that then. |
| 00:20:45 | <hpc> | and then make that implementation optional |
| 00:20:48 | × | vhs quits (~vhs@41.44.147.255) (Remote host closed the connection) |
| 00:20:56 | <hpc> | and then to make it easy to use, make it enabled with a comment at the top of the file |
| 00:20:59 | <hpc> | :P |
| 00:21:07 | → | vhs joins (~vhs@41.44.147.255) |
| 00:21:35 | <hekkaidekapus> | How many compilers are Report2010-compliants? |
| 00:22:28 | <Axman6> | probably up to one |
| 00:22:39 | <hekkaidekapus> | That’s a bummer. |
| 00:22:53 | × | alp quits (~alp@2a01:e0a:58b:4920:2d01:9668:71aa:c2be) (Ping timeout: 272 seconds) |
| 00:23:00 | <hekkaidekapus> | No standard process possible with a singleton. |
| 00:23:03 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 00:25:56 | <hekkaidekapus> | stu002: I am not aware of such a Haddock feature. |
| 00:26:39 | <hekkaidekapus> | You can distribute the README by setting the `extra-files` in .cabal. |
| 00:26:45 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 00:27:37 | <hekkaidekapus> | Some programmers make Haskell modules containing only documentation. Therein, the full extent of the Haddock syntax is available. |
| 00:28:00 | <dolio> | Anyhow, my point is, don't think about this in a backwards way. Forcing people to demand the release of another 'official standard' before they can type less garbage in their files isn't going to create more Haskell implementations. Because the implementations created the standard, not the other way around. |
| 00:29:16 | <dminuoso> | One prohibiting factor for new implementations to arise, is that without supporting most extensions, you couldn't use much of hackage. Transitively you quickly depend on a lot of extensions. |
| 00:29:48 | <hekkaidekapus> | dolio: Point taken. |
| 00:30:19 | → | arahael joins (~arahael@124-150-64-50.tpgi.com.au) |
| 00:30:38 | <hekkaidekapus> | stu002: For instance, this module has not a single Haskell identifier: <https://hackage.haskell.org/package/dhall-1.36.0/docs/Dhall-Tutorial.html> |
| 00:30:43 | <dminuoso> | And part of why so packages so freely depend on extensions without caring about interoperability, is because there's not even some principle Haskell2020 that you could even adhere to |
| 00:30:58 | <dminuoso> | The best we have is Haskell2010, and that's very limiting |
| 00:31:10 | <dolio> | Even if there was, there would be no reason to not use GHC's extensions beyond 2020. |
| 00:31:25 | <dolio> | Because there is no other compiler to use. |
| 00:31:32 | → | fendor_ joins (~fendor@91.141.2.69.wireless.dyn.drei.com) |
| 00:31:51 | <dminuoso> | I guess it's a vicious circle. |
| 00:32:49 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 00:33:29 | × | siwica quits (~user@p200300f6171ea70026a3ceac3db524b2.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 00:33:45 | <monochrom> | At this point, you can compare (another Haskell compiler competing with GHC) with (a new manufacturer of photocopiers competing with existing brands) |
| 00:33:52 | × | fendor__ quits (~fendor@77.119.131.102.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
| 00:33:58 | <dminuoso> | But I stand by my opinion that with a modern Haskell 202x standard, it would be easier to get people away from just using off-standard GHC extensions. |
| 00:34:11 | <dminuoso> | Without a standard you can't even try |
| 00:35:06 | <monochrom> | Users now have so much expectations of a Haskell compiler or a photocopier (now called "office document centre") that only GHC and only the existing very experienced manufacturers can live up to those expectations. |
| 00:35:14 | → | christo joins (~chris@81.96.113.213) |
| 00:35:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:35:52 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 00:36:07 | <monochrom> | Indeed look at the feature creeps into GHC that bring it further and further away from very simple Haskell, and the feature creeps that turned simple photocopiers to monstrous know-it-alls. |
| 00:36:13 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 00:36:41 | <dolio> | I don't think you need to compile hackage to be a useful Haskell compiler, incidentally. There's probably like 0.1% of hackage or less that matters. |
| 00:36:56 | <dolio> | Maybe less. |
| 00:37:34 | <dminuoso> | Ability to compile a notable portion of hackage is what a new implementation would require for good adoption. |
| 00:37:52 | <dminuoso> | Unless this was an industry implementation for some special use |
| 00:38:03 | <dolio> | PureScript compiles 0% of hackage, I expect. |
| 00:38:11 | <dminuoso> | PureScript is not Haskell though. |
| 00:38:22 | <dolio> | And yet people use it. |
| 00:38:43 | <monochrom> | But purescript compiles 100% of the purescript library repository :) |
| 00:39:11 | <hekkaidekapus> | dminuoso: That’s a tall order. Look at head.hackage and all the cycles going there to test new GHC features against a few Hackage packages. |
| 00:39:21 | <dminuoso> | If you tell me "this is a haskell compiler", and yet it cant compile most packages dubbed as "haskell package", then why should I buy your implementation? |
| 00:39:37 | <dolio> | monochrom: That's probably wrong, too. |
| 00:39:40 | × | Tops2 quits (~Tobias@dyndsl-095-033-027-066.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 00:39:46 | <dolio> | They keep making major language changes. |
| 00:39:53 | <dolio> | Or at least, did in the past. |
| 00:40:03 | <monochrom> | There is the expectattion that if you called your compiler "purescript compiler" people don't expect it to be compatible with any of Hackage, whereas if you call it "Haskell compiler" people suddenly do. |
| 00:40:26 | <monochrom> | Ah OK, oh well. |
| 00:40:55 | <dolio> | dminuoso: Why would anyone buy it, period. The problem is, there's nothing that isn't GHC that has a tangible reason for people to use it. The tangible reason to not use GHC comes first. |
| 00:41:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 00:41:37 | <dminuoso> | That's a fair point. |
| 00:41:39 | <hekkaidekapus> | dolio: You seem to be okay with monocultures. |
| 00:41:53 | <dminuoso> | I don't think dolio suggested he's *okay* with the situation. |
| 00:42:26 | <hekkaidekapus> | I got the point about implementations preceding standardisation. |
| 00:42:28 | <dolio> | I'm describing what the reality is, yes. |
| 00:42:51 | <dolio> | If you don't like it, you need to change the reality. |
| 00:43:10 | <stu002> | @hekkaidekapus thanks for that |
| 00:43:10 | <lambdabot> | Unknown command, try @list |
| 00:43:28 | <hekkaidekapus> | stu002: yw |
| 00:43:59 | <dminuoso> | Perhaps its actually projects like Frege that could drive alternate implementations. |
| 00:44:21 | × | weilzach quits (~weilzach@pool-72-66-93-213.washdc.fios.verizon.net) () |
| 00:44:35 | <dminuoso> | A reason not to use GHC is because you might want more free interop with the JVM if inline-java is not enough. |
| 00:44:44 | <monochrom> | I suddenly have a feeling that the Haskell Report died because Paul Hudak died. |
| 00:44:47 | <dminuoso> | At the very least that's a large industry. |
| 00:45:03 | <dolio> | If there were a real alternative to GHC that did something way better, but didn't implement all of GHC's stuff, there'd be people saying, "hey, can you make stuff compatible with this other thing? Maybe we should standardize it." |
| 00:45:37 | <dminuoso> | dolio: Yeah. Frege fits that description exactly I guess. |
| 00:45:57 | <dolio> | But making the alternative is the significant work, and just asking people to behave as if that other thing existed won't make the work happen, and eventually people will notice that you're asking them to do a lot of work conforming to your morality for no real benefit. |
| 00:46:36 | → | cosimone joins (~cosimone@5.171.24.24) |
| 00:46:56 | <monochrom> | Yeah, hell, when I write in C I code to folklore x86-64 C, not the C standard. |
| 00:47:32 | <dminuoso> | Heh, barely anyone ever adheres to the C standard |
| 00:47:36 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
| 00:47:57 | <monochrom> | When I teach Haskell to students I shamelessly say "lazy evaluation" not what the Haskell Report tries to avoid to say. |
| 00:48:16 | <monochrom> | (BTW IMO the Haskell Report also fails in its attempt to shy away from lazy evaluation.) |
| 00:48:22 | <dminuoso> | Most of C appears to be not even folklore C but "whatever I imagine"-C |
| 00:48:29 | <hekkaidekapus> | Standards are for compiler implementors anyway. |
| 00:48:42 | <monochrom> | (For example explain to me why else "seq" is called "seq" not merely "strict" or "strictify") |
| 00:48:45 | <dminuoso> | hekkaidekapus: That's a pretty inadequate bar, honestly. |
| 00:48:52 | <hekkaidekapus> | heh |
| 00:49:00 | <dminuoso> | If only language implementors can read it, how should a language user understand your language? |
| 00:49:45 | × | cosimone quits (~cosimone@5.171.24.24) (Client Quit) |
| 00:50:11 | <dminuoso> | If you take this to the extreme you end with something like C++ where not even the C++ committee understands what some of their standard means. |
| 00:50:22 | → | cosimone joins (~user@5.171.24.24) |
| 00:50:35 | × | cosimone quits (~user@5.171.24.24) (Remote host closed the connection) |
| 00:50:56 | × | conal quits (~conal@66.115.157.141) (Quit: Computer has gone to sleep.) |
| 00:51:09 | <dminuoso> | [13] is a great source for inconclusive debates |
| 00:51:32 | <hekkaidekapus> | I bet LLVM and GCC coders have a great grasp of the standard (those not on the C++ committee). |
| 00:51:42 | → | cosimone joins (~user@5.171.24.24) |
| 00:51:45 | hekkaidekapus | is just hyperboling at this point. |
| 00:52:02 | <int-e> | monochrom: you like puns, how would you like an independent Haskell implementation without type literals and type-in-type shenanigans? :) |
| 00:52:25 | <monochrom> | Hrm, why is pun involved in that? |
| 00:52:34 | × | cosimone quits (~user@5.171.24.24) (Remote host closed the connection) |
| 00:52:50 | <monochrom> | Oh hahahahaha |
| 00:52:59 | <int-e> | (More seriously though, without another relevant Haskell implementation, the point of a standard is rather moon.) |
| 00:53:06 | <int-e> | moot. |
| 00:53:26 | <hekkaidekapus> | Define: relevant. |
| 00:53:40 | <hekkaidekapus> | Implementing the previous standard? |
| 00:53:50 | <int-e> | No, actually in use. |
| 00:54:07 | <monochrom> | I have a weak reason for wishing for a standard even though there is only one implementation. Much more precise, reliable documentation of what the hell the implementation does. |
| 00:54:13 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 00:54:17 | → | conal joins (~conal@66.115.157.141) |
| 00:54:36 | <dolio> | Weren't you the one that said GHC is better documented than the actual standard? :þ |
| 00:54:41 | <dminuoso> | int-e: okay it took me a minute to get the pub. quite cute |
| 00:55:26 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 00:55:54 | <monochrom> | I think I didn't say quite that quite directly. What I really think though is GHC is less worse than the Haskell Report. |
| 00:56:34 | <monochrom> | And GHC's is somewhat better than "less worse" (but not a lot better) if you also include the papers it cites. |
| 00:57:19 | <monochrom> | For example if you're looking for the typing rules of GHC 9's RankNTypes, you'd better read that bidirectional inference paper. |
| 00:57:37 | <dolio> | Yeah. |
| 00:57:39 | <monochrom> | rules that should have been in a standardized document. |
| 00:58:18 | → | Jonkimi727406120 joins (~Jonkimi@113.87.161.66) |
| 00:58:18 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 00:58:33 | <dolio> | It'd be nice if their wiki gave a compilation of how it works, since you never know what all from the past is relevant. |
| 00:58:34 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 00:58:36 | → | cosimone joins (~user@5.171.24.24) |
| 00:59:15 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 00:59:29 | <Axman6> | The top story on lobste.rs has the title "Booting from a vinyl record" and I was sad to see it wasn't haskell related |
| 00:59:51 | <monochrom> | heh |
| 01:00:55 | × | cosimone quits (~user@5.171.24.24) (Client Quit) |
| 01:02:36 | <monochrom> | err, the bidirectional inference paper for pre-9 RankNTypes; the quick-look paper for post-9 RankNTypes and impredicativity. |
| 01:03:04 | <monochrom> | but the latter tells you that they assume you have read the former, so you're still toasted. |
| 01:04:39 | <monochrom> | What I fear is that if a comittee were formed to add these to Haskell Report, a very vocal, counterproductive minority would argue "cannot go with these rules verbatim, we need to allow different compilers to make different trade-offs" |
| 01:04:59 | × | LKoen quits (~LKoen@169.244.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 01:05:14 | <monochrom> | And that will land you with: either no change to the Haskell Report, or the C standard. |
| 01:07:03 | <dolio> | Yeah, that would probably be useless. |
| 01:07:18 | × | tv- quits (~tv@unaffiliated/tv-) (Quit: WeeChat 2.8) |
| 01:08:08 | <dolio> | Although what would the situation be if it were standardized? GHC keeps changing what you're allowed to do. |
| 01:08:15 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 01:08:20 | <dolio> | Would the standard keep shifting? |
| 01:10:59 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 01:11:09 | <monochrom> | That's a tough one. My preference is GHC changes quickly, the standard changes slowly to summarize the sweet spots GHC has found. |
| 01:11:14 | <dolio> | I think a lot of the development has been allowing it to infer strictly more cases, but sometimes it has switched trade-offs. |
| 01:11:47 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:54 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:13:30 | <dolio> | Oh, and of course, keeping multiple, distinct checking algorithms around in a single implementation wouldn't be very nice. :) |
| 01:13:41 | <dolio> | So that wouldn't be a solution. |
| 01:14:01 | × | vhs quits (~vhs@41.44.147.255) (Quit: Leaving) |
| 01:14:07 | → | guest1123 joins (~user@49.5.6.87) |
| 01:14:30 | × | conal quits (~conal@66.115.157.141) (Quit: Computer has gone to sleep.) |
| 01:15:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:16:31 | <monochrom> | Windows 95 managed to have two kernels inside it haha |
| 01:18:14 | <monochrom> | to be sure, you would be fair to point out "that exactly shows what wrong with it" |
| 01:18:46 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection) |
| 01:19:02 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 01:19:39 | → | conal joins (~conal@66.115.157.141) |
| 01:19:39 | × | conal quits (~conal@66.115.157.141) (Remote host closed the connection) |
| 01:20:35 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:389d:748e:cbb9:62) |
| 01:21:08 | <dolio> | Lots more workers, too. |
| 01:23:26 | → | JWS joins (8d54455c@141.84.69.92) |
| 01:25:13 | → | incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 01:27:05 | × | mirrorbird quits (~psutcliff@89.45.7.148) (Ping timeout: 240 seconds) |
| 01:29:27 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:389d:748e:cbb9:62) (Ping timeout: 260 seconds) |
| 01:31:40 | → | jedws joins (~jedws@101.184.150.93) |
| 01:35:12 | → | Lord_of_Life joins (~Lord@46.217.221.12) |
| 01:35:37 | × | Lord_of_Life_ quits (~Lord@46.217.221.152) (Ping timeout: 264 seconds) |
| 01:36:31 | × | JWS quits (8d54455c@141.84.69.92) (Remote host closed the connection) |
| 01:45:28 | × | incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in) |
| 01:45:47 | → | incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 01:46:15 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 01:46:30 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 01:46:48 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 01:48:26 | × | stu002 quits (77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) (Remote host closed the connection) |
| 01:50:01 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 01:53:37 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 01:54:36 | → | sdrodge joins (~sdrodge@unaffiliated/sdrodge) |
| 01:57:36 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds) |
| 01:58:34 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 01:58:57 | × | incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in) |
| 02:00:19 | × | Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 246 seconds) |
| 02:01:03 | → | incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 02:02:08 | → | cosimone joins (~user@5.171.24.24) |
| 02:03:22 | × | cosimone quits (~user@5.171.24.24) (Client Quit) |
| 02:05:24 | → | cosimone joins (~user@5.171.24.24) |
| 02:06:30 | → | incertia_ joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 02:06:37 | × | cosimone quits (~user@5.171.24.24) (Remote host closed the connection) |
| 02:06:42 | → | tv- joins (~tv@unaffiliated/tv-) |
| 02:07:00 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 02:07:18 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 02:08:01 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 02:08:22 | × | incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 260 seconds) |
| 02:09:40 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 02:11:39 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
| 02:11:58 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 02:13:15 | → | christo joins (~chris@81.96.113.213) |
| 02:14:40 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds) |
| 02:17:05 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 02:18:27 | × | renzhi quits (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 260 seconds) |
| 02:19:10 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:20:17 | → | Sarma joins (~Amras@unaffiliated/amras0000) |
| 02:24:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 02:28:55 | → | boxscape joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
| 02:29:02 | <boxscape> | :o are there no operator sections on the type level? |
| 02:29:26 | <boxscape> | % :kind (+ 4) 6 |
| 02:29:26 | <yahb> | boxscape: ; <interactive>:1:2: error: Operator applied to too few arguments: + |
| 02:30:03 | <boxscape> | I can see why it's not a thing for type families (since we don't have unsaturated ones yet) but it seems like it should work for type constructors at least |
| 02:30:16 | <boxscape> | but it's syntax error from what I can tell :( |
| 02:32:54 | <monochrom> | There is no type-level lambda, therefore no type operator sections. |
| 02:33:00 | hackage | sr-extra 1.85 - Module limbo https://hackage.haskell.org/package/sr-extra-1.85 (DavidFox) |
| 02:34:22 | <monochrom> | OK, one of them is OK, (Int :+:) is just (:+:) Int, uncontroversial. I guess no one got around to implement it. |
| 02:34:29 | × | jedws quits (~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:35:07 | <boxscape> | hm, maybe I'll look into it once we have unsaturated type families, which I think might make it worth it |
| 02:35:15 | × | xff0x quits (~fox@2001:1a81:53fc:6700:2ab6:9c1b:8ed5:c7e5) (Ping timeout: 272 seconds) |
| 02:35:19 | × | solonarv quits (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
| 02:36:04 | → | sleblanc joins (~sleblanc@unaffiliated/sebleblanc) |
| 02:36:34 | → | xff0x joins (~fox@2001:1a81:5237:b800:d8c8:bfa0:43f3:b736) |
| 02:36:55 | <sleblanc> | I like XMonad's approach to configuration, where it "recompiles" itself when you update your configuration file. How does XMonad do it? |
| 02:40:16 | × | Iceland_jack quits (~user@31.124.48.169) (Ping timeout: 240 seconds) |
| 02:40:25 | → | jedws joins (~jedws@101.184.150.93) |
| 02:41:11 | → | toorevitimirp joins (~tooreviti@117.182.183.18) |
| 02:41:16 | × | jedws quits (~jedws@101.184.150.93) (Client Quit) |
| 02:43:36 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Ping timeout: 272 seconds) |
| 02:46:01 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 02:47:36 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 02:48:30 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 02:49:56 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 02:50:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:50:55 | <sim590> | I have this code: https://paste.debian.net/1173920/ which makes use of lenses. It is a multi constructor data type. One of which doesn't have private key, hence using (view privateKey) asks me to put the Monoid constraint on my function. How can I solve that? |
| 02:51:05 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds) |
| 02:51:24 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 02:51:32 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 02:52:28 | × | Cthalupa quits (~cthulhu@47.186.47.75) (Ping timeout: 272 seconds) |
| 02:52:56 | <sim590> | Is there a way to call some Lens magic functions that would return (Maybe v) instead of the plain (view privateKey) ? |
| 02:53:26 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-fgjaulxwhgglmlzx) (Quit: Connection closed for inactivity) |
| 02:53:26 | → | Cthalupa joins (~cthulhu@47.186.47.75) |
| 02:55:55 | <dibblego> | you'd use a Traversal |
| 02:58:02 | ← | LostCanvas parts (~iharper@75-108-155-188.chstcmtk01.res.dyn.suddenlink.net) ("Leaving") |
| 02:58:53 | <sim590> | dibblego: hmmmmmm. OK. |
| 02:59:00 | <sim590> | I'm a bit new to lenses. |
| 02:59:43 | → | acidjnk_new joins (~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de) |
| 02:59:53 | <dibblego> | _StartUpRemoteUser :: Prism' (UserInfo v b) (v, b) |
| 03:00:03 | <dibblego> | _StartUpRemoteUser_privateKey :: Traversal' (UserInfo v b) v |
| 03:03:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 03:04:19 | <sim590> | OK. I didn't understand the types you wrote... I'm sorry. However, I found that I can use (^?) instead of view. I really need to a good course on lenses. |
| 03:04:24 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 03:04:29 | <sim590> | I've watched and read already, but not enough. |
| 03:05:20 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 03:06:02 | <dibblego> | or use preview |
| 03:06:08 | → | christo joins (~chris@81.96.113.213) |
| 03:08:07 | → | jedws joins (~jedws@101.184.150.93) |
| 03:08:10 | × | Lowl3v3l quits (~Lowl3v3l@dslb-090-186-186-201.090.186.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
| 03:09:49 | <dibblego> | https://gist.github.com/tonymorris/1bbc3aff874a97722d78cb9a9154c494 |
| 03:10:35 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 265 seconds) |
| 03:12:37 | <sim590> | So that's what makePrisms and makeLenses expand to (partly)? |
| 03:13:46 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:15:26 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 03:16:28 | × | clynamen quits (~clynamen@net-2-35-88-16.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 03:16:30 | <dibblego> | yes |
| 03:16:42 | <dibblego> | makePrisms makes that prism among other things |
| 03:16:51 | → | justsomeguy joins (~justsomeg@216.186.218.241) |
| 03:16:51 | × | justsomeguy quits (~justsomeg@216.186.218.241) (Changing host) |
| 03:16:51 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 03:19:04 | × | noteness quits (noteness@unaffiliated/nessessary129) (Quit: I'LL BE BACK) |
| 03:19:23 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:20:04 | → | clynamen joins (~clynamen@37.183.22.31) |
| 03:21:14 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 03:22:39 | → | Lowl3v3l joins (~Lowl3v3l@dslb-088-072-167-013.088.072.pools.vodafone-ip.de) |
| 03:24:50 | → | dftxbs3e_ joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 03:24:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 03:27:49 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 264 seconds) |
| 03:28:03 | × | dftxbs3e_ quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 03:29:43 | × | Sarma quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 03:31:15 | × | koala_man quits (~vidar@unaffiliated/koala-man/x-2491903) (Remote host closed the connection) |
| 03:35:55 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:39:06 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 265 seconds) |
| 03:40:27 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 03:42:25 | lagothrix | is now known as Guest16478 |
| 03:42:25 | × | Guest16478 quits (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services))) |
| 03:42:31 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 03:43:03 | → | drbean joins (~drbean@TC210-63-209-85.static.apol.com.tw) |
| 03:48:06 | × | theDon quits (~td@muedsl-82-207-238-007.citykom.de) (Ping timeout: 256 seconds) |
| 03:48:59 | → | whatisRT joins (~whatisRT@2002:5b41:6a33:0:d589:f18c:8211:e758) |
| 03:49:56 | × | jlamothe quits (~jlamothe@198.251.55.207) (Ping timeout: 240 seconds) |
| 03:50:00 | → | theDon joins (~td@94.134.91.120) |
| 03:55:36 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:58:54 | <ezzieyguywuf> | in hledger do I have to use $ for dollars, or can I use "USD" like in beancount? |
| 04:00:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 04:00:49 | → | z0 joins (~z0@188.251.79.4) |
| 04:01:28 | × | z0 quits (~z0@188.251.79.4) (Client Quit) |
| 04:01:52 | <jle`> | ezzieyguywuf: there are no built-in currencies i believe, either are valid currency labels |
| 04:02:01 | <ezzieyguywuf> | jle`: 👍️ |
| 04:02:01 | <jle`> | so there is no special-casing for dollars |
| 04:02:05 | <ezzieyguywuf> | gotcha |
| 04:02:15 | <ezzieyguywuf> | I'm used to the USD now, so I think I'll just go with that |
| 04:02:37 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 04:03:08 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 04:06:46 | <MarcelineVQ> | there's a #hledger channel too that's quite helpful |
| 04:06:58 | <MarcelineVQ> | in particular due to sm[m] |
| 04:15:28 | <texasmynsted> | Where may I find more information about how to best unit test modules. Specifically if you use something like hunit, how do you test code in a module that is not exported? |
| 04:15:46 | × | boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 246 seconds) |
| 04:17:45 | × | Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds) |
| 04:19:05 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
| 04:19:38 | → | Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
| 04:20:07 | → | keep_learning joins (~keep_lear@43.231.26.152) |
| 04:22:07 | <hololeap> | is hledger really more useful than a spreadsheet? |
| 04:22:46 | <MarcelineVQ> | idk but it's pretty nice |
| 04:23:14 | <sleblanc> | hololeap, for one, hledger supports currencies and ad-hoc commodities |
| 04:23:15 | → | cosimone joins (~cosimone@5.171.24.44) |
| 04:23:35 | <hololeap> | i took a look at it once and didn't understand what was so good about it. i'm sure i didn't give it enough of a chance. |
| 04:24:00 | <sleblanc> | hololeap, I hope no one is trying to sell it to you |
| 04:24:34 | <hololeap> | no, i was just looking for a ledger program, and i like haskell. seemed like a natural choice to check it out. |
| 04:25:58 | <hololeap> | it seems popular enough, though |
| 04:26:07 | <MarcelineVQ> | I find it really convenient to edit plaintext files rather than work in a spreadsheet, especially to add more-specific/sub accounts on the fly |
| 04:28:09 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 04:29:36 | <jle`> | hololeap: for me i sort of juts treat it like spreadsheet with built in command line tools for querying and stuff |
| 04:30:08 | <jle`> | so i don't have to implement it all myself |
| 04:30:49 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
| 04:30:57 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:32:06 | <jle`> | it makes it more simple to do double-entry accounting too |
| 04:37:38 | <dsal> | texasmynsted: You don't test stuff that's not exported. You can't import it to test it. What kind of testing are you doing? hunit style is usually my second choice. |
| 04:39:30 | × | awk quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection) |
| 04:43:38 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 04:43:48 | × | keep_learning quits (~keep_lear@43.231.26.152) (Quit: Leaving) |
| 04:43:50 | <sm[m]> | hail hololeap! It's a good question, I think each is good at certain things |
| 04:44:53 | <texasmynsted> | Have some routines to read TSV files for redirects and things. I only export the data and the functions needed. I wanted to add and test some validation. I have a redirect so two URLs per record. |
| 04:45:32 | <texasmynsted> | I want to validate that the first URL is relative, not absolute and does not start with /. I would not export this validation function but I would like to test it. |
| 04:46:38 | × | cosimone quits (~cosimone@5.171.24.44) (Quit: cosimone) |
| 04:46:46 | → | falafel joins (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
| 04:46:52 | <texasmynsted> | How would you handle this? |
| 04:47:15 | → | SanchayanMaity joins (~Sanchayan@106.200.254.25) |
| 04:51:51 | → | Jonkimi727406120 joins (~Jonkimi@113.87.161.66) |
| 04:52:08 | <texasmynsted> | It seems like if it is exported it is a bit more like an integration test than a unit test. |
| 04:52:24 | <texasmynsted> | I do not care what it is called though |
| 04:55:47 | × | MrSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 04:56:19 | → | fxg joins (~fxg@unaffiliated/fxg) |
| 04:58:22 | <dsal> | My first choice is usually property tests. Define what a kinds of things make up a valid relative URL. Verify you parse it as such. |
| 05:00:48 | <dsal> | You can get a massive amount of test coverage (usually including things you didn't think of) this way. I assume you've got a RelativeURL type. You just need an Arbitrary instance and a way to serialize it to a string in the format the parser wants. Then you just ask if there's any valid RelativeURL that can't be parsed as a RelativeURL. |
| 05:02:01 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
| 05:05:14 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 05:07:22 | × | Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 272 seconds) |
| 05:07:52 | × | whatisRT quits (~whatisRT@2002:5b41:6a33:0:d589:f18c:8211:e758) (Quit: ZNC 1.7.5 - https://znc.in) |
| 05:08:17 | <dsal> | Your test could be something like this: |
| 05:08:18 | <dsal> | @check read . show >>= (===) |
| 05:08:20 | <lambdabot> | +++ OK, passed 100 tests. |
| 05:09:14 | <dsal> | I use that kind of thing when I hand-write read or show (or do some other kind of parser/serialize thing). |
| 05:16:07 | → | ggole joins (~ggole@2001:8003:8119:7200:1c3c:45be:a6d:c507) |
| 05:19:03 | <texasmynsted> | :-) |
| 05:19:25 | <texasmynsted> | nice |
| 05:19:27 | <texasmynsted> | thank you |
| 05:20:26 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 05:21:31 | hackage | time 1.11.1 - A time library https://hackage.haskell.org/package/time-1.11.1 (AshleyYakeley) |
| 05:28:02 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 260 seconds) |
| 05:31:31 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 05:32:01 | × | texasmynsted quits (~texasmyns@212.102.45.121) (Remote host closed the connection) |
| 05:32:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:32:52 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 05:35:56 | × | redmp quits (~redmp@mobile-166-137-178-144.mycingular.net) (Ping timeout: 240 seconds) |
| 05:37:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 05:38:24 | → | christo joins (~chris@81.96.113.213) |
| 05:49:26 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 05:52:30 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 05:52:49 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 05:55:39 | → | koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com) |
| 05:55:39 | × | koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (Changing host) |
| 05:55:39 | → | koala_man joins (~vidar@unaffiliated/koala-man/x-2491903) |
| 05:59:41 | → | knupfer joins (~Thunderbi@i59F7FFC3.versanet.de) |
| 06:03:14 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 06:08:02 | → | guest112` joins (~user@49.5.6.87) |
| 06:08:16 | → | Jonkimi727406120 joins (~Jonkimi@113.87.161.66) |
| 06:09:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:12:15 | × | guest1123 quits (~user@49.5.6.87) (Ping timeout: 256 seconds) |
| 06:12:36 | × | knupfer quits (~Thunderbi@i59F7FFC3.versanet.de) (Ping timeout: 256 seconds) |
| 06:12:48 | × | Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 265 seconds) |
| 06:14:12 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 06:23:14 | → | Jonkimi727406120 joins (~Jonkimi@113.87.161.66) |
| 06:24:13 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 06:28:18 | → | cur8or joins (~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) |
| 06:29:15 | × | dennisb quits (~dennisb@89-160-106-195.cust.bredband2.com) (Ping timeout: 256 seconds) |
| 06:32:58 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:35:21 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
| 06:36:05 | → | maksio joins (~user@185.246.204.42) |
| 06:39:59 | × | Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 260 seconds) |
| 06:42:13 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 06:43:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 06:43:54 | × | Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
| 06:44:05 | → | Jonkimi727406120 joins (~Jonkimi@113.87.161.66) |
| 06:44:33 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 06:45:02 | × | falafel quits (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds) |
| 06:46:19 | → | coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
| 06:51:15 | → | Sarma joins (~Amras@unaffiliated/amras0000) |
| 06:53:03 | → | dansho joins (~dansho@ip68-108-167-185.lv.lv.cox.net) |
| 06:57:45 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 07:04:03 | → | rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
| 07:08:23 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 07:08:23 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 07:08:42 | × | rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds) |
| 07:10:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:10:53 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 07:11:13 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 07:11:33 | × | ironmarx quits (~ironmarx@185.163.110.116) (Remote host closed the connection) |
| 07:13:18 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 07:15:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 07:15:51 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 07:18:07 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:18:36 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 07:25:04 | × | sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine) |
| 07:26:18 | → | chaosmasttter joins (~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) |
| 07:27:29 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 07:32:06 | → | JohnONolan joins (~JohnONola@217.146.82.202) |
| 07:32:24 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 07:33:02 | × | jlamothe quits (~jlamothe@198.251.55.207) (Quit: leaving) |
| 07:34:49 | × | cur8or quits (~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) (Ping timeout: 272 seconds) |
| 07:36:24 | → | Ariakenom joins (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
| 07:37:32 | × | maksio quits (~user@185.246.204.42) (Ping timeout: 260 seconds) |
| 07:38:46 | × | acidjnk_new quits (~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:39:17 | → | acidjnk_new joins (~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de) |
| 07:39:18 | × | darjeeling_ quits (~darjeelin@122.245.219.209) (Ping timeout: 256 seconds) |
| 07:39:29 | → | Franciman joins (~francesco@host-82-51-90-98.retail.telecomitalia.it) |
| 07:41:05 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 07:41:16 | × | acidjnk_new quits (~acidjnk@p200300d0c719ff94358934eb0dfd70c0.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:41:36 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 07:41:41 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 07:42:23 | → | cur8or joins (~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) |
| 07:43:40 | → | dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
| 07:44:20 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:45:14 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-kgipcwwyhxxkjxhq) |
| 07:46:37 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 07:47:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:48:32 | → | francesco_ joins (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
| 07:48:37 | × | Franciman quits (~francesco@host-82-51-90-98.retail.telecomitalia.it) (Ping timeout: 260 seconds) |
| 07:49:30 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 07:50:16 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 07:51:06 | → | jlamothe joins (~jlamothe@198.251.55.207) |
| 07:53:07 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:54:49 | × | SanchayanMaity quits (~Sanchayan@106.200.254.25) (Quit: SanchayanMaity) |
| 07:55:13 | → | SanchayanMaity joins (~Sanchayan@106.200.254.25) |
| 07:58:03 | → | darjeeling_ joins (~darjeelin@122.245.219.209) |
| 08:00:36 | → | invaser joins (~Thunderbi@31.148.23.125) |
| 08:00:45 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 08:01:05 | → | bitmagie joins (~Thunderbi@200116b806ed110085bc8dfe3e60bb59.dip.versatel-1u1.de) |
| 08:02:24 | francesco_ | is now known as Franciman |
| 08:04:14 | → | invaser1 joins (~Thunderbi@178-133-218-247.mobile.vf-ua.net) |
| 08:04:14 | × | taurux quits (~taurux@net-188-152-78-21.cust.dsl.teletu.it) (Ping timeout: 256 seconds) |
| 08:04:16 | × | invaser1 quits (~Thunderbi@178-133-218-247.mobile.vf-ua.net) (Client Quit) |
| 08:04:27 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 08:04:40 | → | jespada joins (~jespada@90.254.245.49) |
| 08:04:50 | × | bitmagie quits (~Thunderbi@200116b806ed110085bc8dfe3e60bb59.dip.versatel-1u1.de) (Client Quit) |
| 08:06:51 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 08:07:06 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 08:07:38 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds) |
| 08:07:51 | × | kish` quits (~oracle@unaffiliated/oracle) (Ping timeout: 256 seconds) |
| 08:11:15 | → | m0rphism joins (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
| 08:11:16 | × | toorevitimirp quits (~tooreviti@117.182.183.18) (Remote host closed the connection) |
| 08:12:01 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 246 seconds) |
| 08:12:22 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 08:13:05 | × | andos quits (~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 240 seconds) |
| 08:14:43 | → | toorevitimirp joins (~tooreviti@117.182.183.18) |
| 08:14:51 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:17:15 | → | Lycurgus joins (~niemand@98.4.114.74) |
| 08:18:27 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 08:19:55 | → | alp joins (~alp@2a01:e0a:58b:4920:21cf:ab8e:85fd:bb5c) |
| 08:20:56 | × | toorevitimirp quits (~tooreviti@117.182.183.18) (Remote host closed the connection) |
| 08:22:05 | × | Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds) |
| 08:22:39 | → | toorevitimirp joins (~tooreviti@117.182.183.18) |
| 08:22:42 | × | cur8or quits (~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) (Ping timeout: 260 seconds) |
| 08:22:46 | → | Jonkimi727406120 joins (~Jonkimi@113.87.161.66) |
| 08:22:47 | → | _linker_ joins (~linker@2a02:a31a:a041:9a80:1550:ab25:bf6f:9a3a) |
| 08:26:00 | hackage | mu-protobuf 0.4.0.3 - Protocol Buffers serialization and gRPC schema import for Mu microservices https://hackage.haskell.org/package/mu-protobuf-0.4.0.3 (AlejandroSerrano) |
| 08:27:27 | <Xnuk> | What are the benefits of the Monad concept in other language, if you have to explain? |
| 08:27:34 | → | cur8or joins (~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) |
| 08:28:38 | × | toorevitimirp quits (~tooreviti@117.182.183.18) (Remote host closed the connection) |
| 08:28:56 | × | drbean quits (~drbean@TC210-63-209-85.static.apol.com.tw) (Ping timeout: 240 seconds) |
| 08:30:32 | → | toorevitimirp joins (~tooreviti@117.182.183.18) |
| 08:30:47 | <merijn> | almost none, since most other languages don't have typeclasses nor type inference |
| 08:31:25 | <Xnuk> | Lots of people say "Monad is good and important concept", but I still think Monad is just one of typeclasses satisfying `(>>=)` and `return`. |
| 08:32:25 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 08:32:43 | <Xnuk> | merijn: I completely agree |
| 08:34:00 | hackage | typesafe-precure 0.7.10.1 - Type-safe transformations and purifications of PreCures (Japanese Battle Heroine) https://hackage.haskell.org/package/typesafe-precure-0.7.10.1 (igrep) |
| 08:34:35 | <dminuoso> | 09:31:25 Xnuk | Lots of people say "Monad is good and important concept", but I still think Monad is just one of typeclasses satisfying `(>>=)` and `return`. |
| 08:34:39 | <dminuoso> | You're thinking just right. :) |
| 08:34:56 | <dminuoso> | The usefulness of monad comes from not using it, but writing code polymorphically over it. |
| 08:35:43 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 08:36:25 | × | fxg quits (~fxg@unaffiliated/fxg) (Ping timeout: 240 seconds) |
| 08:36:33 | <dminuoso> | Well and not having to remember different names for functions that all follow the same shape, the same reason we have say `<>` and `mempty` |
| 08:36:47 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
| 08:37:00 | hackage | hlint 3.2.3 - Source code suggestions https://hackage.haskell.org/package/hlint-3.2.3 (NeilMitchell) |
| 08:37:30 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:37:43 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 08:37:43 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds) |
| 08:37:49 | <Xnuk> | dminuoso: "The usefulness of monad comes from not using it" Can I steal your words |
| 08:37:52 | <[exa]> | Xnuk: 'first-class overloaded code sequencing with assignment' is the main feature the other languages should be after, imo |
| 08:38:03 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
| 08:38:04 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 08:38:09 | <dminuoso> | Xnuk: Oh haha sorry. That was supposed to read "not from using it" |
| 08:38:32 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 08:38:42 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:38:50 | <tomsmeding> | 23:16:42 maerwald | hmm, we need latex support on tomsmeding paste |
| 08:38:55 | <tomsmeding> | I await your case maerwald |
| 08:39:06 | <dminuoso> | tomsmeding: I think it was cheek-in-tongue.. |
| 08:39:12 | <tomsmeding> | :p I think so too |
| 08:39:13 | <dminuoso> | Considering the surrounding discussion. :p |
| 08:39:23 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 08:39:24 | <dminuoso> | Oh haha. tongue-in-cheek |
| 08:39:34 | <dminuoso> | Doing it the other way is anatomically difficult |
| 08:39:46 | <tomsmeding> | kind of |
| 08:42:11 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 08:43:43 | → | stu002 joins (77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) |
| 08:44:54 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 08:46:27 | → | raichoo joins (~raichoo@dslb-178-001-144-018.178.001.pools.vodafone-ip.de) |
| 08:49:38 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 08:51:35 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds) |
| 08:51:50 | → | danvet_ joins (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) |
| 08:52:00 | → | solonarv joins (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) |
| 08:54:01 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 08:55:03 | × | denisse quits (~spaceCat@gateway/tor-sasl/alephzer0) (Ping timeout: 240 seconds) |
| 08:55:17 | → | f-a joins (~f-a@151.68.193.237) |
| 08:55:57 | → | SanchayanM joins (~Sanchayan@171.76.82.54) |
| 08:57:34 | × | SanchayanMaity quits (~Sanchayan@106.200.254.25) (Ping timeout: 256 seconds) |
| 09:00:00 | hackage | servant-openapi3 2.0.1.1 - Generate a Swagger/OpenAPI/OAS 3.0 specification for your servant API. https://hackage.haskell.org/package/servant-openapi3-2.0.1.1 (maksbotan) |
| 09:00:07 | × | sureyeaah quits (shauryab98@gateway/shell/matrix.org/x-mqricolhiyievodh) (Quit: Idle for 30+ days) |
| 09:00:48 | × | ph88^ quits (~ph88@2a02:8109:9e00:7e5c:31ca:eef6:b3d5:eefb) (Quit: Leaving) |
| 09:01:45 | → | plutoniix joins (~q@ppp-27-55-84-13.revip3.asianet.co.th) |
| 09:01:48 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 09:02:48 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 09:03:58 | → | Yumasi joins (~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr) |
| 09:07:06 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-ndxrdxmbozimfblk) (Quit: Connection closed for inactivity) |
| 09:07:08 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 09:08:23 | tinwood_ | is now known as tinwood |
| 09:08:35 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 09:09:05 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 09:11:16 | × | Lord_of_Life quits (~Lord@46.217.221.12) (Changing host) |
| 09:11:16 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 09:12:10 | × | plutoniix quits (~q@ppp-27-55-84-13.revip3.asianet.co.th) (Quit: Leaving) |
| 09:13:50 | <dminuoso> | For associated tyfams, would you rather write `f :: n ~ TyF t => Proxy t -> n -> ...` or `t :: Proxy t -> TyF t -> ...`? |
| 09:15:29 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 09:15:58 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 09:16:48 | → | kuribas joins (~user@ptr-25vy0i8kkf9triykmnn.18120a2.ip6.access.telenet.be) |
| 09:18:07 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 09:18:35 | <kuribas> | I don't understand how you can make effects independent of the order. |
| 09:18:56 | <kuribas> | For example ExceptT and StateT, at one point you have to decide which one takes precedence right? |
| 09:19:20 | <kuribas> | like, is state passed when throwing an exception? |
| 09:19:30 | → | supercoven joins (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) |
| 09:19:58 | <kuribas> | both are valid IMO |
| 09:21:46 | → | borne joins (~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de) |
| 09:22:16 | × | danvet_ quits (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving) |
| 09:22:25 | × | hololeap quits (~hololeap@unaffiliated/hololeap) (Ping timeout: 240 seconds) |
| 09:23:16 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
| 09:24:09 | × | supercoven quits (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:24:23 | → | supercoven joins (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) |
| 09:24:23 | × | supercoven quits (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:24:38 | → | supercoven joins (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) |
| 09:24:38 | × | supercoven quits (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:24:53 | → | supercoven joins (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) |
| 09:24:53 | × | supercoven quits (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:25:08 | → | supercoven joins (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) |
| 09:25:08 | × | supercoven quits (~Supercove@dsl-hkibng31-54fae3-133.dhcp.inet.fi) (Max SendQ exceeded) |
| 09:31:10 | × | jbox quits (~atlas@unaffiliated/jbox) (Quit: WeeChat 2.9) |
| 09:34:14 | → | travis_scott joins (~prateekpr@37.231.243.133) |
| 09:34:22 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 09:34:33 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 09:34:46 | × | travis_scott quits (~prateekpr@37.231.243.133) (Quit: leaving) |
| 09:38:02 | × | Lycurgus quits (~niemand@98.4.114.74) (Quit: Exeunt) |
| 09:40:22 | <merijn> | kuribas: Hence why the typeclassy mtl approach doesn't work so well |
| 09:41:26 | × | cur8or quits (~cur8or@2c0f:fbe1:3:17:d58e:e362:b2fa:46da) (Ping timeout: 264 seconds) |
| 09:41:27 | <kuribas> | merijn: you mean the typeclasses don't show the order? |
| 09:41:45 | <merijn> | yeah |
| 09:41:52 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0) |
| 09:42:46 | <kuribas> | That's why I never write functions that have mtl typeclass constraints. |
| 09:42:58 | <kuribas> | I just use them as convenience inside my own transformer stacks. |
| 09:43:56 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 09:43:58 | <kuribas> | where I already *know* the order, so it doesn't matter. |
| 09:44:53 | × | stu002 quits (77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) (Remote host closed the connection) |
| 09:44:53 | → | cur8or joins (~cur8or@72canterbury.cybersmart.co.za) |
| 09:45:41 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 09:46:23 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 09:46:56 | <cads> | does ghc have installation directions hidden somewhere in the manual? I may be missing it https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ |
| 09:47:15 | <cads> | the 6.2 instructions had it as chapter 2 https://downloads.haskell.org/~ghc/6.2/docs/html/users_guide/users-guide.html |
| 09:48:47 | <Uniaika> | cads: https://www.haskell.org/ghcup/ |
| 09:50:21 | → | larou joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
| 09:51:13 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
| 09:51:52 | <cads> | thanks Uniaika |
| 09:52:04 | <Uniaika> | you're welcome |
| 09:52:26 | cads | likes that there are clear wsl instructions |
| 09:53:05 | <cads> | so the idea is that haskell platform takes care of install, so GHC docs don't need to have an install chapter? |
| 09:53:56 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 09:55:11 | <merijn> | cads: tbh, the install instructions on *nix of GHC itself are basically just "./configure --prefix=path/to/install && make install" and in the README, so that doesn't really warrant a user guide thing. And the windows story is still a bit of a mess |
| 09:55:45 | <cads> | g h c u p - a slightly perverse claim :D |
| 09:58:48 | <merijn> | rats...I just realised I need to refactor my code to handle connections to multiple databases, that's gonna suck >.> |
| 09:59:16 | <cads> | merijn, I did see that, but of course I managed to encounter a totally inexcplicable make issue, and wished I had something more to sanity check that I had not missed some dependency or important config parameter |
| 09:59:36 | <merijn> | cads: Which platform? Linux? |
| 09:59:41 | <cads> | WSL |
| 09:59:53 | <cads> | so yes/no |
| 09:59:55 | <merijn> | ah, yeah, that's probably rather untested ;) |
| 10:00:35 | <cads> | well I will give credit to gh-ketchup, because the WSL solution /worked/ https://www.haskell.org/ghcup/ |
| 10:01:26 | <cads> | and it's right there under my unobservant nose. It felt really good as a user experience to finally see something that I had some reason to believe will work <3 |
| 10:01:26 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 10:01:46 | <maerwald> | gh-ketchup? |
| 10:01:53 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 10:02:14 | → | rsoeldner joins (c3916504@195.145.101.4) |
| 10:02:24 | <cads> | for some reason I see ghcup and my brain turns it into gh-ketchup |
| 10:02:40 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 10:02:41 | cads | shrugs |
| 10:03:13 | <Uniaika> | cads: fantastic hahaha |
| 10:03:18 | <cads> | usually if I'm making a wierd mnemonic or nick-name that's a sign that I like it and will remember it |
| 10:03:39 | × | rsoeldner quits (c3916504@195.145.101.4) (Remote host closed the connection) |
| 10:03:51 | <cads> | Uniaika, whoever put that wsl line there has my specific thanks and admiration! |
| 10:03:55 | <Uniaika> | < merijn> rats...I just realised I need to refactor my code to handle connections to multiple databases, that's gonna suck >.> // RIP 💀 |
| 10:04:08 | <Uniaika> | cads: héhé, you may ask for maerwald I think? |
| 10:04:22 | <guest112`> | is ghc available on linux distro on arm? |
| 10:04:34 | <merijn> | guest112`: Yes * |
| 10:04:44 | <merijn> | * - some masochism maybe required |
| 10:04:46 | <Uniaika> | *conditions may apply |
| 10:04:50 | <guest112`> | merijn: I tried archlinuxarm, there's no ghc yet |
| 10:04:57 | <maerwald> | https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-armv7-deb10-linux.tar.xz |
| 10:05:02 | <Uniaika> | guest112`: which ARM arch? |
| 10:05:22 | <guest112`> | Uniaika: arm v8 |
| 10:05:24 | <Uniaika> | if it's armv7 there is a bindist, as maerwald showed |
| 10:05:25 | <Uniaika> | ah |
| 10:05:34 | <guest112`> | aha |
| 10:05:48 | <maerwald> | I think angerman is currently the only one doing ARM love? |
| 10:05:52 | <merijn> | guest112`: arm is a tier2 architecture, so it requires some amount of DIY involved, depending on exactly which architecture, etc. |
| 10:06:14 | <guest112`> | maerwald: it's debian only? |
| 10:06:51 | <Uniaika> | hmm I think it's for debian derivatives too, guest112` |
| 10:06:53 | <maerwald> | well, who cares... just have to fix your dynamic libs |
| 10:06:55 | <guest112`> | merijn: is it in debian's repo? could I use apt to install |
| 10:07:19 | <angerman> | PSA: Do not use arm for anything critical right now. The rts is seriously broken wrt correctness. |
| 10:07:35 | <guest112`> | dynamic libs on arm, I think that's a lot |
| 10:07:50 | <angerman> | Head with the llvm backend is ok, it you don’t use perf. |
| 10:08:42 | ← | f-a parts (~f-a@151.68.193.237) () |
| 10:08:51 | <angerman> | If you must use older GHCs. Ensure you use single threaded only. |
| 10:09:43 | <cads> | merijn, do you think WSL will become the primary path for haskell on windows? |
| 10:09:52 | <angerman> | Patched 8.6.5 that’s somewhat usable https://github.com/input-output-hk/ghc/tree/release/8.6.5-iohk |
| 10:10:24 | <angerman> | Ghc 9.2 will likely be pretty good on arm. |
| 10:11:46 | × | guest112` quits (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
| 10:12:22 | <arahael> | angerman: Sweet. :) |
| 10:12:51 | <cads> | Uniaika, this is the commit that adds the line - thanks Julian Ospald / ! https://gitlab.haskell.org/haskell/ghcup-hs/-/commit/8c4cde3d14ca79e8dac95cc3fd63581be2cda4b2 |
| 10:13:19 | <cads> | though I am not 100% on the attribution - could be a that Julian applied a patch |
| 10:14:53 | <maerwald> | lol |
| 10:15:17 | <cads> | lol, was it really you, maerwald ? |
| 10:15:57 | × | sphalerite quits (~sphalerit@NixOS/user/lheckemann) (Quit: reboot time!) |
| 10:16:16 | <maerwald> | gitlab shows nickname if you hover over the real name |
| 10:19:05 | <aplainzetakind> | So I can't handle encoding: https://gist.github.com/aplainzetakind/155843dab732f0aeffb5bb0e3b679021 |
| 10:19:24 | <aplainzetakind> | When I try this out I gen invalid utf8 bytes. |
| 10:19:34 | <aplainzetakind> | s/gen/get |
| 10:19:44 | <dminuoso> | Of course, not every byte sequence is valid UTF8. |
| 10:20:01 | <dminuoso> | With md5 in the pipeline, you're essentially generating pseudo random bytes |
| 10:20:07 | → | sphalerite joins (~sphalerit@NixOS/user/lheckemann) |
| 10:20:31 | tomsmeding | expects you want to encode the bytes as hexadecimal |
| 10:20:47 | <aplainzetakind> | That makes sense. |
| 10:21:09 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 10:21:38 | <dminuoso> | aplainzetakind: Check out base16-bytestring |
| 10:21:47 | <dminuoso> | (Or base64-bytestring) |
| 10:23:21 | <aplainzetakind> | How do I get from String to those? |
| 10:24:13 | × | Jonkimi727406120 quits (~Jonkimi@113.87.161.66) (Ping timeout: 264 seconds) |
| 10:24:19 | <aplainzetakind> | Ah I need this only to decode? |
| 10:24:26 | <aplainzetakind> | No encode. |
| 10:24:34 | <merijn> | You probably just wanna show the resulting Digest |
| 10:24:34 | → | hidedagger joins (~nate@unaffiliated/hidedagger) |
| 10:25:06 | <dminuoso> | https://hackage.haskell.org/package/cryptonite-0.27/docs/src/Crypto.Hash.Types.html#line-86 |
| 10:25:12 | <merijn> | That's what works for cryptonite |
| 10:25:12 | <dminuoso> | That seems to run it through base16-bytestring already indeed. |
| 10:25:19 | <aplainzetakind> | merijn: Argh, it has Show. OK. |
| 10:25:24 | <merijn> | And this seems to use the same API |
| 10:25:34 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 10:26:21 | fendor_ | is now known as fendor |
| 10:26:35 | <aplainzetakind> | Yes using show in place of T.unpack . T.decodeUtf8 . md5DigestBytes just works. |
| 10:26:37 | <aplainzetakind> | Thanks. |
| 10:28:34 | × | hidedagger quits (~nate@unaffiliated/hidedagger) (Client Quit) |
| 10:30:36 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving) |
| 10:32:20 | <cads> | maerwald, thank you thank thank you for caring about wsl users! |
| 10:32:57 | <maerwald> | I think native ghcup on windows could be a thing too, but I haven't had anyone knowledgable about msys2 speak up on how to do it. |
| 10:33:23 | <maerwald> | And handling that right basically determines most of the user experience. |
| 10:33:45 | <cads> | imo anything that does linux on windows and uses mingw/msys rather than wsl is now a smell |
| 10:34:04 | <cads> | but I don't REALLY know what I am talking about, lmao |
| 10:34:14 | <cads> | just using that internally |
| 10:34:18 | × | kadoban quits (kadobanmat@gateway/shell/matrix.org/x-kttvbwikdhecuywx) (Quit: Bridge terminating on SIGTERM) |
| 10:34:18 | × | jeffcasavant[m] quits (jeffcasava@gateway/shell/matrix.org/x-uqeetjdjsxvnlnzz) (Quit: Bridge terminating on SIGTERM) |
| 10:34:18 | × | Ericson2314 quits (ericson231@gateway/shell/matrix.org/x-hlgbkoswcxilbeqd) (Quit: Bridge terminating on SIGTERM) |
| 10:34:19 | × | dominicusin[m] quits (dominicusi@gateway/shell/matrix.org/x-qrkglxioyiapvbuy) (Quit: Bridge terminating on SIGTERM) |
| 10:34:19 | × | drozdziak1 quits (drozdziak1@gateway/shell/matrix.org/x-xyfuxdepxamenewg) (Quit: Bridge terminating on SIGTERM) |
| 10:34:19 | × | PotatoHatsue quits (berbermanp@gateway/shell/matrix.org/x-cjitwcshsbuodjyn) (Quit: Bridge terminating on SIGTERM) |
| 10:34:19 | × | fgaz quits (fgazmatrix@gateway/shell/matrix.org/x-nhvyoqyawfdgtgqa) (Quit: Bridge terminating on SIGTERM) |
| 10:34:20 | × | themsay[m] quits (themsaymat@gateway/shell/matrix.org/x-ioynzpwjpjzmejjh) (Quit: Bridge terminating on SIGTERM) |
| 10:34:20 | × | unclechu quits (unclechuma@gateway/shell/matrix.org/x-guiiopktxpzvwhvz) (Quit: Bridge terminating on SIGTERM) |
| 10:34:20 | × | lambdaclan quits (lambdaclan@gateway/shell/matrix.org/x-hhpdgpqllhwmhgtm) (Quit: Bridge terminating on SIGTERM) |
| 10:34:21 | × | hsiktas[m] quits (hsiktasmat@gateway/shell/matrix.org/x-jpmuglwgcakxllmq) (Quit: Bridge terminating on SIGTERM) |
| 10:34:21 | × | betrion[m] quits (betrionmat@gateway/shell/matrix.org/x-xwiqijmgzeynpvoj) (Quit: Bridge terminating on SIGTERM) |
| 10:34:23 | × | wanaks[m] quits (wanaksmatr@gateway/shell/matrix.org/x-hwcfdrwbfomwajud) (Quit: Bridge terminating on SIGTERM) |
| 10:34:26 | × | falling-edge[m] quits (falling-ed@gateway/shell/matrix.org/x-gqfvjootjpkyvsru) (Quit: Bridge terminating on SIGTERM) |
| 10:34:27 | × | dyniec[m] quits (dyniecmatr@gateway/shell/matrix.org/x-zwmchqxypgwrfvvf) (Quit: Bridge terminating on SIGTERM) |
| 10:34:27 | × | elpfen[m] quits (elpfenmatr@gateway/shell/matrix.org/x-drqtnjthyplttipt) (Quit: Bridge terminating on SIGTERM) |
| 10:34:28 | × | ComaGrayce[m] quits (commagrays@gateway/shell/matrix.org/x-dqibnbgwhohubrkt) (Quit: Bridge terminating on SIGTERM) |
| 10:34:28 | × | domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Quit: Bridge terminating on SIGTERM) |
| 10:34:28 | × | ttc quits (tomtauma1@gateway/shell/matrix.org/x-ipfwgcjvwwdcokds) (Quit: Bridge terminating on SIGTERM) |
| 10:34:28 | × | Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-okkoowimutlrlfkb) (Quit: Bridge terminating on SIGTERM) |
| 10:34:28 | × | sm[m] quits (simonmicma@gateway/shell/matrix.org/x-vlvwwxdsuamzwmii) (Quit: Bridge terminating on SIGTERM) |
| 10:34:29 | × | jkaye[m] quits (jkayematri@gateway/shell/matrix.org/x-rgucqpzlqszwinfz) (Quit: Bridge terminating on SIGTERM) |
| 10:34:29 | × | rednaZ[m] quits (r3dnazmatr@gateway/shell/matrix.org/x-uudppykggjqnwgdt) (Quit: Bridge terminating on SIGTERM) |
| 10:34:29 | × | srid quits (sridmatrix@gateway/shell/matrix.org/x-wcquiejsxgjdmcxb) (Quit: Bridge terminating on SIGTERM) |
| 10:34:29 | × | pqwy[m] quits (pqwymatrix@gateway/shell/matrix.org/x-ywgcsarxvhxyblcm) (Quit: Bridge terminating on SIGTERM) |
| 10:34:29 | × | johnnyboy[m] quits (gifumatrix@gateway/shell/matrix.org/x-djygzhrhshoknqyz) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | iinuwa quits (iinuwamatr@gateway/shell/matrix.org/x-cburarlywoxtjfrp) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | zerstroyer[m] quits (zerstroyer@gateway/shell/matrix.org/x-thvxsfmerzqegbym) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-srizjjooaoqrlgvr) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | jesser[m] quits (jessermatr@gateway/shell/matrix.org/x-fnrjbdbcxycnmdhs) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | ThaEwat quits (thaewraptm@gateway/shell/matrix.org/x-dfjdlbdjkbnyawpv) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | siraben quits (sirabenmat@gateway/shell/matrix.org/x-moaedtsqvaqtshxu) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | camlriot42 quits (camlriotma@gateway/shell/matrix.org/x-iyuyyccohcedziwd) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | mikr[m] quits (mikrdavral@gateway/shell/matrix.org/x-xaesttypbsiulkoz) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | wi[m] quits (w1gzmatrix@gateway/shell/matrix.org/x-xtlrgyxrbktyedto) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | andreabedini[m] quits (andreabedi@gateway/shell/matrix.org/x-mbuhwpnbmozobgqs) (Quit: Bridge terminating on SIGTERM) |
| 10:34:30 | × | patier[m] quits (patiermatr@gateway/shell/matrix.org/x-defohognfbqcqriu) (Quit: Bridge terminating on SIGTERM) |
| 10:34:31 | × | maralorn quits (maralornma@gateway/shell/matrix.org/x-qdyphvplrxcjzfoq) (Quit: Bridge terminating on SIGTERM) |
| 10:34:31 | × | tersetears[m] quits (tersetears@gateway/shell/matrix.org/x-sudqunulnrivtufh) (Quit: Bridge terminating on SIGTERM) |
| 10:34:32 | × | tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) (Max SendQ exceeded) |
| 10:34:33 | × | psydruid quits (psydruidma@gateway/shell/matrix.org/x-tkomzubgcyrydslv) (Quit: Bridge terminating on SIGTERM) |
| 10:34:33 | × | rab24ack[m] quits (rab24ackma@gateway/shell/matrix.org/x-psmufgypmrylcnyv) (Quit: Bridge terminating on SIGTERM) |
| 10:34:35 | × | theduke quits (thedukem1@gateway/shell/matrix.org/x-gnkymjnxqweoqcmt) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | lnxw37d4 quits (lnxw37d4ma@gateway/shell/matrix.org/x-gplzcqsrpqncxxzx) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | alexfmpe quits (alexfmpema@gateway/shell/matrix.org/x-rqudkbffvwwbtfrf) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | michaelpj quits (michaelpjm@gateway/shell/matrix.org/x-xcnlzlahcxbogqup) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | jtojnar quits (jtojnarmat@gateway/shell/matrix.org/x-xtyqemcpdpeklcda) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | TekShifter[m] quits (tekshifter@gateway/shell/matrix.org/x-xtsbzpbdrwjrjwbu) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | boistordu1 quits (boistordum@gateway/shell/matrix.org/x-zpdpvjbuxlhmobsh) (Quit: Bridge terminating on SIGTERM) |
| 10:34:36 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
| 10:34:47 | × | chreekat[m] quits (chreekatma@gateway/shell/matrix.org/x-hzsdhguuchtmbexg) (Quit: Bridge terminating on SIGTERM) |
| 10:34:48 | × | jlv quits (jlvjustinl@gateway/shell/matrix.org/x-gfijbqrqwhvwkgqs) (Quit: Bridge terminating on SIGTERM) |
| 10:34:48 | × | loprakoa[m] quits (loprakoama@gateway/shell/matrix.org/x-uehnwgnrwlslrkww) (Quit: Bridge terminating on SIGTERM) |
| 10:34:48 | × | miseenplace[m] quits (miseenplac@gateway/shell/matrix.org/x-ywbimksbsmmywabw) (Quit: Bridge terminating on SIGTERM) |
| 10:34:49 | × | CRTified[m] quits (schnecfkru@gateway/shell/matrix.org/x-qudvjaxqzetifqrv) (Quit: Bridge terminating on SIGTERM) |
| 10:34:49 | × | berberman[T] quits (berberma4@gateway/shell/matrix.org/x-jhiqdhcukfrwwucl) (Quit: Bridge terminating on SIGTERM) |
| 10:34:49 | × | alephu5[m] quits (alephu5mat@gateway/shell/matrix.org/x-ldzorvnirgjegsey) (Quit: Bridge terminating on SIGTERM) |
| 10:34:50 | <cads> | but it makes sense from the perspective of how much msft is investing in it, and how much more comfortable it is |
| 10:35:22 | × | Codaraxis quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Remote host closed the connection) |
| 10:35:29 | → | tsrt^ joins (tsrt@ip98-184-89-2.mc.at.cox.net) |
| 10:35:42 | <cads> | does ghcup compete with stack? Or can I see it as part of? |
| 10:36:46 | <maerwald> | cads: not really. I personally use stack and ghcup together in some docker images to build static executables (because ghcup provides alpine bindists that stack doesn't) |
| 10:37:06 | <maerwald> | you can tell stack to use system GHCs and then use ghcup to manage them |
| 10:37:12 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 10:37:16 | × | jedws quits (~jedws@101.184.150.93) (Ping timeout: 246 seconds) |
| 10:37:54 | <maerwald> | but stack doesn't help you much when you want to use cabal with multiple GHCs |
| 10:38:34 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 10:38:36 | <maerwald> | so you could say cabal + ghcup is kind of a substitute for stack for some use cases |
| 10:38:40 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 246 seconds) |
| 10:38:41 | <cads> | and how much user share can we estimate it pulls? Is it well enough accepted for Darcs installation instructions to mention it? Currently they mention stack, and cabal. IMO these aren't the beginning of the story in windows, but ghcup is. |
| 10:39:02 | <cads> | https://darcsbook.acmelabs.space/chapter02.html#installing-darcs |
| 10:39:44 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 10:40:51 | → | jedws joins (~jedws@101.184.150.93) |
| 10:41:41 | → | theduke joins (thedukem1@gateway/shell/matrix.org/x-fkzkadqaqklwkoxx) |
| 10:42:50 | tomsmeding | is a happy user of ghcup, please spread |
| 10:43:12 | <maerwald> | I'm not sure, the last haskell survey result had a data bug, but it's probably somewhere between 9-20% |
| 10:43:51 | <cads> | oo, we have a survey? |
| 10:43:55 | <maerwald> | https://taylor.fausak.me/2019/11/16/haskell-survey-results/#s2q1 |
| 10:44:03 | <maerwald> | https://taylor.fausak.me/2020/11/22/haskell-survey-results/#s2q1 |
| 10:44:12 | <cads> | and up to 1/5th is really something |
| 10:47:06 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 10:48:27 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 10:49:05 | <cads> | Hmm, I notice that the haskell call to action calls users to type a haskell expression, but now download a haskell installer or binary package |
| 10:50:42 | <cads> | If we look at go-lang.org - it has a code tester plus download button. Rust-lang.org has a download button, and then a notably accessible download page with a) Large flat download buttons in attention catching colors b) a curl line for deploying rustup. |
| 10:51:01 | <cads> | this is what windows user see https://imgur.com/a/ZI4UsBT |
| 10:51:24 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:51:45 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 10:52:40 | <maerwald> | cads: you may want to comment on https://gitlab.haskell.org/ghc/ghc/-/issues/18104 |
| 10:53:00 | <cads> | could we borrow this "flat buttons mean actions" motif, and give haskel.org a awesome, rounded, regal purple button saying "Download Haskell" or "Get Started", and make similar updates for the download page? |
| 10:53:23 | <maerwald> | And https://github.com/haskell-infra/www.haskell.org/issues/12 |
| 10:53:49 | → | zerstroyer[m] joins (zerstroyer@gateway/shell/matrix.org/x-gegiretuusxprcab) |
| 10:53:50 | → | CRTified[m] joins (schnecfkru@gateway/shell/matrix.org/x-eenugdcfqkikhazz) |
| 10:53:50 | → | iinuwa joins (iinuwamatr@gateway/shell/matrix.org/x-nirgmkkuiglbzdym) |
| 10:53:50 | → | berberman[T] joins (berberma4@gateway/shell/matrix.org/x-gbdkkegajrsrxxkg) |
| 10:53:50 | → | themsay[m] joins (themsaymat@gateway/shell/matrix.org/x-ijyhmdsdchceasci) |
| 10:53:50 | → | ComaGrayce[m] joins (commagrays@gateway/shell/matrix.org/x-hgvgmfuatspyagpw) |
| 10:53:50 | → | Ericson2314 joins (ericson231@gateway/shell/matrix.org/x-tegudoxxgcuckrrp) |
| 10:53:50 | → | sm[m] joins (simonmicma@gateway/shell/matrix.org/x-kwpeizyjcphohngd) |
| 10:53:50 | → | PotatoHatsue joins (berbermanp@gateway/shell/matrix.org/x-libkhcmbrdqpqido) |
| 10:53:51 | → | ttc joins (tomtauma1@gateway/shell/matrix.org/x-lgjugwvkytxobgef) |
| 10:53:51 | → | Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-qinronskgvjuesgd) |
| 10:53:51 | → | siraben joins (sirabenmat@gateway/shell/matrix.org/x-kbzgfwlklcotpjnz) |
| 10:53:51 | → | domenkozar[m] joins (domenkozar@NixOS/user/domenkozar) |
| 10:53:51 | → | psydruid joins (psydruidma@gateway/shell/matrix.org/x-mpmiqxkbrlzaygik) |
| 10:53:51 | → | lambdaclan joins (lambdaclan@gateway/shell/matrix.org/x-cunxvrjdwttunvim) |
| 10:53:51 | → | sureyeaah joins (shauryab98@gateway/shell/matrix.org/x-xujaibeehyrzrqgr) |
| 10:53:51 | → | ThaEwat joins (thaewraptm@gateway/shell/matrix.org/x-eowhntdvamvdarxm) |
| 10:53:51 | → | hnOsmium0001[m] joins (hnosmium00@gateway/shell/matrix.org/x-cujgdqencyyvcwtx) |
| 10:53:51 | → | fgaz joins (fgazmatrix@gateway/shell/matrix.org/x-ckdeidekxaxmbkrv) |
| 10:53:51 | → | SlackIntegration joins (slackbotma@gateway/shell/matrix.org/x-jwlsctxhtztxaioq) |
| 10:53:51 | → | lnxw37d4 joins (lnxw37d4ma@gateway/shell/matrix.org/x-gyetbkvikjbbsrrd) |
| 10:53:51 | → | tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-yuvadosdugsnqrxf) |
| 10:53:51 | → | boistordu joins (boistordum@gateway/shell/matrix.org/x-mdyiyodwbwwmjcwq) |
| 10:53:51 | → | hsiktas[m] joins (hsiktasmat@gateway/shell/matrix.org/x-diupvlqwumdpqenf) |
| 10:53:51 | → | chreekat[m] joins (chreekatma@gateway/shell/matrix.org/x-qrurbafjmusxfuce) |
| 10:53:52 | → | rednaZ[m] joins (r3dnazmatr@gateway/shell/matrix.org/x-ozioktnmvrvopylv) |
| 10:53:52 | → | pqwy[m] joins (pqwymatrix@gateway/shell/matrix.org/x-qkyseftxctvdhmhh) |
| 10:53:52 | → | maralorn joins (maralornma@gateway/shell/matrix.org/x-opsadexttgzjqxrr) |
| 10:53:52 | → | micahsovereign[m joins (micahsover@gateway/shell/matrix.org/x-frusjvfqlxbbwchl) |
| 10:53:52 | → | unclechu joins (unclechuma@gateway/shell/matrix.org/x-fmibtulmvlcrrtyt) |
| 10:53:52 | → | michaelpj joins (michaelpjm@gateway/shell/matrix.org/x-bpqwjlstbvbemkvx) |
| 10:53:52 | → | jtojnar joins (jtojnarmat@gateway/shell/matrix.org/x-ygesxqztjkwljyzz) |
| 10:53:52 | → | dominicusin[m] joins (dominicusi@gateway/shell/matrix.org/x-qzmdyqsqeazfuaho) |
| 10:53:52 | → | drozdziak1 joins (drozdziak1@gateway/shell/matrix.org/x-vthisqiohgxugfqd) |
| 10:53:53 | → | srid joins (sridmatrix@gateway/shell/matrix.org/x-ddfumpcsdmsgnklz) |
| 10:53:53 | → | kadoban joins (kadobanmat@gateway/shell/matrix.org/x-ufwuzjufmgpbpvll) |
| 10:53:53 | → | PotatoHatsue|T joins (berbermanm@gateway/shell/matrix.org/x-ofrgdpmkybpiprzw) |
| 10:53:53 | → | jeffcasavant[m] joins (jeffcasava@gateway/shell/matrix.org/x-javvwevsrvfabsjm) |
| 10:53:53 | → | johnnyboy[m] joins (gifumatrix@gateway/shell/matrix.org/x-grtayloopdscsgus) |
| 10:53:53 | → | camlriot42 joins (camlriotma@gateway/shell/matrix.org/x-iykqiffyqrfswvid) |
| 10:53:53 | → | kaychaks_riot joins (kaychaksma@gateway/shell/matrix.org/x-wzfqmwqobnsimpzc) |
| 10:53:55 | → | jkaye[m] joins (jkayematri@gateway/shell/matrix.org/x-xgtxrdifoozwqxqt) |
| 10:53:56 | → | loprakoa[m] joins (loprakoama@gateway/shell/matrix.org/x-jggrqgksdtnpxwbo) |
| 10:53:56 | → | TekShifter[m] joins (tekshifter@gateway/shell/matrix.org/x-cfzrvymgkwpsjlwz) |
| 10:53:56 | → | betrion[m] joins (betrionmat@gateway/shell/matrix.org/x-lhecpqwtjkkiglwb) |
| 10:53:56 | → | miseenplace[m] joins (miseenplac@gateway/shell/matrix.org/x-wnnpqyuemudervxu) |
| 10:53:56 | → | wi[m] joins (w1gzmatrix@gateway/shell/matrix.org/x-ywaugiascvhtlbjk) |
| 10:53:57 | → | mikr[m] joins (mikrdavral@gateway/shell/matrix.org/x-wijhaydyfjgkrnqd) |
| 10:53:57 | → | falling-edge[m] joins (falling-ed@gateway/shell/matrix.org/x-ingloazughuslvcy) |
| 10:53:57 | → | alexfmpe joins (alexfmpema@gateway/shell/matrix.org/x-uqlbdbsmgeiylcyi) |
| 10:53:58 | → | dyniec[m] joins (dyniecmatr@gateway/shell/matrix.org/x-rvvlgbaxbtmzugej) |
| 10:53:58 | → | patier[m] joins (patiermatr@gateway/shell/matrix.org/x-yjfgmheqbsrvyvho) |
| 10:53:58 | → | jesser[m] joins (jessermatr@gateway/shell/matrix.org/x-qvghulfnrarmvzsf) |
| 10:53:58 | → | andreabedini[m] joins (andreabedi@gateway/shell/matrix.org/x-qitqfbtrbfnzbcmu) |
| 10:53:58 | → | wanaks[m] joins (wanaksmatr@gateway/shell/matrix.org/x-evkorzdwtetbvvid) |
| 10:53:58 | → | alephu5[m] joins (alephu5mat@gateway/shell/matrix.org/x-iqqwqpszzorkjviq) |
| 10:53:58 | → | jlv joins (jlvjustinl@gateway/shell/matrix.org/x-pkbhavgbkzlvwwnm) |
| 10:53:59 | → | Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-fchldacgfrgiwucu) |
| 10:53:59 | → | rab24ack[m] joins (rab24ackma@gateway/shell/matrix.org/x-djastgiuyzrwwale) |
| 10:54:02 | → | elpfen[m] joins (elpfenmatr@gateway/shell/matrix.org/x-aisvdtstqpsxnxki) |
| 10:54:07 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 260 seconds) |
| 10:54:41 | <cads> | lol @ issue 12 |
| 10:54:53 | <cads> | sounds like I need to make a proposal, is all |
| 10:55:00 | <cads> | thanks! |
| 10:56:48 | → | boxscape joins (86ab2d68@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.45.104) |
| 10:58:17 | <merijn> | cads: People can't agree on what installer should be used :p |
| 10:58:25 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds) |
| 11:01:14 | <maerwald> | everyone has an opinion, but no one has time :p |
| 11:01:40 | <cads> | makes it very very easy for anyone with the time |
| 11:05:20 | <cads> | unless the other folks think they still get an opinion ;) |
| 11:06:45 | <cads> | like, sorry, but this the new download button, lmao https://imgur.com/a/tVkTeak ;) |
| 11:07:02 | cads | is partially kidding of course |
| 11:09:45 | × | jedws quits (~jedws@101.184.150.93) (Read error: Connection reset by peer) |
| 11:11:37 | <tomsmeding> | oh, can I order the Hask category? that would be neat |
| 11:12:27 | cads | thinks the hask category is the first category they ever heard of |
| 11:13:06 | <tomsmeding> | I believe it's not a particular interesting one, but don't ask me about category theory lol |
| 11:14:40 | <cads> | maerwald, I'm very interested in your docker workers - was trying to set that up earlier today when I thought that the installer story was broken for WSL |
| 11:15:17 | → | christo joins (~chris@81.96.113.213) |
| 11:15:25 | <cads> | I was going to have a ghc docker machine that I send builds to |
| 11:15:40 | × | dansho quits (~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving) |
| 11:16:18 | × | daGrevis quits (~daGrevis@unaffiliated/dagrevis) (Remote host closed the connection) |
| 11:16:44 | → | daGrevis joins (~daGrevis@unaffiliated/dagrevis) |
| 11:17:41 | <cads> | maerwald, also at this juncture I'm thinking about adding buttons, not forcing a choice on the installers. Although adding buttons kind of foregrounds the issue that we don't really have buttons for windows, I'm not against making buttons point to what we've got |
| 11:18:14 | <cads> | ie, that design can even remain in draft status till we figure out what the buttons are |
| 11:20:16 | × | rprije quits (~rprije@124.148.131.132) (Ping timeout: 240 seconds) |
| 11:22:05 | <maerwald> | cads: here's an example https://git.io/Jk6OS |
| 11:26:03 | <cads> | I'm currently building design references from: https://go-lang.org, https://rust-lang.org, https://typescriptlang.org, https://quarkus.io - these are four examples of programming platforms, whose web pages visually eliminate uncertainty and reduce the stress of getting started.. Other examples are welcome! |
| 11:26:21 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 11:27:04 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 240 seconds) |
| 11:27:20 | <cads> | maerwald, thanks! I did not know that I could fork a gist. But I do now, and I'm not ashamed :) |
| 11:28:18 | → | LKoen joins (~LKoen@169.244.88.92.rev.sfr.net) |
| 11:28:51 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 11:29:44 | → | Tops2 joins (~Tobias@dyndsl-095-033-021-036.ewe-ip-backbone.de) |
| 11:33:59 | × | Martinsos quits (~user@cpe-188-129-116-164.dynamic.amis.hr) (Remote host closed the connection) |
| 11:36:48 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 11:38:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:38:32 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 11:41:21 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 11:46:12 | × | oleks quits (~oleks@188.166.34.97) (Remote host closed the connection) |
| 11:46:13 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 11:46:28 | × | Guest42 quits (56ca6780@gateway/web/cgi-irc/kiwiirc.com/ip.86.202.103.128) (Quit: Connection closed) |
| 11:47:00 | → | klixto joins (~klixto@49.188.65.219) |
| 11:47:43 | → | enoq joins (~textual@194-208-146-143.lampert.tv) |
| 11:47:55 | × | SanchayanM quits (~Sanchayan@171.76.82.54) (Quit: SanchayanM) |
| 11:49:53 | → | cosimone joins (~user@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 11:51:14 | → | SanchayanMaity joins (~Sanchayan@171.76.82.54) |
| 11:52:43 | → | _ht joins (~huub@82-169-194-8.biz.kpn.net) |
| 11:53:01 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 11:53:09 | × | klixto quits (~klixto@49.188.65.219) (Quit: WeeChat 2.9) |
| 11:53:32 | × | SanchayanMaity quits (~Sanchayan@171.76.82.54) (Client Quit) |
| 11:53:37 | × | _ht quits (~huub@82-169-194-8.biz.kpn.net) (Client Quit) |
| 11:57:01 | × | alp quits (~alp@2a01:e0a:58b:4920:21cf:ab8e:85fd:bb5c) (Ping timeout: 272 seconds) |
| 11:58:58 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
| 12:01:23 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 12:03:13 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 12:04:16 | → | boxscape33 joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
| 12:05:26 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 12:07:02 | × | chaosmasttter quits (~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 12:07:08 | × | boxscape quits (86ab2d68@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.45.104) (Ping timeout: 246 seconds) |
| 12:08:20 | → | sondr3 joins (~sondr3@cm-84.211.56.132.getinternet.no) |
| 12:10:41 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 12:10:49 | <sondr3> | when writing parsers in Haskell where parsing depends on a sequence you parsec earlier on is there a way to avoid using state? The parser has a 'boundary' that is the end of a multiline string that you find in the beginning of parsing |
| 12:11:21 | × | statusfailed quits (~statusfai@statusfailed.com) (Quit: leaving) |
| 12:13:45 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 12:13:53 | → | statusfailed joins (~statusfai@statusfailed.com) |
| 12:14:38 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:16:09 | <tomsmeding> | that's what monadic parsing is for, right? |
| 12:16:28 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 12:16:43 | <tomsmeding> | do { sep <- choice [string "'", string "\""] ; body <- parseMultilineBody sep ; string sep ; return body } |
| 12:16:54 | → | alp joins (~alp@2a01:e0a:58b:4920:e13d:1293:cf10:eb67) |
| 12:17:05 | <tomsmeding> | of course changed to your particular situation sondr3 |
| 12:17:31 | <tomsmeding> | your state is on the call stack, sort of |
| 12:18:17 | <tomsmeding> | now, if you'd need to know which separator was used in a completely different part of the thing you're parsing, then you probably need some kind of state |
| 12:19:22 | × | cosimone quits (~user@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: ERC (IRC client for Emacs 27.1)) |
| 12:20:13 | <sondr3> | Yeah, the separator is shared between many entries when parsing where each entries separator must be an exact match to the first found separator |
| 12:22:43 | → | Iceland_jack joins (~user@31.124.48.169) |
| 12:22:49 | <tomsmeding> | is that only within the actual multiline string you're parsing? If so, can you not somehow write that parseMultilineBody function? |
| 12:22:57 | <tomsmeding> | note that it gets the used separator as an argument sondr3 |
| 12:24:24 | <sondr3> | The spec says that the content is "any sequence of characters that neither begins with boundary nor NEWLINE boundary", I've been able to make a parser with state where it works |
| 12:24:39 | <sondr3> | But it feels kinda icky and I |
| 12:24:57 | <sondr3> | new keyboard, bear with me x) |
| 12:25:30 | → | oleks joins (~oleks@188.166.34.97) |
| 12:25:30 | × | oleks quits (~oleks@188.166.34.97) (Client Quit) |
| 12:25:36 | <sondr3> | *and I can't get hspec-megaparsec to agree with me when using ParsecT and not just Parsec |
| 12:27:20 | → | chaosmasttter joins (~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) |
| 12:28:01 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 12:30:47 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 12:31:48 | → | danza joins (~francesco@151.74.104.171) |
| 12:32:57 | → | sheb joins (~Thunderbi@77.244.36.161) |
| 12:33:01 | <tomsmeding> | sondr3: which spec? |
| 12:33:29 | <Iceland_jack> | :t curr |
| 12:33:30 | <lambdabot> | error: |
| 12:33:30 | <lambdabot> | • Variable not in scope: curr |
| 12:33:30 | <lambdabot> | • Perhaps you meant ‘curry’ (imported from Data.Tuple) |
| 12:33:31 | <Iceland_jack> | :t curry |
| 12:33:32 | <lambdabot> | ((a, b) -> c) -> a -> b -> c |
| 12:33:43 | <Iceland_jack> | curry :: ((a, b) -> c) |
| 12:33:43 | <Iceland_jack> | -> (a -> b -> c) |
| 12:33:57 | <tomsmeding> | neat, isn't it? |
| 12:34:10 | ← | sheb parts (~Thunderbi@77.244.36.161) () |
| 12:34:15 | <sondr3> | tomsmeding: https://github.com/google/hrx, looked like a simple and useful thing to use when learning parsing in Haskell, it's just the boundary stuff that's tripping me up |
| 12:35:03 | <tomsmeding> | sondr3: can't you do this recursively? |
| 12:35:22 | × | Franciman quits (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving) |
| 12:35:54 | <sondr3> | tomsmeding: the thought have struck me, yeah |
| 12:37:42 | → | sheb joins (~Thunderbi@77.244.36.161) |
| 12:37:55 | × | NieDzejkob quits (~quassel@188.123.215.55) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 12:38:38 | <sondr3> | I'll try doing it recursively, thanks for being a rubber duck tomsmeding :) |
| 12:38:57 | <tomsmeding> | or even in a kind of continuation-passing style; parseComponent :: Maybe Boundary -> Parsec HRX ; parseComponent Nothing = parseNewBoundary >>= parseAfterBoundary ; parseComponent (Just bnd) = parseBoundary bnd >> parseAfterBoundary bnd ; parseAfterBoundary :: Boundary -> Parser HRX ; parseAfterBoundary bnd = do { item <- pComment bnd <|> pFile bnd <|> pDirectory bnd ; HRX rest <- parseComponent |
| 12:38:57 | <tomsmeding> | (Just bnd) ; return HRX (item : rest) } |
| 12:39:00 | <tomsmeding> | or something like that? |
| 12:39:06 | → | NieDzejkob joins (~quassel@188.123.215.55) |
| 12:39:10 | <tomsmeding> | s/ ; /\n/g |
| 12:39:20 | <tomsmeding> | pseudocode though :p |
| 12:39:24 | <tomsmeding> | that's CPS-like |
| 12:40:19 | ← | sheb parts (~Thunderbi@77.244.36.161) () |
| 12:40:38 | boxscape33 | is now known as boxscape |
| 12:40:50 | <sondr3> | Looks like Haskell to me :P thanks! |
| 12:41:08 | <boxscape> | % type TypeOf :: forall t . forall (a :: t) -> *; type family TypeOf t where TypeOf @t a = t |
| 12:41:08 | <yahb> | boxscape: |
| 12:41:09 | <boxscape> | % :kind! TypeOf (Just True) |
| 12:41:09 | <yahb> | boxscape: *; = Maybe Bool |
| 12:41:12 | <boxscape> | I like that this works |
| 12:41:28 | <boxscape> | feels almost like using a dynamically typed language in a way |
| 12:41:44 | → | sheb joins (~Thunderbi@77.244.36.161) |
| 12:43:35 | <boxscape> | % type TypeOf' :: forall t . t -> *; type family TypeOf' a where TypeOf' @t a = t -- I suppose my kind sig is more complicated than it has to be |
| 12:43:36 | <yahb> | boxscape: |
| 12:44:16 | × | danza quits (~francesco@151.74.104.171) (Quit: Leaving) |
| 12:45:31 | hackage | sr-extra 1.85.1 - Module limbo https://hackage.haskell.org/package/sr-extra-1.85.1 (DavidFox) |
| 12:46:04 | <boxscape> | % Just True :: TypeOf (Just True) -- :) |
| 12:46:04 | <yahb> | boxscape: Just True |
| 12:46:23 | → | geekosaur joins (ac3a8b3a@172.58.139.58) |
| 12:48:10 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 12:48:17 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 12:49:10 | × | _xor quits (~xor@74.215.46.133) (Quit: WeeChat 3.0) |
| 12:49:28 | → | hseg joins (~gesh@185.120.126.113) |
| 12:49:31 | → | _xor joins (~xor@74.215.46.133) |
| 12:49:42 | <hseg> | hi. is there some way of dumping all bindings made in ghci? |
| 12:50:12 | <hseg> | have had a long ghci session, would like to save some of the more useful ones for tomorrow |
| 12:50:34 | → | Lden joins (5fa448e7@95.164.72.231) |
| 12:50:41 | <geekosaur> | not really |
| 12:50:53 | <hseg> | pity |
| 12:51:01 | <boxscape> | % :show bindings |
| 12:51:01 | <yahb> | boxscape: type Ghci6.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci6.Fam; type Ghci7.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci7.Fam; type Ghci8.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci8.Fam; type Ghci9.Fam :: forall k (a :: k) (b :: k). a :~: b; type family Ghci9.Fam; type Fam :: forall k (a :: k) (b :: k). a :~: b; type family Fam; type Foo :: *; data Foo = ...; foo |
| 12:51:11 | <boxscape> | hseg does that work? |
| 12:51:45 | <boxscape> | wait |
| 12:51:47 | <boxscape> | it doesn't |
| 12:51:58 | <boxscape> | it doesn't give you the definition, only the type |
| 12:51:59 | <boxscape> | :( |
| 12:52:21 | <hseg> | which is enough to ctrl-r back to the definition |
| 12:52:24 | <hseg> | thanks! |
| 12:52:29 | <boxscape> | np |
| 12:52:34 | <boxscape> | glad it help |
| 12:52:35 | <boxscape> | s |
| 12:52:45 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:53:30 | <hseg> | well, up to a point, but i'll take what i can get |
| 12:53:54 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 12:54:06 | → | SanchayanMaity joins (~Sanchayan@171.76.82.54) |
| 12:56:07 | × | carlomagno quits (~cararell@148.87.23.7) (Remote host closed the connection) |
| 12:58:33 | ← | Lden parts (5fa448e7@95.164.72.231) () |
| 12:58:44 | → | Lden joins (5fa448e7@95.164.72.231) |
| 12:58:55 | × | Lden quits (5fa448e7@95.164.72.231) (Remote host closed the connection) |
| 12:59:18 | → | LDem joins (5fa448e7@95.164.72.231) |
| 13:00:01 | × | hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
| 13:00:43 | → | Tario joins (~Tario@201.192.165.173) |
| 13:01:26 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 13:01:44 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 13:03:02 | → | texasmynsted joins (~texasmyns@212.102.45.103) |
| 13:03:20 | <tomsmeding> | hseg: try ~/.ghc/ghci_history? |
| 13:03:21 | × | texasmynsted quits (~texasmyns@212.102.45.103) (Read error: Connection reset by peer) |
| 13:03:44 | → | texasmynsted joins (~texasmyns@212.102.45.103) |
| 13:04:00 | <tomsmeding> | though it seems it only writes that file upon closing ghci, so that's going to be a scary close :p |
| 13:04:00 | × | ian-mi quits (~ian_milli@c-67-160-8-14.hsd1.wa.comcast.net) (Ping timeout: 256 seconds) |
| 13:04:06 | <hseg> | yup |
| 13:04:19 | <hseg> | and it's of bounded length |
| 13:04:30 | <hseg> | oh well |
| 13:04:31 | <tomsmeding> | oh true |
| 13:04:35 | <hseg> | not too much was lost |
| 13:04:49 | <hseg> | and needed to rewrite what was lost anyway |
| 13:06:44 | <hseg> | recommendations for improvement on http://ix.io/2FbY ? |
| 13:06:45 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 13:07:18 | <hseg> | (trying to compute the cycle notation of a permutation s, written out as [s 1, s 2, ..., s n]) |
| 13:07:26 | <ski> | Xnuk : "Escaping Hell with Monads" by Philip Nilsson in 2017-05-08 at <https://philipnilsson.github.io/Badness10k/escaping-hell-with-monads/> might be interesting |
| 13:08:18 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 13:09:42 | → | lmw joins (866594e0@gateway/web/thelounge/ip.134.101.148.224) |
| 13:09:52 | lmw | hugs ski |
| 13:10:07 | <hseg> | ski: neat exposition |
| 13:10:45 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 13:11:15 | <ski> | dminuoso : "The usefulness of monad comes from not using it" -- actually i think this (the original, unintended, formulation), is partially true, if you interpret it as expressing effects through monads, instead of by having side-effects in the language |
| 13:11:23 | <ski> | heya lmw :) |
| 13:12:28 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 13:13:31 | → | carlomagno joins (~cararell@148.87.23.7) |
| 13:17:22 | <sondr3> | I like how DuckDuckGo displays a little `Safe Haskell: Trustworthy Language: Haskell2010` beneath some Hackage packages |
| 13:17:54 | × | SanchayanMaity quits (~Sanchayan@171.76.82.54) (Quit: SanchayanMaity) |
| 13:18:08 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:18:20 | <Iceland_jack> | :D |
| 13:18:50 | <ski> | (in other words, part of the usefulness of expressing effects through monads (and idioms / applicative functors), rather than through side-effects, is that this clearly (in both types/interfaces, and in code) delineates and distinguishes where effects can occur, rather than potentially every call having a side-effect, thereby helping/improving refactoring and other reasoning) |
| 13:22:22 | <hseg> | ie a particular case of "sufficiently well-typed programs can only go limitedly wrong" |
| 13:22:34 | × | lmw quits (866594e0@gateway/web/thelounge/ip.134.101.148.224) (Quit: The Lounge - https://thelounge.chat) |
| 13:24:14 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) |
| 13:26:11 | <hseg> | TIL: import Module as M imports all names from M as well as qualified versions qualified by M -- particularly useful when only a couple of names overlap |
| 13:26:26 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 264 seconds) |
| 13:30:07 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds) |
| 13:30:27 | × | JohnONolan quits (~JohnONola@217.146.82.202) (Remote host closed the connection) |
| 13:32:32 | × | coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 13:32:51 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 13:33:15 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 13:33:49 | × | LDem quits (5fa448e7@95.164.72.231) (Ping timeout: 245 seconds) |
| 13:34:28 | → | Chi1thangoo joins (~Chi1thang@87.112.60.168) |
| 13:36:36 | × | fendor quits (~fendor@91.141.2.69.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 13:36:46 | → | SanchayanMaity joins (~Sanchayan@171.76.82.54) |
| 13:39:10 | → | ian-mi joins (~ian_milli@2601:600:9c80:322d:fffc:f6e1:b33f:3002) |
| 13:42:31 | → | fendor joins (~fendor@91.141.0.31.wireless.dyn.drei.com) |
| 13:43:05 | × | solonarv quits (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 13:45:35 | × | lxsameer quits (~lxsameer@unaffiliated/lxsameer) (Ping timeout: 260 seconds) |
| 13:47:27 | <tomsmeding> | I recommend using an unqualified import with an "as" binding very sparingly |
| 13:48:09 | <tomsmeding> | it suggests that this module exports names that collide with other things (otherwise you wouldn't need the "as"), and thus probably exports names that are fairly generic and hard to trace back to the module |
| 13:48:26 | <tomsmeding> | which _usually_ makes it hard to understand the code without IDE support |
| 13:48:39 | <tomsmeding> | but this is a very subjective recommendation, use your own judgement :) |
| 13:49:09 | <tomsmeding> | in particular 'import Data.Text as T' is very bad IMO |
| 13:49:18 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 13:49:18 | × | Chi1thangoo quits (~Chi1thang@87.112.60.168) (Read error: Connection reset by peer) |
| 13:53:52 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 13:54:13 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
| 13:55:07 | → | st8less joins (~st8less@2603:a060:11fd:0:b95c:25ed:47d7:d69f) |
| 13:55:16 | × | boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 240 seconds) |
| 13:56:56 | → | PacoV joins (~pcoves@16.194.31.93.rev.sfr.net) |
| 13:56:58 | <PacoV> | Hi. |
| 13:57:45 | <tomsmeding> | hseg: a pattern that I (and other people) do use is something like 'import qualified Data.Map.Strict as Map ; import Data.Map.Strict (Map)' |
| 13:58:05 | <tomsmeding> | re:your IS.IntSet |
| 14:00:15 | → | lxsameer joins (lxsameer@gateway/vpn/protonvpn/lxsameer) |
| 14:00:23 | → | resolve joins (~resolve@178.162.212.214) |
| 14:01:39 | <tomsmeding> | PacoV: 👋 |
| 14:08:08 | → | qwfpmluy joins (2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de) |
| 14:08:44 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 14:10:38 | → | boxscape joins (86ab2c1f@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.31) |
| 14:12:25 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:17:42 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 14:18:05 | → | Achylles joins (~Achylles@177.45.205.205) |
| 14:18:14 | × | cur8or quits (~cur8or@72canterbury.cybersmart.co.za) (Ping timeout: 256 seconds) |
| 14:18:55 | × | Achylles quits (~Achylles@177.45.205.205) (Max SendQ exceeded) |
| 14:19:25 | → | Achylles joins (~Achylles@177.45.205.205) |
| 14:21:57 | × | Achylles quits (~Achylles@177.45.205.205) (Max SendQ exceeded) |
| 14:22:19 | → | mputz joins (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
| 14:22:33 | → | son0p joins (~son0p@181.136.122.143) |
| 14:22:36 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 14:23:52 | → | Achylles joins (~Achylles@177.45.205.205) |
| 14:24:58 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 14:26:17 | <qwfpmluy> | what are the best resources for learning about the different ways of doing `deriving` (deriving via, standalone deriving, ...) in haskell? |
| 14:28:09 | <boxscape> | I think the User Guide, starting here, is a decent resource https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#generalised-derived-instances-for-newtypes |
| 14:28:39 | <boxscape> | (actually standalone deriving is a bit further up) |
| 14:31:11 | <Uniaika> | I wonder if Kowainik didn't make a short guide on that |
| 14:31:31 | <lyxia> | qwfpmluy: https://kowainik.github.io/posts/deriving |
| 14:31:42 | <Uniaika> | glorious, thanks lyxia |
| 14:31:55 | <lyxia> | Uniaika: :P |
| 14:32:08 | <Uniaika> | :9 |
| 14:32:21 | <hseg> | tomsmeding: fair. i use unqualified imports more frequently in ghci for this reason |
| 14:32:56 | <tomsmeding> | ghci is playground anyway :) |
| 14:33:56 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
| 14:33:58 | <qwfpmluy> | boxscape lyxia thanks! |
| 14:34:36 | <hseg> | exactly |
| 14:34:43 | <hseg> | any other recs? |
| 14:34:56 | <hseg> | feel my recursion is a bit ad-hoc |
| 14:36:01 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 14:36:06 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 14:36:56 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 14:37:18 | → | coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) |
| 14:37:24 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 14:37:39 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba) |
| 14:38:00 | hackage | prolude 0.0.0.10 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.10 (saramuse) |
| 14:42:53 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 14:44:53 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 14:45:05 | → | falafel joins (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
| 14:48:25 | × | sheb quits (~Thunderbi@77.244.36.161) (Ping timeout: 240 seconds) |
| 14:48:34 | × | geekosaur quits (ac3a8b3a@172.58.139.58) (Remote host closed the connection) |
| 14:49:32 | → | kish` joins (~oracle@unaffiliated/oracle) |
| 14:49:44 | → | sheb joins (~Thunderbi@77.244.36.161) |
| 14:49:53 | × | larou quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
| 14:51:32 | × | xff0x quits (~fox@2001:1a81:5237:b800:d8c8:bfa0:43f3:b736) (Ping timeout: 260 seconds) |
| 14:51:58 | → | xff0x joins (~fox@2001:1a81:5237:b800:aac7:5690:7e90:eba4) |
| 14:52:14 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) (Ping timeout: 264 seconds) |
| 14:52:14 | × | chaosmasttter quits (~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 14:53:06 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) |
| 14:53:53 | <boxscape> | hmm, I'm idly wondering if there is some way to take a non-IO value and unsafeCoerce it to print a non-empty string to the terminal |
| 14:54:02 | <boxscape> | I suppose there has to be |
| 14:54:16 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 14:54:54 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-lkssxccumhdupnut) |
| 14:57:57 | <tomsmeding> | hseg: I haven't even tried to compile this, but theoretically this should do the same as yours? https://paste.tomsmeding.com/FbLBhrVM |
| 14:58:23 | <tomsmeding> | using ! instead of !? I do assume that the permutation is valid, i.e. doesn't contain out of bounds values |
| 14:58:50 | × | falafel quits (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
| 14:58:54 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 15:00:14 | <dminuoso> | boxscape: Do you mean Debug.Trace.trace ? |
| 15:00:22 | <dminuoso> | That's not quite unsafeCoerce though. |
| 15:01:20 | <boxscape> | dminuoso well, basically what I'm looking for (for no particular reason) is something like (unsafeCoerce (23874893274 :: Integer) :: IO ()), which, when bound to main, prints "hello" to the terminal, or whatever |
| 15:01:44 | <merijn> | boxscape: You are a bad person and you should feel bad >.> |
| 15:01:45 | <dminuoso> | How is that even remotely related to unsafeCoerce... ? |
| 15:01:52 | <boxscape> | merijn sorry :( |
| 15:01:53 | <merijn> | dminuoso: l33t ahx |
| 15:01:58 | <merijn> | s/ahx/hax |
| 15:02:16 | <dminuoso> | boxscape: Why should that print "hello" and not "goodbye"? |
| 15:02:19 | <merijn> | dminuoso: Like those people who write C, but main is a char* whose values happen to be sensible code |
| 15:02:30 | <boxscape> | dminuoso because the number is carefully chosen |
| 15:02:38 | <boxscape> | (though my example is random) |
| 15:02:49 | <dminuoso> | boxscape: Maybe you should elaborate on that "carefully chosen" |
| 15:02:55 | <dminuoso> | because so far you didn't mentoin this |
| 15:03:11 | <dminuoso> | All I got was "I want `unsafeCoerce a` to turn it into a printing thing" |
| 15:03:13 | × | alp quits (~alp@2a01:e0a:58b:4920:e13d:1293:cf10:eb67) (Ping timeout: 272 seconds) |
| 15:03:13 | <dminuoso> | :p |
| 15:03:15 | <merijn> | dminuoso: He wants to figure out how to pick a value, such that unsafeCoerce leads toe xecutable code |
| 15:03:29 | <boxscape> | dminuoso The essence of my wondering is exactly how to find such a value (and I suppose a type that supports it) |
| 15:03:48 | <dolio> | I think that might not even be possible. |
| 15:03:57 | <dminuoso> | boxscape: unsafePerformIO does it for you. |
| 15:03:57 | <boxscape> | hmm what makes you say that? |
| 15:04:06 | <dminuoso> | Or.. wait no. IO is that thing. |
| 15:04:49 | <tomsmeding> | boxscape: I think the problem you're going to run into is that a valid valid of type IO a is going to have lots of pointers in it |
| 15:04:51 | <dminuoso> | boxscape: For starters you have no knowledge of the hepa |
| 15:04:58 | <dminuoso> | *heap |
| 15:05:01 | <dolio> | Because there'd be no closure layout for an integer that actually matches an IO thing. |
| 15:05:13 | <dolio> | Or any other type, really. |
| 15:05:16 | <boxscape> | hmm okay |
| 15:05:32 | <tomsmeding> | a ByteArray# could perhaps accidentally match something? |
| 15:05:38 | <dminuoso> | ByteArray# lives on the heap too. |
| 15:05:46 | <tomsmeding> | sure, but an IO value does too |
| 15:05:58 | <tomsmeding> | and embedded pointers will go wrong though |
| 15:06:47 | × | NieDzejkob quits (~quassel@188.123.215.55) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 15:07:34 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 15:07:53 | → | NieDzejkob joins (~quassel@188.123.215.55) |
| 15:08:08 | <dminuoso> | My feeling tells me boxscape lied about the "for no particular reason" part. |
| 15:08:13 | <hseg> | tomsmeding: yeah, that looks great! my code is an object example of tunnel-visioned use of One Trick(TM) |
| 15:08:20 | <dminuoso> | boxscape: Are you trying to be really sneaky? |
| 15:08:21 | <hseg> | thanks! |
| 15:08:25 | <boxscape> | dminuoso your feelings are lying to you :P |
| 15:08:29 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 15:09:03 | <boxscape> | I was watching a stephanie werich talk about dependent haskell and somehow ended up using unsafeCoerce on a bunch of values with yahb, but I'm not sure how I got there |
| 15:09:29 | <boxscape> | s/werich/weirich |
| 15:09:49 | <hseg> | for some reason i have been avoiding let..in expressions in favor of where clauses recently |
| 15:10:01 | <dminuoso> | boxscape: Can you provide a link to the talk, perhaps indexed at the right time |
| 15:10:07 | <merijn> | hseg: I've always done that, let..in is hard to format nicely and almost never necessary |
| 15:10:29 | <tomsmeding> | hseg: you could even replace the otherwise-line of 'peel' with 'uncurry (:) (peel <$> orbit (IS.findMin remaining) IS.empty)', but that's not making it better :p |
| 15:10:32 | <boxscape> | dminuoso er, I can, but it won't help much because it has nothing to do with unsafeCoerce |
| 15:10:33 | <boxscape> | https://youtu.be/n-b1PYbRUOY?t=1878 |
| 15:10:38 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 15:10:58 | <Iceland_jack> | qwfpmluy: you can use :instances to list possible instance to derive for -XDerivingVia |
| 15:11:14 | <Iceland_jack> | newtype LL a = LL [[a]] deriving (Functor, Applicative) via Compose [] [] |
| 15:11:28 | <Iceland_jack> | :instances Compose [] [], lists (possible) instances to derive |
| 15:11:50 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 15:12:01 | <Iceland_jack> | newtype Age = A Int deriving newtype Num |
| 15:12:01 | <Iceland_jack> | ={equivalent} |
| 15:12:02 | <Iceland_jack> | newtype Age = A Int deriving Num via Int |
| 15:12:16 | <Iceland_jack> | -XDerivingVia generalizes -XGeneralizedNewtypeDeriving |
| 15:13:01 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 15:13:12 | <Iceland_jack> | *generalises?? |
| 15:13:20 | <Iceland_jack> | I must obey UK |
| 15:13:25 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 15:13:31 | <boxscape> | then use -XGeneralisedNewtypeDeriving |
| 15:13:32 | <hseg> | i think this recursion pattern of :: (s -> (a,s)) -> (s -> Bool) -> s -> [a] should generalize, no? |
| 15:13:41 | <Iceland_jack> | I think GND somewhat recently added -XGeneralisedNewtypeDeriving, UK spelling |
| 15:13:59 | <boxscape> | yeah |
| 15:14:17 | <tomsmeding> | :t unfoldr -- hseg |
| 15:14:18 | <lambdabot> | (b -> Maybe (a, b)) -> b -> [a] |
| 15:14:26 | <hseg> | merijn: that must be it |
| 15:14:47 | <hseg> | ok, so peel can be written as an unfoldr |
| 15:15:24 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 15:16:28 | <tomsmeding> | interesting, you're right |
| 15:17:23 | <hseg> | also, IntSet is missing lookupMin :: IntSet -> Maybe Key |
| 15:17:32 | <ski> | @where strategic-deriving |
| 15:17:33 | <lambdabot> | I know nothing about strategic-deriving. |
| 15:18:39 | <ski> | @where+ strategic-deriving "Strategic Deriving" by Veronika Romashkina,Dmitrii Kovanikov in 2020-09-21 at <https://kowainik.github.io/posts/deriving> |
| 15:18:39 | <lambdabot> | Good to know. |
| 15:18:54 | <merijn> | hseg: That's just "fmap fst . minView" ? :) |
| 15:19:13 | → | zaquest joins (~notzaques@5.128.210.178) |
| 15:19:34 | <hseg> | sure... it did encourage me to reverse the iteration of my algorithm |
| 15:19:47 | <hseg> | (i.e. replace "seen" by "to-process") |
| 15:21:18 | <hseg> | also, considering the rest of containers have lookups, it's an annoying hole |
| 15:21:47 | → | andos joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 15:23:01 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 15:23:50 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 15:25:22 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 15:25:23 | <hseg> | tomsmeding: also, orbit's output is flipped from what peel wants |
| 15:25:36 | <hseg> | it returns (seen, orbit) |
| 15:25:53 | <tomsmeding> | oh that's too bad, I wrote it that way to make the <$> nice and compact :p |
| 15:26:56 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 240 seconds) |
| 15:27:01 | <hseg> | no problem -- just add a flip on the unfoldr |
| 15:28:34 | × | enoq quits (~textual@194-208-146-143.lampert.tv) (Read error: Connection reset by peer) |
| 15:29:01 | <tomsmeding> | :t flip flip |
| 15:29:02 | <lambdabot> | b -> (a -> b -> c) -> a -> c |
| 15:29:22 | <hseg> | cool! |
| 15:29:30 | <dminuoso> | flip flip looks cute and useful |
| 15:29:45 | × | mputz quits (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 15:29:47 | <dminuoso> | Just dont know what for. |
| 15:29:55 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 15:30:02 | <hseg> | it reverses operators |
| 15:30:16 | × | toorevitimirp quits (~tooreviti@117.182.183.18) (Remote host closed the connection) |
| 15:30:16 | <xerox_> | :t flip flip flip |
| 15:30:17 | → | christo joins (~chris@81.96.113.213) |
| 15:30:18 | <lambdabot> | (a1 -> ((a2 -> b -> c1) -> b -> a2 -> c1) -> c2) -> a1 -> c2 |
| 15:30:20 | → | enoq joins (~textual@194-208-146-143.lampert.tv) |
| 15:30:25 | <hseg> | > flip flip (++) ", world" "hello" |
| 15:30:27 | <lambdabot> | error: |
| 15:30:27 | <lambdabot> | • Couldn't match expected type ‘[Char] |
| 15:30:27 | <lambdabot> | -> ([a0] -> [a0] -> [a0]) -> c’ |
| 15:30:28 | <maerwald> | :t flip . flip . flip |
| 15:30:30 | <lambdabot> | (a -> b -> c) -> b -> a -> c |
| 15:30:37 | <xerox_> | that's what I was after |
| 15:30:47 | <tomsmeding> | you know what's more fun? iterating 'flip' converges https://paste.tomsmeding.com/SefRZrAn |
| 15:30:49 | <hseg> | > flip flip ", world" (++) "hello" |
| 15:30:52 | <lambdabot> | "hello, world" |
| 15:31:09 | <dminuoso> | Also, random occurences of `flip const id` in your code are good to ensure the reader is paying full attention. |
| 15:31:28 | × | vollenweider_ quits (~vollenwei@4e69b241.skybroadband.com) (Ping timeout: 260 seconds) |
| 15:31:46 | <tomsmeding> | nah, should replace that 'id' with an arbitrarily complex expression |
| 15:31:46 | <hseg> | :t flip const id |
| 15:31:48 | <lambdabot> | c -> c |
| 15:31:56 | <hseg> | neat |
| 15:32:00 | <hseg> | :t id id id id id |
| 15:32:01 | ski | seconds the `where' over `let'-`in' |
| 15:32:01 | <lambdabot> | a -> a |
| 15:32:16 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 15:32:20 | × | tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 15:32:29 | <dminuoso> | ski: Ive started to become quite fond of `let` in pattern guards. |
| 15:32:44 | <dminuoso> | for small bits, this can create less noise than where |
| 15:32:46 | <ski> | that's not `let'-`in', though |
| 15:32:58 | <dminuoso> | sure, just introducing this as a third alternative option |
| 15:33:03 | <ski> | @type map `flip` "foo" |
| 15:33:05 | <lambdabot> | (Char -> b) -> [b] |
| 15:33:14 | <merijn> | dminuoso: What do you need let for in pattern guards? |
| 15:33:14 | ski | nods |
| 15:33:28 | <dminuoso> | merijn: foo x | let y = ... = ... |
| 15:33:36 | <dminuoso> | Same reason you'd use where |
| 15:33:43 | <merijn> | dminuoso: You can just do "| y <- .." |
| 15:33:50 | <boxscape> | "merijn: Like those people who write C, but main is a char* whose values happen to be sensible code" I can't help but look into this now :/ |
| 15:34:00 | <dminuoso> | merijn: We had this discussion before. <- has more potential for bugs |
| 15:34:18 | <merijn> | boxscape: You haven't heard about IOCCC? |
| 15:34:19 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 15:34:20 | <merijn> | boxscape: https://www.ioccc.org/ |
| 15:34:27 | <dminuoso> | i.e. `foo x | F x <- ...` vs `foo x | let Foo x = ...` |
| 15:34:29 | <dminuoso> | err |
| 15:34:35 | <dminuoso> | `foo x | F x <- ...` vs `foo x | let F x = ...` |
| 15:34:48 | <boxscape> | merijn I've heard of it but tbh I haven't really looked at any of their programs in detail |
| 15:34:53 | <dminuoso> | The former will behave differently if we suddenly introduce another contructor to F's type |
| 15:34:59 | → | vollenweider_ joins (~vollenwei@4e69b241.skybroadband.com) |
| 15:35:01 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
| 15:35:39 | ski | . o O ( `blah | let f x = ..x..,... = ...' ) |
| 15:35:56 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 15:36:01 | <dminuoso> | mm, is that allowed? |
| 15:36:03 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 15:36:11 | <dminuoso> | % blah | let f x = x^2 = f 10 |
| 15:36:11 | <yahb> | dminuoso: |
| 15:36:16 | <dminuoso> | Oh cool. TIL |
| 15:36:24 | → | mirrorbird joins (psutcliffe@gateway/vpn/mullvad/psutcliffe) |
| 15:37:11 | <ski> | @wiki Obfuscation |
| 15:37:11 | <lambdabot> | https://wiki.haskell.org/Obfuscation |
| 15:37:58 | × | SanchayanMaity quits (~Sanchayan@171.76.82.54) (Quit: SanchayanMaity) |
| 15:38:50 | <ski> | % let blah y | let f x = x^2,(f . f -> z) <- y = z in blah 2 |
| 15:38:51 | <yahb> | ski: 16 |
| 15:39:40 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 15:40:27 | <ski> | % let blah (f . f -> z) | let f x = x^2 = z in blah 2 |
| 15:40:27 | <yahb> | ski: ; <interactive>:19:11: error: Variable not in scope: f :: b0 -> c1; <interactive>:19:15: error: Variable not in scope: f :: a -> b0 |
| 15:40:30 | <ski> | too bad |
| 15:41:57 | <boxscape> | % let {f | let Nothing = Just 4 = True | otherwise = False} in f |
| 15:41:57 | <yahb> | boxscape: True |
| 15:41:58 | <boxscape> | % let {f | Nothing <- Just 4 = True | otherwise = False} in f |
| 15:41:58 | <yahb> | boxscape: False |
| 15:42:00 | <boxscape> | nice |
| 15:42:41 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 15:42:53 | <boxscape> | I suppose instead of let guards you could use pattern guards with a lazy pattern |
| 15:43:04 | <boxscape> | % let {f | ~Nothing <- Just 4 = True | otherwise = False} in f |
| 15:43:04 | <yahb> | boxscape: True |
| 15:43:07 | <ski> | yes |
| 15:43:59 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 15:44:05 | × | haritz quits (~hrtz@unaffiliated/haritz) (Ping timeout: 240 seconds) |
| 15:44:18 | → | cross joins (~cross@spitfire.i.gajendra.net) |
| 15:45:00 | <ski> | dminuoso : hm, you mean it will suddenly skip to the next alternative, in such case ? |
| 15:45:58 | → | Lycurgus joins (~niemand@98.4.114.74) |
| 15:46:17 | <ski> | `let' in list comprehensions is occasionally useful, too. but sometimes i find myself using `... <- [...]' (singleton list), instead |
| 15:47:36 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 15:48:16 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 240 seconds) |
| 15:48:37 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 15:48:45 | <dminuoso> | ski: Yes. |
| 15:49:15 | <dminuoso> | It can be what you want, but if not it can cause subtle bugs. With let you get an incomplete pattern match warning, so if the "skip" behavior is what you want you can opt-in still |
| 15:49:36 | → | alp joins (~alp@2a01:e0a:58b:4920:d40a:f511:3b1a:9c8d) |
| 15:49:41 | <ski> | yes |
| 15:50:40 | <dminuoso> | <- just saves me a few characters with nothing to gain :) |
| 15:50:46 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:52:53 | <ski> | i see |
| 15:55:13 | → | elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 15:55:42 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 15:56:43 | <hseg> | tomsmeding: http://ix.io/2Fde is my latest version |
| 15:56:49 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds) |
| 15:57:06 | <hseg> | still feels like orbit could be improved, and am not too happy about the required plumbing |
| 15:57:13 | <hseg> | but it's a marked improvement |
| 15:57:19 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 15:57:41 | → | ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta) |
| 15:57:55 | <tomsmeding> | hseg: IS.notMember |
| 15:57:58 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
| 15:58:12 | <hseg> | d'oh! missed it |
| 15:58:25 | → | haritz joins (~hrtz@62.3.70.206) |
| 15:58:25 | × | haritz quits (~hrtz@62.3.70.206) (Changing host) |
| 15:58:25 | → | haritz joins (~hrtz@unaffiliated/haritz) |
| 15:59:12 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-ivgwdqliaykucuud) |
| 15:59:50 | <tomsmeding> | hseg: why not this? orbit x rs = if x `IS.member` rs then (x :) <$> orbit (nextMap ! x) (IS.delete x rs) else (rs, []) |
| 15:59:54 | <hseg> | seems like the underlying logic for orbit is some takeWhileM :: (a -> m Bool) -> f a -> m [a]. not too certain on f |
| 15:59:56 | <Iceland_jack> | :t (??) |
| 15:59:56 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
| 15:59:57 | <lambdabot> | Functor f => f (a -> b) -> a -> f b |
| 15:59:58 | <tomsmeding> | why look ahead once |
| 16:00:00 | <Iceland_jack> | :t (??) (??) |
| 16:00:03 | <lambdabot> | Functor f => a -> f (a -> b) -> f b |
| 16:00:05 | × | micahsovereign[m quits (micahsover@gateway/shell/matrix.org/x-frusjvfqlxbbwchl) (Quit: Idle for 30+ days) |
| 16:00:05 | × | sureyeaah quits (shauryab98@gateway/shell/matrix.org/x-xujaibeehyrzrqgr) (Quit: Idle for 30+ days) |
| 16:00:09 | × | PotatoHatsue|T quits (berbermanm@gateway/shell/matrix.org/x-ofrgdpmkybpiprzw) (Quit: Idle for 30+ days) |
| 16:00:09 | × | hnOsmium0001[m] quits (hnosmium00@gateway/shell/matrix.org/x-cujgdqencyyvcwtx) (Quit: Idle for 30+ days) |
| 16:00:13 | <Iceland_jack> | where flip = (??) @((->) _) |
| 16:00:16 | × | kaychaks_riot quits (kaychaksma@gateway/shell/matrix.org/x-wzfqmwqobnsimpzc) (Quit: Idle for 30+ days) |
| 16:00:26 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 16:00:29 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
| 16:00:51 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 16:01:46 | <hseg> | bc it kills the search immediately |
| 16:02:08 | <hseg> | since the first element has already been deleted by the unfolding |
| 16:02:13 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 16:02:23 | <tomsmeding> | oh right |
| 16:02:51 | <tomsmeding> | but then I'd say fix the unfolding :p |
| 16:03:27 | × | PacoV quits (~pcoves@16.194.31.93.rev.sfr.net) (Remote host closed the connection) |
| 16:03:48 | <hseg> | ofc |
| 16:04:16 | × | sondr3 quits (~sondr3@cm-84.211.56.132.getinternet.no) (Ping timeout: 256 seconds) |
| 16:04:31 | <ski> | Iceland_jack : `flip' used to have that type, in lambdabot. (and `(.)' in lambdabot used to be `fmap') |
| 16:04:33 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 16:04:39 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 16:05:01 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 16:05:48 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:6c06:c056:20b8:f8ee:6530) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:06:28 | × | mirrorbird quits (psutcliffe@gateway/vpn/mullvad/psutcliffe) (Ping timeout: 256 seconds) |
| 16:06:30 | hackage | implicit-hie 0.1.2.4 - Auto generate hie-bios cradles & hie.yaml https://hackage.haskell.org/package/implicit-hie-0.1.2.4 (Avi_Dessauer) |
| 16:07:03 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 260 seconds) |
| 16:07:36 | → | boxscape47 joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
| 16:07:47 | <hseg> | http://ix.io/2Fdl even more plumbing, but it works now |
| 16:08:14 | → | christo joins (~chris@81.96.113.213) |
| 16:09:08 | <hseg> | frankly, orbit feels like a unfoldWhileM :: (a -> m Bool) -> (a -> m a) -> m [a] |
| 16:10:36 | <hseg> | actually, should be :: (a -> Bool) -> m a -> m [a] |
| 16:10:56 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 16:11:07 | <ski> | @hoogle m (Maybe a) -> m [a] |
| 16:11:08 | <lambdabot> | Control.Monad.Loops unfoldM :: Monad m => m (Maybe a) -> m [a] |
| 16:11:08 | <lambdabot> | Data.Typeable gcast1 :: forall c t t' a . (Typeable t, Typeable t') => c (t a) -> Maybe (c (t' a)) |
| 16:11:08 | <lambdabot> | BasePrelude gcast1 :: (Typeable t, Typeable t') => c (t a) -> Maybe (c (t' a)) |
| 16:11:08 | × | boxscape quits (86ab2c1f@gateway/web/cgi-irc/kiwiirc.com/ip.134.171.44.31) (Ping timeout: 260 seconds) |
| 16:12:22 | → | reallymemorable joins (~quassel@2601:180:8300:8fd0:6c3d:6186:76f:e94b) |
| 16:12:43 | <hseg> | hrm... no, that's not quite right |
| 16:12:56 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 16:13:20 | <hseg> | orbit :: State (Int, IntSet) [Int] |
| 16:14:01 | <ski> | not `orbit :: Int -> State IntSet [Int]', then ? |
| 16:14:25 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:14:30 | <hseg> | you're right |
| 16:14:34 | <hseg> | thanks |
| 16:14:46 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 16:15:00 | → | fxg joins (~fxg@unaffiliated/fxg) |
| 16:15:13 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 16:15:15 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:15:19 | <hseg> | right, basically want some kind of iterateUntilM :: (a -> a) -> (a -> m Bool) -> a -> m [a] |
| 16:17:05 | <hseg> | and indeed, given *more* plumbing could just use unfoldM :: (a -> m (Maybe a)) -> a -> m [a] |
| 16:17:36 | <ski> | @hoogle Monad m => (a -> m (Maybe a)) -> a -> m [a] |
| 16:17:37 | <lambdabot> | Control.Monad.Extra iterateMaybeM :: Monad m => (a -> m (Maybe a)) -> a -> m [a] |
| 16:19:16 | → | bmurt joins (~bmurt@c-76-99-78-62.hsd1.pa.comcast.net) |
| 16:19:20 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 272 seconds) |
| 16:19:33 | ← | bmurt parts (~bmurt@c-76-99-78-62.hsd1.pa.comcast.net) () |
| 16:19:33 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 16:19:44 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 16:24:15 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 256 seconds) |
| 16:24:38 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 16:25:00 | → | knupfer joins (~Thunderbi@200116b8240c1500d4c0d3fffeca1dc0.dip.versatel-1u1.de) |
| 16:26:02 | × | knupfer quits (~Thunderbi@200116b8240c1500d4c0d3fffeca1dc0.dip.versatel-1u1.de) (Remote host closed the connection) |
| 16:26:10 | → | knupfer joins (~Thunderbi@200116b8240c1500510f95f5a248f852.dip.versatel-1u1.de) |
| 16:26:19 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:29:01 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 246 seconds) |
| 16:29:31 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 16:31:43 | <ski> | hseg : why the name `cycnot' ? |
| 16:32:16 | <hseg> | cycle notation |
| 16:32:31 | × | alp quits (~alp@2a01:e0a:58b:4920:d40a:f511:3b1a:9c8d) (Ping timeout: 272 seconds) |
| 16:32:47 | <sm[m]> | g'day haskellers |
| 16:34:28 | <ski> | oh, "notation" |
| 16:34:28 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 16:34:48 | ski | was thinking "not" as in negation, and it didn't seem to make sense |
| 16:35:04 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:35:15 | <ski> | heyo, sm[m] |
| 16:35:32 | <hseg> | h |
| 16:35:35 | <hseg> | ah |
| 16:36:00 | <ski> | ok. so each of the computed permutations are cycles |
| 16:36:12 | <hseg> | yup |
| 16:36:34 | <hseg> | basically i'm breaking up the permutation into cycle |
| 16:36:36 | <hseg> | cycles |
| 16:36:47 | <ski> | right |
| 16:37:06 | ski | was just checking it seems to make sense, for the empty permutation |
| 16:38:10 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:38:16 | × | jess quits (jess@freenode/staff/jess) (Remote host closed the connection) |
| 16:38:32 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 16:38:54 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 16:39:01 | → | jess joins (jess@freenode/staff/jess) |
| 16:39:04 | <ski> | hm .. reminds me i was investigating a sort of arithmetic on permutations. addition, multiplication, power/exponential |
| 16:39:38 | <hseg> | oh? |
| 16:40:31 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 16:40:53 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 16:42:00 | hackage | gi-gobject 2.0.25 - GObject bindings https://hackage.haskell.org/package/gi-gobject-2.0.25 (inaki) |
| 16:42:35 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 16:43:55 | → | michalz joins (~user@185.246.204.61) |
| 16:45:18 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 272 seconds) |
| 16:45:35 | → | conal joins (~conal@64.71.133.70) |
| 16:46:53 | → | conal_ joins (~conal@64.71.133.70) |
| 16:48:09 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:50:05 | × | conal quits (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
| 16:50:44 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 16:51:31 | × | Sarma quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 16:52:32 | <ski> | hseg : if ⌜π : A!⌝ and ⌜ϙ : B!⌝, then ⌜π + ϙ : (A + B)!⌝ is defined by ⌜(π + ϙ) (ι₀ x) = ι₀ (π x)⌝ and ⌜(π + ϙ) (ι₁ y) = ι₁ (ϙ y)⌝; ⌜π × ϙ : (A × B)!⌝ is defined by ⌜(π × ϙ) (x₀,x₁) = (π x₀,ϙ x₁)⌝; and ⌜ϙ ^ π : (Bᴬ)!⌝ by ⌜(ϙ ^ π) f = ϙ ∘ f ∘ π⌝ |
| 16:53:24 | × | qwfpmluy quits (2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 245 seconds) |
| 16:53:46 | → | geekosaur joins (ac3a5347@172.58.83.71) |
| 16:54:24 | <hseg> | ok, so basically specializing (|||), (***) and promap to the case that the maps are isos? |
| 16:54:31 | × | Wamanuz2 quits (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Remote host closed the connection) |
| 16:54:48 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 272 seconds) |
| 16:55:22 | × | enoq quits (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com) |
| 16:55:25 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 16:56:06 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 16:56:48 | <ski> | furthermore, you can define ⌜0 : 0!⌝ as the empty permutation, and ⌜1 : 1!⌝ as the identity permutation given by ⌜1 () = ()⌝. then you can for each positive integer ⌜n⌝ define ⌜cₙ : n!⌝ as the cyclic permutation given by ⌜cₙ i = i+1 ⇐ i+1 < n⌝ and ⌜cₙ (i−1) = 0⌝ |
| 16:57:51 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 16:59:07 | <hseg> | yeah -- the unique permutations on the initial and terminal objects. cyclics are more ad-hoc |
| 16:59:21 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 17:01:25 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 17:01:26 | <ski> | hseg : yes. now the question is how these operations behave, wrt cycle decomposition, e.g. if we work with permutations upto isomorphism on the carrier (so that e.g. ⌜c₂ × c₃ = c₆⌝ but ⌜c₂ × c₄ = c₄ + c₄ = 2 × c₄⌝ (where ⌜2 = 1 + 1⌝)) |
| 17:02:11 | <hseg> | "perms mod carrier iso" = cycle types, no? |
| 17:02:48 | <ski> | i think so (if my guess of the meaning of "cycle types" is correct) |
| 17:04:25 | <hseg> | cycle type is basically the multiset of lengths of the cycle decomposition |
| 17:04:59 | <hseg> | product of cyclics will be cyclic iff lengths coprime |
| 17:05:08 | → | mirrorbird joins (~psutcliff@89.45.7.132) |
| 17:05:23 | <hseg> | and in general will decompose into gcd*c_lcm |
| 17:05:39 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 17:05:48 | × | raichoo quits (~raichoo@dslb-178-001-144-018.178.001.pools.vodafone-ip.de) (Quit: Lost terminal) |
| 17:05:50 | <ski> | multiplication distributes over addition. so, to understand multiplication, in terms of cycles, it suffices to understand how to multiply single cycles with each other. as you saw, we can't cancel even multiplication with non-zero permutation. exponentiation of cycles is even more interesting, it can yield a sum of cycles of different lengths |
| 17:06:05 | <ski> | hseg : right |
| 17:06:19 | × | evanm quits (182c6bd4@ool-182c6bd4.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 17:06:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 17:07:55 | → | b7471 joins (~kvirc@139.30.225.215) |
| 17:07:57 | <b7471> | hi |
| 17:08:01 | <ski> | e.g. ⌜c₂ ^ c₂ = 2 + c₂⌝ |
| 17:08:05 | <hseg> | well, that's unsurprising -- exponentiation is just composition |
| 17:08:07 | <ski> | hello b7471 |
| 17:08:10 | <hseg> | yo |
| 17:08:18 | <b7471> | is this the official channel for the programming language haskell |
| 17:08:21 | <b7471> | ? |
| 17:08:22 | <ski> | composition on both sides |
| 17:08:24 | <hseg> | yes |
| 17:08:26 | <ski> | yes, b7471 |
| 17:08:57 | <__monty__> | b7471: You just joined in the middle of discrete math 101 or 201, not sure. |
| 17:09:17 | <hseg> | discrete math coffee talk, more like |
| 17:09:30 | <b7471> | its okay |
| 17:09:45 | <b7471> | i am having big trouble with haskell |
| 17:10:18 | <ski> | mhm ? |
| 17:10:18 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 17:11:05 | × | conal_ quits (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
| 17:12:15 | <hseg> | ski: no, i meant you can embed m! in n! for m=<n, and in particular have π^σ=π^1∘1^σ where the composition is the usual one in (m^n)! |
| 17:12:52 | <hseg> | in particular, it is unsurprising that the composite of two cycles has pretty wild structure |
| 17:12:59 | → | Wamanuz joins (~wamanuz@78-70-34-81-no84.tbcn.telia.com) |
| 17:13:07 | <b7471> | is there any book on how to understand the language |
| 17:13:10 | <b7471> | _ |
| 17:13:11 | <b7471> | ? |
| 17:13:27 | → | conal joins (~conal@66.115.157.94) |
| 17:15:43 | → | geekosaur6 joins (ac3a5347@172.58.83.71) |
| 17:17:01 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 264 seconds) |
| 17:17:09 | × | geekosaur quits (ac3a5347@172.58.83.71) (Ping timeout: 245 seconds) |
| 17:17:24 | <ski> | hseg : yes, that embedding is basically ⌜π ↦ π + idₘ₋ₙ⌝, right ? hm, your ⌜1⌝ is identity (on any carrier). hmm |
| 17:17:33 | <ski> | b7471 : there's several books |
| 17:17:47 | → | Franciman joins (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
| 17:18:08 | <b7471> | more university class ,oriented |
| 17:18:12 | <hseg> | yup. though s/in particular/also have/ |
| 17:18:34 | <ski> | @where PIH |
| 17:18:34 | <lambdabot> | "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html> |
| 17:18:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 17:18:52 | <ski> | @where HPFFP |
| 17:18:52 | <lambdabot> | "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners |
| 17:18:52 | <hseg> | b7471: https://www.cis.upenn.edu/~cis194/spring13/ is pretty good as well |
| 17:18:57 | <ski> | yes |
| 17:20:43 | × | mrus quits (~mrus@128.199.6.232) (Remote host closed the connection) |
| 17:20:48 | <ski> | hseg : oh, the embedding you used was from ⌜1⌝ to ⌜π⌝ respectively to ⌜ϙ⌝ ? |
| 17:21:49 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 17:22:22 | <hseg> | ski: sorry, mixed two unrelated things. firstly you have the enlarging embeddings. but more relevantly, you also can embed n!,m! into n^m! by exponentiation against the identity |
| 17:22:56 | <ski> | b7471 : fwiw, i learned using "Haskell: The Craft of Functional Programming" by Simon Thompson |
| 17:23:24 | <hseg> | and these embeddings decompose exponentiation and commute with each other (basically because of associativity) |
| 17:24:44 | <ski> | @where HTAC |
| 17:24:44 | <lambdabot> | "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook> |
| 17:24:48 | <ski> | @where wikibook |
| 17:24:48 | <lambdabot> | http://en.wikibooks.org/wiki/Haskell |
| 17:27:37 | <ski> | ϙ ^ π = f ↦ ϙ ∘ f ∘ π = (ϙ ∘) ∘ (∘ π) = (ϙ ^ 1) ∘ (1 ^ π) |
| 17:27:40 | <ski> | = (∘ π) ∘ (ϙ ∘) = (1 ^ π) ∘ (ϙ ^ 1) |
| 17:27:42 | <ski> | i see |
| 17:30:15 | <ski> | b7471 : do you have any particular question, or maybe some code you're struggling with ? |
| 17:30:16 | × | s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 272 seconds) |
| 17:30:44 | <b7471> | ski yes i dont know where to begin |
| 17:30:52 | <b7471> | i mean i cant even declare a variable |
| 17:31:00 | <b7471> | and we have homework to do |
| 17:31:19 | <ski> | x :: Int |
| 17:31:23 | <b7471> | i couldnt even install a compiler or interpreter in windows 10 or something like that |
| 17:31:28 | <ski> | will declare `x' to be a variable of type `Int' |
| 17:31:32 | <ski> | x = 42 |
| 17:31:39 | <ski> | will define it to be `42' |
| 17:31:49 | <b7471> | i am using a online interpreter ripl dot it |
| 17:31:51 | → | s00pcan joins (~chris@107.181.165.217) |
| 17:32:05 | <Lycurgus> | tell the instructor ur skipping the dumb hassell or haskell or whatever and doin a practical lang instead |
| 17:32:29 | <b7471> | we are expected to create a function , that takes 4 arguments |
| 17:32:54 | <b7471> | and only if the 4 arguments are the same , the funktion should output: true |
| 17:32:57 | <Lycurgus> | do it in one of FP php pkgs, that have currying |
| 17:33:08 | <ski> | b7471 : hm. tried <https://www.haskell.org/platform/#windows> ? |
| 17:33:09 | <xerox_> | when I try to run the haskell-language-server over ghcup I get this, anybody knows why? I'm stumped https://paste.tomsmeding.com/6zEhhfAi |
| 17:33:45 | <b7471> | i cant install chocoletey thing on windows |
| 17:33:50 | <ski> | b7471 : hm, something like |
| 17:33:51 | <b7471> | there is no setup or something |
| 17:34:00 | hackage | resourcet-pool 0.1.0.0 - A small library to convert a Pool into an Acquire https://hackage.haskell.org/package/resourcet-pool-0.1.0.0 (brandonchinn178) |
| 17:34:06 | <ski> | allFourEqual x y z w = ..x..y..z..w.. |
| 17:34:23 | <b7471> | ? |
| 17:34:38 | <koz_> | b7471: Chocolatey requires you to use PowerShell. Its site has fairly clear instructions on what you gotta do. |
| 17:34:40 | <Sose> | isn't there a Windows installer for Stack atleast? and you could use stack to download and run GHC? |
| 17:34:57 | <Sose> | never installed any haskell tools on windows myself tho.. |
| 17:34:58 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 17:35:07 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 17:35:10 | <Uniaika> | I think there is indeed a windows installer for stack |
| 17:35:17 | <b7471> | Sose you will never be able to |
| 17:35:20 | <maerwald> | xerox_: is that an error even? |
| 17:35:20 | <koz_> | Perhaps - I don't really recall. |
| 17:35:21 | <b7471> | not in this age |
| 17:35:27 | <ski> | b7471 : that would be the start of a function `allFourEqual' that accepts four inputs (parameters/arguments), named `x',`y',`z',`w'. then, after the `=' sign, you'd have to fill in a `Bool'ean expression for checking whether they're all the same/equal |
| 17:35:34 | <koz_> | b7471: You're literally talking to a minimum of one person who has. |
| 17:35:38 | <koz_> | (if not more) |
| 17:36:41 | → | Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
| 17:36:52 | × | knupfer quits (~Thunderbi@200116b8240c1500510f95f5a248f852.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 17:38:31 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 17:38:47 | × | Lycurgus quits (~niemand@98.4.114.74) (Quit: Exeunt) |
| 17:39:28 | × | conal quits (~conal@66.115.157.94) (Quit: Computer has gone to sleep.) |
| 17:40:32 | → | conal joins (~conal@66.115.157.94) |
| 17:40:35 | × | conal quits (~conal@66.115.157.94) (Client Quit) |
| 17:40:44 | <xerox_> | maerwald: it starts back up trying ot compile, over and over, after that message |
| 17:40:49 | <b7471> | i will first watch the online lecture and the try again |
| 17:40:57 | <b7471> | to understand all of this |
| 17:41:00 | <b7471> | i hope |
| 17:41:10 | <b7471> | i will be able within one year |
| 17:41:15 | <b7471> | to make sense of all this |
| 17:41:24 | <b7471> | ist really horrible and bad |
| 17:41:39 | → | mrus joins (~mrus@128.199.8.231) |
| 17:41:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:42:29 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 17:43:07 | <ski> | b7471 : you're welcome to ask questions here, if anything is unclear |
| 17:45:02 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Ping timeout: 264 seconds) |
| 17:45:25 | <xerox_> | maerwald: coc.nvim helpfully says "the server has crashed 5 times I won't run it again", vscode just goes head on never stopping |
| 17:45:26 | <b7471> | how to read the variable |
| 17:45:29 | <b7471> | that i declared |
| 17:45:35 | <b7471> | the variable x |
| 17:46:07 | <b7471> | :t x |
| 17:46:08 | <lambdabot> | Expr |
| 17:46:27 | <geekosaur6> | if you're in ghci or equivalent, just enter x at the prompt |
| 17:47:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 17:48:22 | <maerwald> | xerox_: no idea, I don't use HLS on ghcup codebase frequently |
| 17:48:31 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 17:48:42 | <maerwald> | maybe try to write a different hie.yaml |
| 17:48:52 | <xerox_> | I was looking for some way to figure out where imported stuff is from |
| 17:49:04 | <xerox_> | not married to it, just what I thought of, is there anything else I could use? |
| 17:50:14 | → | alp joins (~alp@2a01:e0a:58b:4920:ece0:78fb:1f80:8fc7) |
| 17:52:05 | × | lxsameer quits (lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 256 seconds) |
| 17:52:12 | × | boxscape47 quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Connection closed) |
| 17:52:45 | → | geekosaur joins (ac3a5347@172.58.83.71) |
| 17:54:51 | <ski> | b7471 : if you have an interactor, where you can enter expressions and get feedback, you should probably be able to just write the variable name `x' in there (assuming `x' is defined globally in your source file) |
| 17:55:21 | <b7471> | i am using an online interpreter |
| 17:55:24 | <ski> | it seems <https://repl.it/> requires a login ? |
| 17:55:28 | <b7471> | called ripl .it |
| 17:55:28 | <ski> | yes |
| 17:55:29 | × | geekosaur6 quits (ac3a5347@172.58.83.71) (Ping timeout: 245 seconds) |
| 17:55:40 | <b7471> | am i logged in |
| 17:56:09 | <ski> | if you're using <https://repl.it/>, i'd guess so ? |
| 17:56:47 | <ski> | (when i click on "Start coding", it asks me to sign up) |
| 17:57:06 | → | lucasb joins (uid333435@gateway/web/irccloud.com/x-detutdhidmcqqrwp) |
| 17:57:50 | <maerwald> | xerox_: let me try |
| 17:57:52 | <b7471> | i signed up to that |
| 17:58:01 | <b7471> | now i am experimenting with it a bit |
| 17:58:14 | <ski> | if you write |
| 17:58:15 | <b7471> | i declared a few variables as you told me to |
| 17:58:17 | <ski> | x :: Int |
| 17:58:19 | <ski> | x = 42 |
| 17:58:31 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 260 seconds) |
| 17:58:39 | <b7471> | yes a was successful in adding two variables together |
| 17:58:44 | <ski> | in the part of the editor where you write programs, that should define `x' as a variable in global scope |
| 17:59:09 | <ski> | if you write e.g. |
| 17:59:22 | <ski> | cube :: Int -> Int |
| 17:59:28 | <ski> | cube x = x * x * x |
| 18:00:04 | <b7471> | what does this mean: cube :: Int -> Int |
| 18:00:10 | <ski> | then this should define a function, called `cube'. the `x' here is unrelated to the previous `x'. this `x' here is a local parameter name, local to the `cube' function definition |
| 18:00:21 | <xerox_> | maerwald: I am getting implicit-hie to see if it creates an entry for 3rdparty/ |
| 18:00:28 | → | geekosaur96 joins (ac3a5347@172.58.83.71) |
| 18:00:34 | → | conal joins (~conal@66.115.157.94) |
| 18:00:35 | <b7471> | ok? |
| 18:00:37 | <ski> | it means that `cube' is a function that consumes an `Int' as input parameter, and produces an `Int' as output result |
| 18:00:48 | <b7471> | aha |
| 18:00:52 | <b7471> | ok |
| 18:00:59 | <ski> | you could define e.g. |
| 18:01:04 | <ski> | isEven :: Int -> Bool |
| 18:01:12 | <ski> | isEven n = n `mod` 2 == 0 |
| 18:01:50 | <maerwald> | xerox_: I don't seem to have this problem |
| 18:01:54 | <ski> | to define a function (a "predicate"), that given an `Int' as input, gives a `Bool'ean result, being `True' if the input was an even integer, and `False' otherwise (i.e. when it was odd) |
| 18:01:57 | <monochrom> | xerox_: If you mean "I imported 10 modules, one of them gives me f, I want to find out which", I first try ":info f", usually it's good enough. Bu its can answer can be cryptic. When I feel like a big hammer, I use GHC's -ddump-minimal-imports |
| 18:02:56 | <maerwald> | xerox_: but I have a cabal.project.local with this content https://paste.tomsmeding.com/Qo3YwsbF |
| 18:02:59 | × | geekosaur quits (ac3a5347@172.58.83.71) (Ping timeout: 245 seconds) |
| 18:03:02 | <b7471> | and what would this expression mean: fourEqual :: Int -> Int -> Int -> Int -> Bool |
| 18:03:03 | <ski> | b7471 : so the type of the input parameter comes before (to the left of) the `->', and the type of output result comes after (to the right of) it, in a type signature of a function |
| 18:03:07 | <b7471> | thats our homework |
| 18:03:29 | <ski> | yes, that means that it accepts four inputs, all of type `Int', and gives back a `Bool'ean as output |
| 18:03:32 | × | incertia_ quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in) |
| 18:03:55 | <maerwald> | xerox_: also make sure 8.10.2 is the default ghc symlink... I believe there were issues with hls when the project ghc isn't the default one |
| 18:03:55 | <b7471> | ok i will try to enter that on ripl |
| 18:04:00 | <ski> | fourEqual :: Int -> Int -> Int -> Int -> Bool |
| 18:04:04 | <ski> | fourEqual x y z w = ..x..y..z..w.. |
| 18:04:35 | <ski> | (you'll have to replace `..x..y..z..w..' by some actual code expression that checks when those four inputs are all equal) |
| 18:04:59 | <ski> | (of course you can choose other parameter names than `x',`y',`z',`w', if you prefer) |
| 18:05:41 | <shapr> | xerox_: Are the same person who wrote GoA? |
| 18:05:54 | <ski> | the lines with `::' in them are called "type signatures". then lines with `=' in them are "defining equations" (or simply "definitions") |
| 18:06:11 | → | incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 18:06:28 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 18:06:29 | <xerox_> | shapr: I am hi buddy (: |
| 18:06:40 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:06:40 | <shapr> | hi hi hi! I haven't seen you since AngloHaskell! |
| 18:06:45 | <xerox_> | I know! |
| 18:06:52 | <xerox_> | that was a good time |
| 18:07:09 | <shapr> | Yeah, lots of fun. It's been a few years though |
| 18:07:41 | <shapr> | xerox_: 20th anniversary of #haskell in ~20 weeks! |
| 18:07:41 | <xerox_> | many years at this point in fact… how time flies |
| 18:07:45 | shapr | hops cheerfully |
| 18:07:54 | <shapr> | xerox_: are you writing Haskell for a living these days? |
| 18:07:55 | <xerox_> | hopefully on a monocycle |
| 18:08:05 | <shapr> | haha, yes! |
| 18:08:10 | <xerox_> | nope! for fun, setting it up to do advent of code :D |
| 18:08:19 | <shapr> | that does sound like fun! |
| 18:08:49 | <shapr> | xerox_: do you write code for a living? |
| 18:08:50 | <xerox_> | how about you? |
| 18:09:02 | <shapr> | I have a Haskell job, it's great fun! |
| 18:09:10 | <shapr> | I'm working for SimSpace |
| 18:09:37 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 18:09:37 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 18:09:37 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 18:09:40 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:09:57 | <xerox_> | looks like serious business |
| 18:10:46 | <maerwald> | I'm picking rust for a new project, but getting devs doesn't seem any easier than haskellers lol (unless you're a bank) |
| 18:11:00 | <maerwald> | so there's that |
| 18:11:15 | → | chaosmasttter joins (~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) |
| 18:11:26 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
| 18:11:54 | <xerox_> | shapr: so yeah I have been programming for a living but I'm not at this very moment in time |
| 18:12:11 | <shapr> | you saved up enough money to coast for a few years? :-D |
| 18:12:46 | → | geekosaur joins (ac3a5347@172.58.83.71) |
| 18:13:09 | <xerox_> | thereabouts (: |
| 18:13:13 | × | alp quits (~alp@2a01:e0a:58b:4920:ece0:78fb:1f80:8fc7) (Ping timeout: 272 seconds) |
| 18:13:24 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:13:52 | <shapr> | yeah, writing code pays well |
| 18:14:13 | <xerox_> | maerwald: gen-hie doesn't see 3rdparty on its own, nor your .local magically saves the day, more digging required... |
| 18:14:14 | × | geekosaur96 quits (ac3a5347@172.58.83.71) (Ping timeout: 245 seconds) |
| 18:14:29 | <maerwald> | xerox_: which cabal version? |
| 18:14:30 | <maerwald> | oooh |
| 18:14:45 | <maerwald> | you must be running 3.2 |
| 18:14:47 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 18:14:52 | <maerwald> | upgrade to 3.4 prerelease |
| 18:15:31 | <xerox_> | ok! |
| 18:16:04 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43) |
| 18:23:45 | → | sand_dull joins (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) |
| 18:28:04 | × | Yumasi quits (~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 18:28:12 | → | jcd joins (~user@2601:282:1300:7cb0::adb4) |
| 18:28:42 | <xerox_> | maerwald: that helped but the 3rdparty stuff still produces the same errors |
| 18:28:55 | <maerwald> | but that doesn't matter I think |
| 18:29:54 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 18:30:01 | <xerox_> | it keeps going in a loop |
| 18:30:24 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 18:30:38 | <maerwald> | ignore the loop, does it actually work? :p |
| 18:30:49 | → | gproto23 joins (~gproto23@unaffiliated/gproto23) |
| 18:33:54 | → | solonarv joins (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) |
| 18:34:10 | <xerox_> | maerwald: nope, both editors hang or give no answers, while running the same neverending output as before in the debug logs |
| 18:34:37 | → | alp joins (~alp@2a01:e0a:58b:4920:99e8:704d:3180:71f2) |
| 18:34:46 | <maerwald> | :D |
| 18:36:42 | <monochrom> | At least it's quiescent now. >:) |
| 18:37:07 | <monochrom> | (The next best thing you can hope for, if you can't prove termination.) |
| 18:37:21 | → | frdg joins (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
| 18:38:08 | <hseg> | ok, a little refactoring later: http://ix.io/2Feg |
| 18:38:48 | <xerox_> | I will propose as next best thing having dinner instead, yeah |
| 18:40:03 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba) (Remote host closed the connection) |
| 18:40:09 | → | lxsameer joins (~lxsameer@unaffiliated/lxsameer) |
| 18:40:45 | → | mpereira joins (~mpereira@2a02:810d:f40:d96:1ca0:7a83:5454:b1ba) |
| 18:41:19 | → | qwfpmluy joins (2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de) |
| 18:43:22 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 18:46:55 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds) |
| 18:47:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 18:47:26 | <hseg> | http://ix.io/2Fek |
| 18:47:55 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 18:48:12 | <hseg> | http://ix.io/2Fel |
| 18:48:39 | → | christo joins (~chris@81.96.113.213) |
| 18:49:14 | <monochrom> | dinner and wine are always good |
| 18:50:33 | × | christo quits (~chris@81.96.113.213) (Read error: No route to host) |
| 18:51:07 | → | christo joins (~chris@81.96.113.213) |
| 18:52:12 | → | Deide joins (~Deide@217.155.19.23) |
| 18:55:25 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 264 seconds) |
| 18:55:29 | × | geekosaur quits (ac3a5347@172.58.83.71) (Ping timeout: 245 seconds) |
| 18:57:36 | <domenkozar[m]> | I'm using async to start two concurrent threads. The first thread is doing stuff and feeding things to a channel. The second one is consuming from channel and doing things based on those message. How could I make the second thread exit once channel is emptied and the first thread is also exited? |
| 18:58:15 | → | cheater joins (~user@unaffiliated/cheater) |
| 18:59:00 | → | knupfer joins (~Thunderbi@200116b8240c1500ace8d9fffee870c4.dip.versatel-1u1.de) |
| 18:59:27 | × | borne quits (~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 18:59:32 | × | knupfer quits (~Thunderbi@200116b8240c1500ace8d9fffee870c4.dip.versatel-1u1.de) (Remote host closed the connection) |
| 18:59:45 | → | knupfer joins (~Thunderbi@200116b8240c15009967b89ece4ca4cf.dip.versatel-1u1.de) |
| 19:01:28 | × | jespada quits (~jespada@90.254.245.49) (Ping timeout: 272 seconds) |
| 19:03:26 | → | jespada joins (~jespada@90.254.245.49) |
| 19:03:38 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
| 19:03:39 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:03:39 | × | Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
| 19:03:49 | <__monty__> | domenkozar[m]: Can you send an exit message? |
| 19:03:50 | <monochrom> | The message type has to include a "quit" case. The first thread has to send the "quit" message. |
| 19:03:59 | × | frdg quits (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) (Quit: Leaving.) |
| 19:04:20 | <monochrom> | Lest it's the "does quiescent imply termination?" question again. |
| 19:05:12 | <dminuoso> | domenkozar[m]: Do you want the second thread to terminate as a "nothing more to do" case, or rather immediately if the first one dies? |
| 19:05:32 | × | revprez_stg quits (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
| 19:05:42 | <dminuoso> | Also, do not forget to consider the case of the first thread receiving an async exception. |
| 19:05:50 | → | geekosaur joins (ac3a53fb@172.58.83.251) |
| 19:06:16 | → | revprez_stg joins (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 19:06:31 | <monochrom> | Ah yeah, I forgot that too. But it's easy to fix: foo `finally` send quit message |
| 19:07:13 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:08:07 | → | elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 19:08:22 | × | Franciman quits (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
| 19:08:55 | <monochrom> | I want to point out that humanity has not thought up any other solution. They have only thought up other packagings of this same solution. |
| 19:10:11 | <monochrom> | For example Unix and C. The writer process has two commands at its disposable, "write" and "close". The writer has to issue "close" at some point of time. Sometimes this is masked by "if the process dies, the OS calls close for you", but it's there. |
| 19:10:42 | <domenkozar[m]> | dminuoso: in "nothing to do case" |
| 19:10:46 | <monochrom> | Well that isn't much different from having two kinds of meessage at your disposal, is it? s/close/send quit message/ |
| 19:11:22 | <dminuoso> | domenkozar[m]: Then the usual technique is to, indeed, decorate the "things" you feed into the channel with some outer signaling layer |
| 19:11:25 | <geekosaur> | "send quit message" is just "close" at a higher protocol level |
| 19:11:33 | <monochrom> | And on the reader side, like wise. You have a "read" command, but it has two kinds of outcomes, "normal" message and "EOF". |
| 19:11:40 | <dminuoso> | data Message = Done | Do Thing |
| 19:11:44 | <dminuoso> | And then you have a channel of Message. |
| 19:11:46 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 19:12:08 | <domenkozar[m]> | dminuoso: so that the last message is Done? |
| 19:12:09 | × | qwfpmluy quits (2e0505e2@HSI-KBW-046-005-005-226.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 245 seconds) |
| 19:12:11 | <dminuoso> | Yes. |
| 19:12:21 | <domenkozar[m]> | hmm that's simple and clever :) |
| 19:12:37 | <domenkozar[m]> | thanks dminuoso ! |
| 19:12:56 | <dminuoso> | To be fair I just rephrased what monochrom, __monty__ and geekosaur also said above. |
| 19:13:34 | <domenkozar[m]> | ah indeed, thanks monochrom & __monty__ :) |
| 19:14:07 | <__monty__> | I definitely don't mind my nick being mentioned in the same breath as those other ones : ) |
| 19:14:18 | × | michalz quits (~user@185.246.204.61) (Remote host closed the connection) |
| 19:14:45 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 240 seconds) |
| 19:14:46 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 272 seconds) |
| 19:15:04 | × | LKoen quits (~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection) |
| 19:15:10 | × | darjeeling_ quits (~darjeelin@122.245.219.209) (Ping timeout: 256 seconds) |
| 19:16:07 | → | LKoen joins (~LKoen@169.244.88.92.rev.sfr.net) |
| 19:17:22 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 19:20:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:23:27 | <texasmynsted> | If you look at the source here --> https://jaspervdj.be/hakyll/reference/src/Hakyll.Web.Redirect.html#createRedirects |
| 19:23:41 | <texasmynsted> | There is a function "redirectToHtml :: Redirect -> String" |
| 19:24:42 | <texasmynsted> | I do not like the string being used, but I think I have no way to replace it short of writing all my own Redirect logic. Right? The Writable type class already has an instance defined. |
| 19:24:43 | × | dqd quits (id@wikipedia/dqd) (Ping timeout: 246 seconds) |
| 19:25:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 19:25:10 | veverak | is now known as JarJar |
| 19:25:15 | JarJar | is now known as veverak |
| 19:26:23 | veverak | is now known as JarJarEatingHawa |
| 19:26:27 | JarJarEatingHawa | is now known as veverak |
| 19:26:33 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 19:26:51 | <hseg> | ok, final version http://ix.io/2FeB. pretty happy with it, but would welcome improvements |
| 19:30:41 | <jcd> | I'm trying to make a String into the type "HTTP String", what's the best way to do this? |
| 19:31:08 | × | conal quits (~conal@66.115.157.94) (Quit: Computer has gone to sleep.) |
| 19:31:08 | <dminuoso> | That depends on what HTTP even is.. |
| 19:31:11 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 19:31:13 | <dminuoso> | And what you want it to mean |
| 19:31:26 | <geekosaur> | depending on where you're doing this, possibly "pure" |
| 19:31:31 | <jcd> | A user-defined data type. |
| 19:31:39 | <dminuoso> | jcd: How is the data type defined? |
| 19:31:49 | <jcd> | data Person = Person |
| 19:31:49 | <jcd> | { firstName :: String |
| 19:31:49 | <jcd> | , lastName :: String |
| 19:31:49 | <jcd> | , age :: Int |
| 19:31:49 | <jcd> | , hometown :: String |
| 19:31:49 | <dminuoso> | Did you define it, or does it appear in a library? |
| 19:31:51 | <geekosaur> | but that depends on what it is and what instances it has |
| 19:32:08 | <jcd> | Ignore that ^, still learning the emacs keychords |
| 19:32:19 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 19:32:21 | <dminuoso> | @where paste -- jcd |
| 19:32:21 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
| 19:33:13 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 264 seconds) |
| 19:34:35 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:35:34 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 256 seconds) |
| 19:35:55 | <jcd> | https://paste.tomsmeding.com/J6ffGVxv |
| 19:36:05 | <jcd> | Thank you in advance |
| 19:37:37 | → | christo joins (~chris@81.96.113.213) |
| 19:38:14 | <jcd> | I want to take input from an arbitrary source, mark it as an HTTP message, and then process the HTTP data structure accordingly. |
| 19:38:15 | <geekosaur> | that code seems somewhat off |
| 19:38:51 | <jcd> | tell me about it haha |
| 19:39:24 | <geekosaur> | readHTTPMessage already does what you want, although it has a pointless "do". I'm not sure what it's supposed to be doing, though |
| 19:40:05 | × | Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 240 seconds) |
| 19:40:31 | → | darjeeling_ joins (~darjeelin@122.245.219.209) |
| 19:40:33 | → | Franciman joins (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
| 19:42:23 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 265 seconds) |
| 19:43:18 | <kuribas> | what would be a good alternative to bash? Something not heavy, but likely installed on any system? |
| 19:43:25 | <kuribas> | and not python |
| 19:43:45 | <kuribas> | wait, wrong channel... |
| 19:43:55 | <chreekat[m]> | Haha |
| 19:44:35 | <chreekat[m]> | But since you asked, I don't think there is a good alternative, not for scripting the Unix shell anyway |
| 19:45:06 | <geekosaur> | zsh, but I'm not sure that's an improvement. |
| 19:45:10 | kuribas | moving the discussion to #haskell-offtopic |
| 19:45:27 | <sm[m]> | aw |
| 19:45:27 | <geekosaur> | and, well, if there were something bettter, there wouldnt be so many bad shell scripts out there |
| 19:45:51 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
| 19:46:05 | <sm[m]> | I think it's bash or python, unless you think writing perl in 2020 is a good idea |
| 19:46:20 | <geekosaur> | some of us still do |
| 19:46:53 | <kuribas> | sm[m]: I never found it a good idea :) |
| 19:47:41 | <sm[m]> | bash + shellcheck |
| 19:47:57 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 19:48:02 | <sm[m]> | well.. would you consider make to be an option ? |
| 19:48:16 | × | b7471 quits (~kvirc@139.30.225.215) (Ping timeout: 240 seconds) |
| 19:48:24 | <maerwald> | kuribas: POSIX shell |
| 19:48:26 | <geekosaur> | make's going to use bash underneath |
| 19:48:33 | <kuribas> | I was trying out gauche-scheme, which is nice, but it's sadly not installed on centos... |
| 19:49:09 | <sm[m]> | o well if you're going to be installing things.. stack scripts can be nice |
| 19:49:12 | <kuribas> | I'd use haskell, but 2GB isn't exactly lightweight... |
| 19:49:17 | <maerwald> | other than that, your only option is perl... there's hardly any system out there without it, because gcc toolchain needs it |
| 19:49:24 | <kuribas> | sm[m]: haskell stack? |
| 19:50:02 | <sm[m]> | yes |
| 19:50:56 | <maerwald> | how is that not 2GB? |
| 19:51:47 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 19:52:04 | <kuribas> | maerwald: it is |
| 19:52:19 | <sm[m]> | I didn't assert that.. but I think it could be.. use system-packaged stack & ghc & haskell deps, tell stack script to use those |
| 19:52:28 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 19:52:55 | <maerwald> | kuribas: static haskell binary? |
| 19:53:31 | <dminuoso> | Mmm, I have a mundane task of running some wget commands to scrape a website. What's the least effort to quickly have a thread pool of 5 things to parallelize this a bit? |
| 19:53:52 | <kuribas> | maerwald: could be, but then it has to be compiled on the same OS. |
| 19:54:13 | <maerwald> | kuribas: what do you mean? |
| 19:54:30 | <kuribas> | dminuoso: gnu parallel? |
| 19:54:36 | → | sondr3 joins (~sondr3@cm-84.211.56.132.getinternet.no) |
| 19:55:01 | <kuribas> | maerwald: I mean linux binaries aren't portable across distros. |
| 19:55:05 | <maerwald> | they are |
| 19:55:10 | <kuribas> | because of glibc differences |
| 19:55:11 | <maerwald> | static binaries |
| 19:55:13 | <maerwald> | I said |
| 19:55:22 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:55:25 | <kuribas> | even static binaries |
| 19:55:27 | <maerwald> | nope |
| 19:55:29 | sm[m] | meant "I think it could be economical with space, using less than 2G" |
| 19:55:31 | <maerwald> | they use musl |
| 19:55:41 | <maerwald> | how do you think ghcup works across all distros? :p |
| 19:55:43 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 19:56:21 | <maerwald> | I even have a github workflow you can copy paste |
| 19:56:23 | <sm[m]> | now we must ask which platforms are to be supported |
| 19:56:25 | <kuribas> | maerwald: you use musl? |
| 19:56:28 | <maerwald> | yes |
| 19:56:35 | <kuribas> | hmm, nice. |
| 19:56:37 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 264 seconds) |
| 19:56:43 | <dsal> | jcd: it'd be good to start with type signatures, but in your case `readHTTPMessage = HTTP_Message` so you might as well just use `HTTP_Message` directly. |
| 19:56:44 | <kuribas> | I should try that... |
| 19:56:53 | → | Codaraxis joins (~Codaraxis@91.193.4.61) |
| 19:57:05 | <maerwald> | kuribas: https://github.com/hasufell/stack2cabal/blob/master/.github/workflows/release.yaml#L32 |
| 19:57:56 | → | N1L5 joins (3ed8ca8d@aftr-62-216-202-141.dynamic.mnet-online.de) |
| 19:58:27 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 19:59:09 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-gbfppsdeuatjrkoa) |
| 20:01:07 | <kuribas> | maerwald: I don't see musl there? |
| 20:01:15 | <maerwald> | kuribas: alpine docker image |
| 20:01:17 | <maerwald> | it uses musl |
| 20:02:07 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 20:02:26 | <maerwald> | so you have two options... you try to use static-haskell.nix and configure stuff for over a week, or just spend 5 minutes with alpine installing some deps :p |
| 20:02:26 | → | dqd joins (id@wikipedia/dqd) |
| 20:02:34 | × | geekosaur quits (ac3a53fb@172.58.83.251) (Ping timeout: 245 seconds) |
| 20:03:03 | <dminuoso> | With what I know now, static-haskell.nix is very easy to use |
| 20:03:08 | <dminuoso> | Assuming you're already confident with nix. |
| 20:03:10 | <maerwald> | I tried, it didn't work |
| 20:03:21 | <maerwald> | then a month later someone from Russia found the bug |
| 20:03:35 | <maerwald> | that's basically how nix is every time |
| 20:04:04 | <dminuoso> | Do you have any link to that? |
| 20:04:34 | <maerwald> | https://github.com/nh2/static-haskell-nix/issues/85 |
| 20:04:42 | <kuribas> | maerwald: that's how *any tooling* is. |
| 20:04:51 | <maerwald> | kuribas: nah, nix is particularly bad |
| 20:04:59 | → | Sarma joins (~Amras@unaffiliated/amras0000) |
| 20:05:16 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection) |
| 20:07:10 | <nh2> | maerwald dminuoso: "Someone from Russia" is quite the odd desccription for qrilka; Kirill is my colleague and a core stack developer. |
| 20:07:27 | <maerwald> | that was a meme |
| 20:07:34 | <maerwald> | I know who he is |
| 20:07:34 | → | geekosaur joins (ac3a53fb@172.58.83.251) |
| 20:07:39 | × | Franciman quits (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving) |
| 20:07:47 | <nh2> | ah sorry, I didn't know that one |
| 20:08:49 | <maerwald> | If a tool requires me to regularly consult experts, then it's a bad tool :p |
| 20:08:52 | <dminuoso> | Also, if I look at this bug, it looks like a stack bug. |
| 20:08:57 | <dminuoso> | Not a nix or static-haskell-nix bug. |
| 20:09:07 | → | Franciman joins (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
| 20:09:45 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 20:10:07 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 20:11:48 | <maerwald> | I must be cursed then, because whenever I use nix I hit all sorts of bugs and ppl keep telling me those aren't nix bugs :D |
| 20:12:22 | → | rprije joins (~rprije@123-243-139-165.tpgi.com.au) |
| 20:12:31 | <nh2> | Well, I have to consult Ben and the Simons regularly for my problems but I'd never call GHC a bad tool :) |
| 20:13:00 | <maerwald> | here's another one https://github.com/input-output-hk/haskell.nix/issues/229 |
| 20:13:29 | × | N1L5 quits (3ed8ca8d@aftr-62-216-202-141.dynamic.mnet-online.de) (Remote host closed the connection) |
| 20:13:44 | <dminuoso> | maerwald: And that is a very very old GHC issue. |
| 20:13:59 | <dminuoso> | One that you can just as easily trip into with your favoured alpine containers... |
| 20:14:22 | <maerwald> | dminuoso: that's weird, because I thought nix is reproducible |
| 20:14:22 | × | knupfer quits (~Thunderbi@200116b8240c15009967b89ece4ca4cf.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 20:15:11 | <dminuoso> | maerwald: Nix is not a silver bullet. The software that is executed by nix has access so things like environment variables. |
| 20:15:27 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 20:15:30 | <dminuoso> | It's why things like flakes is coming |
| 20:15:31 | <maerwald> | then docker seems like a better abstraction, because it doesn't depend on my local environment |
| 20:15:36 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
| 20:15:39 | → | ni291187 joins (~u931732@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca) |
| 20:15:47 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 20:15:48 | ← | lucasb parts (uid333435@gateway/web/irccloud.com/x-detutdhidmcqqrwp) () |
| 20:15:49 | <dminuoso> | Well, Id argue it's a user error because nix can give you pure environments |
| 20:16:05 | <ni291187> | Hello |
| 20:16:07 | → | boxscape joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
| 20:16:09 | <maerwald> | following the README instructions surely isn't a user error |
| 20:16:18 | × | lambda-11235 quits (~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43) (Max SendQ exceeded) |
| 20:16:42 | <maerwald> | (and I did that for static-haskell-nix as well) |
| 20:16:50 | <dminuoso> | Well it's still a very old GHC bug |
| 20:16:52 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/issues/8118 |
| 20:17:22 | <maerwald> | dminuoso: can you guess what the fix is? |
| 20:17:26 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 20:17:32 | <nh2> | maerwald: In any case, here's a thing I'm currently trying to do with nixpkgs and Alpine: Build static GTK executables. I got the C part working in nixpkgs (screenshots in https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-558569895 and below) but not yet the Haskell part. I'd like to do the same with Alpine so I can use it with plain stack. Do you know if that's possible? |
| 20:17:44 | ni291187 | is now known as lightwave |
| 20:18:14 | <maerwald> | I haven't done static gtk yet, would have to try. I have a haskell gtk project I could try it on |
| 20:18:45 | → | lambda-11235 joins (~lambda-11@2600:1700:7c70:4600:6511:46eb:c421:ce43) |
| 20:18:49 | <geekosaur> | gtk likes loading stuff dynamically though |
| 20:19:00 | <maerwald> | dminuoso: setting the locale is not the fix btw :p |
| 20:19:03 | → | taurux joins (~taurux@net-188-152-78-21.cust.vodafonedsl.it) |
| 20:19:07 | × | todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Ping timeout: 265 seconds) |
| 20:19:19 | <maerwald> | geekosaur: you mean it dlopens? |
| 20:19:26 | <geekosaur> | yes |
| 20:19:31 | <maerwald> | blergh |
| 20:19:34 | <nh2> | maerwald: I would try with plain C first as a stepping stone, if you want to give it a shot I made a mini GTK app with 1 button in C here: https://github.com/nh2/static-haskell-nix/tree/c-static-gtk3-apps/meson-tutorial-gtk |
| 20:19:37 | <dminuoso> | maerwald: For your particular occurence I do not know. But at its very core it's a GHC bug. |
| 20:19:41 | <dminuoso> | Or "issue" rather |
| 20:19:58 | <maerwald> | dminuoso: LOCALE_ARCHIVE=/usr/lib/locale/locale-archive nix-script |
| 20:20:25 | <lightwave> | Newbie here... I’ve tried to learn Haskell many times... but it trailed off everything because I often got distracted into busy projects because I could learn enough to understand even the short hello world program... Is there a good book that focus on learning by example? Most resources out there seem to be theory heavy upfront... |
| 20:20:27 | <dminuoso> | nix tends to make such problems more apparent because it's more radical |
| 20:20:28 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 20:20:54 | <dminuoso> | @where cis194 -- lightwave |
| 20:20:55 | <lambdabot> | https://www.seas.upenn.edu/~cis194/spring13/lectures.html |
| 20:20:56 | <sm[m]> | @where HTAC , lightwave |
| 20:20:56 | <lambdabot> | "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook> |
| 20:20:58 | <maerwald> | dminuoso: apparently not, because I'm the only one hitting that bug |
| 20:21:06 | <nh2> | geekosaur: Do you know if it always dlopens stuff, or only for specific functionality? Because my basic button example works so far here: https://github.com/nh2/static-haskell-nix/releases/tag/c-static-gtk3-apps-button-example-2020-11-23 |
| 20:21:17 | <kuribas> | lightwave: learn you a haskell |
| 20:21:25 | <maerwald> | and that's usually when ppl start saying it's a user error, although all I did wat following the instructions :o |
| 20:21:43 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:21:45 | <kuribas> | lightwave: http://learnyouahaskell.com It's focussing a lot on examples. |
| 20:21:47 | <geekosaur> | specific functionality. in particular there's a mode where it can load a UI from a file and then iirc it dlopen()s the components iidentified in the file |
| 20:21:48 | → | knupfer joins (~Thunderbi@i59F7FFC3.versanet.de) |
| 20:22:09 | <dminuoso> | 21:19:58 maerwald | dminuoso: LOCALE_ARCHIVE=/usr/lib/locale/locale-archive nix-script |
| 20:22:13 | <geekosaur> | since the components may not be linked into the executable |
| 20:22:18 | <dminuoso> | Id argue the more proper solution is |
| 20:22:23 | <dminuoso> | LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive" |
| 20:22:27 | <lightwave> | Thanks! |
| 20:22:32 | × | gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 272 seconds) |
| 20:22:45 | <dminuoso> | Presumably this happens inside travis ci? |
| 20:22:53 | <nh2> | geekosaur: Are you referring to e.g. when you make UIs with `glade` (which IIRC saves them to XML files)? |
| 20:23:02 | <geekosaur> | yes |
| 20:23:07 | <maerwald> | dminuoso: no, on my computer |
| 20:23:28 | <geekosaur> | I haven't played with gtk in some years though, something may have changed since I last did it |
| 20:23:29 | <maerwald> | my project is glade, seems like a perfect test then |
| 20:24:53 | <monochrom> | "learn by examples" fails for Haskell as soon as you need I/O because Haskell's I/O story requires accepting a tiny little bit of theory upfront. |
| 20:24:55 | <nh2> | geekosaur: thanks, I've written it down in https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-732405876 and will try it out; I've used glade in the past but only from Python |
| 20:25:06 | × | lightwave quits (~u931732@bras-vprn-nwmkon8540w-lp130-10-142-112-210-136.dsl.bell.ca) (Remote host closed the connection) |
| 20:25:19 | × | ggole quits (~ggole@2001:8003:8119:7200:1c3c:45be:a6d:c507) (Quit: Leaving) |
| 20:26:25 | <hseg> | maerwald: that's why we need a diverse OS/packaging ecosystem. done properly, it serves to fuzz test programs |
| 20:26:43 | <monochrom> | I say that out of real observations here. There were beginners who tried "learn by examples", it quickly degenerated to cargo culting in vain because the beginners could not grasp the difference between "map putStrLn myListOfString" and "mapM_ putStrLn myListOfStrings" because they didn't learn the prerequisite theory. |
| 20:26:49 | <maerwald> | hseg: who's doing that properly? |
| 20:27:13 | <boxscape> | what's the function to see what the class of a particular unicode character is again? |
| 20:27:33 | <geekosaur> | generalCategory |
| 20:27:33 | <hseg> | can't think of anyone off the top of my head right now |
| 20:27:42 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 20:27:44 | <maerwald> | I know of maybe two distros where I'd call a subsections of the packaging done properly. And then there's still a huge part around it that's just outright bad |
| 20:28:33 | <boxscape> | % generalCategory <$> "ꓱ∃" |
| 20:28:33 | <yahb> | boxscape: [OtherLetter,MathSymbol] |
| 20:28:36 | <boxscape> | thanks geekosaur |
| 20:29:27 | <dminuoso> | maerwald: Do you have old packages installed through nix-env? |
| 20:29:36 | <maerwald> | dminuoso: no, I wiped it out several times |
| 20:30:09 | × | copypasteque_ quits (~copypaste@2001:41d0:8:b325::1) (Quit: WeeChat 2.8) |
| 20:30:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 20:30:30 | <hseg> | fair. that's the immediate counterargument -- it's quite possible the fuzzing benefits are outweighed by the costs of disjoint projects trying to interface with each other |
| 20:30:37 | <dminuoso> | maerwald: Mmm, I dont quite understand the state of affairs.. but the underlying cause is a quite interesting change in glibc: https://sourceware.org/glibc/wiki/Release/2.27#Statically_compiled_applications_using_locales |
| 20:30:57 | <maerwald> | hseg: it gets worse when distros start breaking other distros (yes, there are ways to achieve that) |
| 20:30:58 | <dminuoso> | At any rate, the problem shouldn't be apparent anymore. You aren't on an old nix channel, are you? |
| 20:31:32 | <maerwald> | dminuoso: I have no idea. I'm just running a shell script that does nix stuff |
| 20:31:53 | <hseg> | wait what? |
| 20:32:07 | × | kuribas quits (~user@ptr-25vy0i8kkf9triykmnn.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 20:32:34 | <hseg> | are you referring to socially-leading distros making bad decisions that then get cargo-culted? |
| 20:32:44 | <hseg> | or distros using each other's patches blindly? |
| 20:33:23 | <dminuoso> | maerwald: Mmm, yeah. This particular bug is still a sad thing, in part it was ignored because a) there's a workaround (that you have to dig for) and b) it doesn't really apply to nixos users.. |
| 20:33:37 | <maerwald> | hseg: famous instance is skype being broken on gentoo, because debian messed with SONAMEs of a library and the developers built skype on debian. The fix wasn't hard, but yeah. |
| 20:34:01 | <hseg> | :-o |
| 20:34:28 | <maerwald> | rockstar attitude of packagers |
| 20:34:43 | <maerwald> | (debian has a history of that...) |
| 20:34:53 | <dminuoso> | To be fair, it's not like you're paying for any of it. These are just volunteers.. |
| 20:35:08 | → | christo joins (~chris@81.96.113.213) |
| 20:35:11 | <maerwald> | dminuoso: I know. I did packaging for 5 years. |
| 20:36:21 | × | alp quits (~alp@2a01:e0a:58b:4920:99e8:704d:3180:71f2) (Ping timeout: 272 seconds) |
| 20:37:01 | <maerwald> | And there's not much between internal hierarchy fights on the one side and yelling users on the other... such rewarding work :D |
| 20:37:13 | → | alp joins (~alp@88.126.45.36) |
| 20:37:15 | × | _deepfire quits (~user@80.92.100.69) (Read error: Connection reset by peer) |
| 20:37:38 | <dminuoso> | Like you just did. :-) |
| 20:37:45 | <dminuoso> | Well, at least it wasn't directed at them |
| 20:38:35 | <maerwald> | I don't have any expectations of nix devs |
| 20:38:53 | <maerwald> | It's when users have expectations and voice them aggressively |
| 20:39:07 | <maerwald> | I just move on and pick another tool |
| 20:39:34 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 20:39:48 | → | christo joins (~chris@81.96.113.213) |
| 20:40:30 | hackage | numhask 0.7.0.0 - A numeric class heirarchy. https://hackage.haskell.org/package/numhask-0.7.0.0 (tonyday567) |
| 20:43:08 | → | redmp joins (~redmp@mobile-166-137-178-102.mycingular.net) |
| 20:45:00 | <maerwald> | nh2: I think we're out of luck. I can't find static library files of gtk+3 in alpine |
| 20:45:16 | × | solonarv quits (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 20:45:17 | <nh2> | maerwald: can we build them? |
| 20:49:19 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 20:49:34 | × | hseg quits (~gesh@185.120.126.113) (Ping timeout: 265 seconds) |
| 20:50:32 | × | taurux quits (~taurux@net-188-152-78-21.cust.vodafonedsl.it) (Ping timeout: 265 seconds) |
| 20:50:34 | <maerwald> | https://mail.gnome.org/archives/gtk-list/2018-January/msg00006.html |
| 20:51:07 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-kgipcwwyhxxkjxhq) (Quit: Connection closed for inactivity) |
| 20:51:31 | × | AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
| 20:53:52 | × | jcd quits (~user@2601:282:1300:7cb0::adb4) (Remote host closed the connection) |
| 20:54:03 | <nh2> | maerwald: that's a bit outdated, see https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-554589400 -- the author of that email merged my fixes to GTK accidentally breaking its static build in https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1172 |
| 20:55:01 | <nh2> | (it did also work before in autotools, they probably broke it by accident when moving to meson) |
| 20:55:52 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 20:56:09 | × | Franciman quits (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving) |
| 20:56:19 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 20:56:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:56:21 | <nh2> | the backport for gtk3 is https://gitlab.gnome.org/GNOME/gtk/merge_requests/1196 -- should be in gtk3 >= 3.24.13, so the alpine package should have that fix |
| 20:58:08 | <hekkaidekapus> | nh2, maerwald: <https://gitlab.alpinelinux.org/alpine/aports/blob/master/main/gtk+3.0/APKBUILD> |
| 20:59:44 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection) |
| 21:00:46 | <nh2> | maerwald hekkaidekapus: Yes (thanks!), 3.24.23, so that should have my fix in. So you'd just have to pass the "-Ddefault_library=both" flag to get `.a` files |
| 21:01:10 | <Uniaika> | hey everyone |
| 21:01:25 | <hekkaidekapus> | hello |
| 21:01:25 | <Uniaika> | what can I read in order to better understand fundeps errors in GHC? |
| 21:01:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 21:02:51 | <Uniaika> | s/in/with/ |
| 21:03:05 | → | vicfred_ joins (~vicfred@unaffiliated/vicfred) |
| 21:03:08 | → | taurux joins (~taurux@net-188-152-78-21.cust.vodafonedsl.it) |
| 21:03:49 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 264 seconds) |
| 21:04:16 | × | vicfred_ quits (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
| 21:04:44 | → | vicfred_ joins (~vicfred@unaffiliated/vicfred) |
| 21:05:43 | × | vicfred_ quits (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
| 21:06:15 | → | vicfred_ joins (~vicfred@unaffiliated/vicfred) |
| 21:07:18 | wayne_ | is now known as wayne |
| 21:07:32 | × | wayne quits (~wayne@consume.rocks) (Changing host) |
| 21:07:32 | → | wayne joins (~wayne@unaffiliated/wayne) |
| 21:07:41 | × | fxg quits (~fxg@unaffiliated/fxg) (Quit: Leaving) |
| 21:11:45 | <nh2> | Uniaika: I don't have a great resource on understanding the error messages, but do you know https://ocharles.org.uk/posts/2014-12-14-functional-dependencies.html | https://www.fpcomplete.com/haskell/tutorial/fundeps/ | https://gvolpe.com/blog/functional-dependencies-and-type-families/ ? They show _some_ fundeps errors and explain those |
| 21:12:31 | hackage | numhask-space 0.7.0.0 - Numerical spaces. https://hackage.haskell.org/package/numhask-space-0.7.0.0 (tonyday567) |
| 21:13:12 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
| 21:13:22 | <Uniaika> | nice |
| 21:13:38 | <Uniaika> | thanks a lot nh2 |
| 21:14:11 | → | dennisb joins (~dennisb@89-160-106-195.cust.bredband2.com) |
| 21:14:54 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 21:15:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:17:00 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 21:17:24 | <dminuoso> | Uniaika: One thing that helped me is understand how GHC reasons in the presence of fundeps. |
| 21:18:29 | <nh2> | dminuoso: Would be good to know how you did learn to understand that reasoning though :) |
| 21:19:29 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 21:19:29 | <Uniaika> | on a related topic, I have this line of code : https://github.com/Kleidukos/Intrigue/blob/main/src/Intrigue/Eval.hs#L52 |
| 21:19:36 | <Uniaika> | that generates this error: https://github.com/Kleidukos/Intrigue/runs/1444428807?check_suite_focus=true#step:5:18 |
| 21:21:24 | → | Raman joins (~user@c-24-4-174-65.hsd1.ca.comcast.net) |
| 21:22:08 | → | uninitializedPtr joins (415e3d4d@bras-base-okvlon3013w-grc-13-65-94-61-77.dsl.bell.ca) |
| 21:22:19 | <Raman> | ?src reverse |
| 21:22:20 | <lambdabot> | Source not found. Do you think like you type? |
| 21:22:37 | <uninitializedPtr> | > let main :: IO () |
| 21:22:39 | <lambdabot> | <no location info>: error: not an expression: ‘let main :: IO ()’ |
| 21:22:47 | <uninitializedPtr> | > this_main :: IO () |
| 21:22:49 | <Raman> | ?src |
| 21:22:49 | <lambdabot> | src <id>. Display the implementation of a standard function |
| 21:22:49 | <lambdabot> | error: Variable not in scope: this_main :: IO () |
| 21:22:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 21:23:01 | <Raman> | ?src map |
| 21:23:01 | <lambdabot> | Source not found. Abort, Retry, Panic? |
| 21:23:01 | <uninitializedPtr> | > printStrLn 42 |
| 21:23:03 | <lambdabot> | error: |
| 21:23:03 | <lambdabot> | • Variable not in scope: printStrLn :: t0 -> t |
| 21:23:03 | <lambdabot> | • Perhaps you meant one of these: |
| 21:23:14 | <geekosaur> | @src consults a database which contains lies and is not complete |
| 21:23:14 | <lambdabot> | Source not found. Have you considered trying to match wits with a rutabaga? |
| 21:23:14 | <Uniaika> | > print 42 |
| 21:23:17 | <lambdabot> | <IO ()> |
| 21:23:17 | <Raman> | abort |
| 21:23:19 | <uninitializedPtr> | ?src src |
| 21:23:19 | <lambdabot> | Source not found. The more you drive -- the dumber you get. |
| 21:23:21 | <uninitializedPtr> | ?src src |
| 21:23:21 | <lambdabot> | Source not found. Are you on drugs? |
| 21:23:21 | → | copypasteque joins (~copypaste@2001:41d0:8:b325::1) |
| 21:23:23 | <uninitializedPtr> | > ?src src |
| 21:23:26 | <lambdabot> | error: |
| 21:23:26 | <lambdabot> | • Variable not in scope: src |
| 21:23:26 | <lambdabot> | • Perhaps you meant ‘scc’ (imported from Data.Graph) |
| 21:23:33 | <Raman> | ?src Eq |
| 21:23:33 | <lambdabot> | class Eq a where |
| 21:23:33 | <lambdabot> | (==), (/=) :: a -> a -> Bool |
| 21:23:54 | <Raman> | ?reverse |
| 21:23:54 | <lambdabot> | Unknown command, try @list |
| 21:24:00 | <uninitializedPtr> | @list |
| 21:24:00 | <lambdabot> | What module? Try @listmodules for some ideas. |
| 21:24:08 | <Raman> | @list |
| 21:24:08 | <lambdabot> | What module? Try @listmodules for some ideas. |
| 21:24:17 | <uninitializedPtr> | @list null |
| 21:24:17 | <lambdabot> | No module "null" loaded |
| 21:24:37 | <uninitializedPtr> | class Nothing where Nothing |
| 21:24:44 | <uninitializedPtr> | > class Nothing where Nothing |
| 21:24:49 | <dminuoso> | Use a private message if you want to experiment. |
| 21:25:23 | <Raman> | ?src Show |
| 21:25:23 | <lambdabot> | Source not found. You speak an infinite deal of nothing. |
| 21:25:42 | <Uniaika> | dminuoso: do you have any idea how I can investigate the error I pasted above? |
| 21:25:51 | ← | Raman parts (~user@c-24-4-174-65.hsd1.ca.comcast.net) () |
| 21:25:56 | <nh2> | geekosaur: good tip, dynamic loading occurring here: https://github.com/nh2/static-haskell-nix/issues/50#issuecomment-732434989 |
| 21:26:20 | <dminuoso> | Uniaika: Yes |
| 21:26:20 | ← | uninitializedPtr parts (415e3d4d@bras-base-okvlon3013w-grc-13-65-94-61-77.dsl.bell.ca) () |
| 21:26:38 | <Uniaika> | dminuoso: \o/ |
| 21:27:29 | <nh2> | maerwald: FYI ^ |
| 21:29:07 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
| 21:29:42 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 21:30:28 | × | geekosaur quits (ac3a53fb@172.58.83.251) (Remote host closed the connection) |
| 21:30:51 | <dminuoso> | Uniaika: Consider: class Monad m => MonadState s m | m -> s |
| 21:31:32 | <Uniaika> | yes |
| 21:31:36 | Uniaika | considers |
| 21:31:51 | × | taurux quits (~taurux@net-188-152-78-21.cust.vodafonedsl.it) (Quit: ZNC 1.7.5 - https://znc.in) |
| 21:31:52 | <dminuoso> | Given `instance ‘MonadState (HashMap Text AST) EvalM’` we have `EvalM -> (HashMap Text AST)` |
| 21:32:11 | <Uniaika> | yep' |
| 21:32:52 | <dminuoso> | The line that says: |
| 21:32:54 | <dminuoso> | constraint ‘MonadState (HashMap Text (EvalM AST)) EvalM’ |
| 21:33:04 | × | Khisanth quits (~Khisanth@166.sub-174-197-147.myvzw.com) (Ping timeout: 265 seconds) |
| 21:33:06 | <dminuoso> | Means GHC is trying to satisfy this constraint |
| 21:33:37 | <Uniaika> | which is not ‘MonadState (HashMap Text AST) EvalM’ |
| 21:33:42 | <dminuoso> | Right |
| 21:33:44 | <Uniaika> | but what I don't understand is how I got myself into that |
| 21:33:59 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 21:33:59 | <dminuoso> | Type inference. |
| 21:34:04 | <Uniaika> | damnit. |
| 21:34:05 | <dminuoso> | % :t ask |
| 21:34:05 | <yahb> | dminuoso: MonadReader r m => m r |
| 21:34:14 | <Uniaika> | in my case it's |
| 21:34:15 | <dminuoso> | See how ask is *fully* polymorphic in both m and r? |
| 21:34:17 | <Uniaika> | % :t get |
| 21:34:17 | <yahb> | Uniaika: MonadState s m => m s |
| 21:34:21 | <dminuoso> | Oh. same story |
| 21:34:31 | <Uniaika> | but yeah I see |
| 21:34:48 | <Uniaika> | dminuoso: would type applications solve my problem? |
| 21:35:00 | <dminuoso> | Uniaika: type annotations would help narrow it done |
| 21:35:08 | <dminuoso> | Right now type inference is way too unbounded |
| 21:35:23 | <dminuoso> | If you type annotate `n` that might give you a clue |
| 21:35:31 | <dminuoso> | err wait |
| 21:36:34 | <dminuoso> | My bet is its: let arguments = eval <$> arguments' |
| 21:36:48 | → | adrew joins (~andrew@97-115-68-44.ptld.qwest.net) |
| 21:36:50 | <dminuoso> | That's broken |
| 21:36:56 | × | knupfer quits (~Thunderbi@i59F7FFC3.versanet.de) (Ping timeout: 265 seconds) |
| 21:36:59 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 21:37:00 | <Uniaika> | ooh |
| 21:37:01 | <Uniaika> | okay |
| 21:37:10 | <Uniaika> | thanks for the insight! |
| 21:37:15 | → | EyalSK joins (~EyalSK@bzq-84-109-128-227.cablep.bezeqint.net) |
| 21:37:24 | × | adrew quits (~andrew@97-115-68-44.ptld.qwest.net) (Quit: adrew) |
| 21:37:36 | × | EyalSK quits (~EyalSK@bzq-84-109-128-227.cablep.bezeqint.net) (Client Quit) |
| 21:38:02 | → | mputz joins (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
| 21:38:41 | <dminuoso> | Ah not quite |
| 21:38:43 | <dminuoso> | let env = (fromVector $ V.zip parameters arguments) <> env' |
| 21:38:45 | <dminuoso> | This is the offending line |
| 21:38:57 | <dminuoso> | Everything else stems from its inferred tpe |
| 21:39:11 | <Uniaika> | changing fmap for traverse seems to have fixed it |
| 21:39:20 | <Uniaika> | (as in: the other errors now appear in ghcid) |
| 21:43:27 | × | alx741 quits (~alx741@186.178.110.117) (Ping timeout: 260 seconds) |
| 21:43:44 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 21:45:59 | → | Khisanth joins (~Khisanth@56.sub-174-244-145.myvzw.com) |
| 21:46:33 | → | cosimone_ joins (~cosimone@5.170.241.60) |
| 21:46:45 | × | kish` quits (~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds) |
| 21:48:17 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 260 seconds) |
| 21:48:18 | cosimone_ | is now known as cosimone |
| 21:49:18 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 272 seconds) |
| 21:50:07 | × | boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Quit: Connection closed) |
| 21:50:29 | × | dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 21:51:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:52:44 | → | Lycurgus joins (~niemand@98.4.114.74) |
| 21:54:03 | × | Tops2 quits (~Tobias@dyndsl-095-033-021-036.ewe-ip-backbone.de) (Quit: Leaving.) |
| 21:54:59 | → | stu002 joins (77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) |
| 21:55:30 | × | DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
| 21:56:04 | → | alx741 joins (~alx741@181.196.69.178) |
| 21:57:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 21:58:59 | → | conal joins (~conal@66.115.157.94) |
| 21:59:58 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds) |
| 22:03:06 | × | coot quits (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 22:04:04 | <dminuoso> | Uniaika: Generally, if GHC has mismatching types and you cant make sense of it, start by adding type ascriptions or annotations. |
| 22:04:18 | <Uniaika> | dminuoso: got it |
| 22:04:23 | <Uniaika> | I will try to remember |
| 22:05:11 | <dminuoso> | Uniaika: In larger code, the error could have easily come from the other case-of branch as well, but only manifested in the other branch. Smaller code and type signatures are your only methods sadly |
| 22:05:19 | <dminuoso> | Unless we ever get type error slices |
| 22:06:58 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
| 22:07:29 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 22:07:49 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 22:08:28 | × | shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection) |
| 22:08:28 | <dminuoso> | (And type error slices would only help much if they were integrated into your editor well, say via hie) |
| 22:09:32 | <dminuoso> | (Or it would present some really interesting challenges on visualizing them) |
| 22:11:18 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 22:12:02 | → | shatriff joins (~vitaliish@176.52.219.10) |
| 22:16:34 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds) |
| 22:18:21 | × | tylerjl quits (~leothrix@elastic/staff/leothrix) (Quit: ZNC 1.7.5 - https://znc.in) |
| 22:20:51 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 22:20:54 | × | conal quits (~conal@66.115.157.94) (Quit: Computer has gone to sleep.) |
| 22:23:28 | → | leothrix joins (~leothrix@elastic/staff/leothrix) |
| 22:26:22 | → | superstar64 joins (6ccefa7c@108-206-250-124.lightspeed.miamfl.sbcglobal.net) |
| 22:26:34 | → | falafel_ joins (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) |
| 22:27:29 | × | sand_dull quits (~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds) |
| 22:31:27 | <superstar64> | has anyone played with something like this before? `data Term f = Fix (f (Term f) | Variable String | Application (Term f) (Term f) | Abstraction String (Term f)`, basically it's `Data.Fix.Fix` but with extra constructors |
| 22:33:01 | × | stu002 quits (77120261@119-18-2-97.771202.syd.nbn.aussiebb.net) (Remote host closed the connection) |
| 22:33:45 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
| 22:36:09 | × | Ariakenom quits (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving) |
| 22:41:35 | → | borne joins (~fritjof@200116b864880200394a967dc8ef4e61.dip.versatel-1u1.de) |
| 22:43:13 | → | hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
| 22:43:31 | <int-e> | superstar64: probably not, because you can build the extra constructors into `f` instead. |
| 22:44:01 | × | erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 264 seconds) |
| 22:44:51 | <int-e> | data TermF f x = Variable String | Application x x | Abstraction String x | Extension (f x) |
| 22:45:13 | <int-e> | type Term f = Fix (TermF f) |
| 22:45:24 | <int-e> | superstar64: ^^ that should be isomorphic to what you have. |
| 22:45:44 | <superstar64> | seems much uglier to pattern match on though |
| 22:45:52 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 22:46:32 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 22:48:23 | <int-e> | superstar64: There are pattern synonyms. What you may gain from the reformulation is a better understanding for how this relates to Fix, what folds look like... just an overall better fit with existing theory. |
| 22:48:58 | × | alp quits (~alp@88.126.45.36) (Ping timeout: 260 seconds) |
| 22:49:22 | <superstar64> | welp, i guess i'll rewrite my beta reduction then |
| 22:50:00 | hackage | numhask-array 0.8.0 - Multi-dimensional array interface for numhask. https://hackage.haskell.org/package/numhask-array-0.8.0 (tonyday567) |
| 22:50:25 | <maerwald> | on nice, lol https://ppig.org/files/2015-PPIG-26th-Sarkar1.pdf |
| 22:50:31 | <int-e> | superstar64: I probably wouldn't do that. I would rename the 'Fix' though... as suggested it does feel more like an extension point for the data type to me. |
| 22:50:31 | <maerwald> | so syntax highlighting does help |
| 22:50:47 | <int-e> | superstar64: It's okay to have specific ad-hoc types. |
| 22:51:09 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 22:51:36 | → | Kaeipi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 22:51:38 | <int-e> | superstar64: I guess what I'm really getting at is that the relation to Data.Fix.Fix feels superficial. |
| 22:51:48 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 22:52:16 | → | conal joins (~conal@64.71.133.70) |
| 22:53:56 | <superstar64> | my code might be cleaner if i use recursion schemes anyway |
| 22:54:14 | × | chaosmasttter quits (~chaosmast@p200300c4a72cf80165f6d709b523305b.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 22:54:43 | <int-e> | superstar64: your choice, obviously... and you should know best what the tradeoffs are |
| 22:55:22 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 22:55:38 | <superstar64> | it's 40 lines that i start writing a few hours ago |
| 22:55:43 | <superstar64> | it's not a big deal |
| 22:55:49 | × | phaul quits (~phaul@ruby/staff/phaul) (Remote host closed the connection) |
| 22:56:27 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 22:58:03 | × | sleblanc quits (~sleblanc@unaffiliated/sebleblanc) (Quit: Leaving) |
| 22:58:50 | × | falafel_ quits (~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds) |
| 22:59:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:02:28 | × | hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 23:03:27 | × | darjeeling_ quits (~darjeelin@122.245.219.209) (Ping timeout: 265 seconds) |
| 23:04:28 | × | Lycurgus quits (~niemand@98.4.114.74) (Quit: Exeunt) |
| 23:04:44 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 23:05:11 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:06:23 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
| 23:08:00 | hackage | zeolite-lang 0.9.0.0 - Zeolite is a statically-typed, general-purpose programming language. https://hackage.haskell.org/package/zeolite-lang-0.9.0.0 (ta0kira) |
| 23:08:08 | × | Kaeipi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 256 seconds) |
| 23:10:05 | × | mputz quits (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 23:10:17 | × | jneira quits (02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Ping timeout: 260 seconds) |
| 23:10:18 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 23:11:10 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 23:12:10 | → | frdg joins (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
| 23:12:13 | ← | frdg parts (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) () |
| 23:15:18 | × | _linker_ quits (~linker@2a02:a31a:a041:9a80:1550:ab25:bf6f:9a3a) (Remote host closed the connection) |
| 23:15:37 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 23:17:16 | × | mirrorbird quits (~psutcliff@89.45.7.132) (Quit: Leaving) |
| 23:17:17 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 23:17:48 | → | darjeeling_ joins (~darjeelin@122.245.219.209) |
| 23:19:23 | → | Tario joins (~Tario@201.192.165.173) |
| 23:19:31 | hackage | bitvec 1.1.0.0 - Space-efficient bit vectors https://hackage.haskell.org/package/bitvec-1.1.0.0 (Bodigrim) |
| 23:19:38 | × | son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal) |
| 23:21:39 | → | e2 joins (e2@sponsored.by.bnc4you.xyz) |
| 23:22:50 | × | terrorjack quits (~terrorjac@static.23.111.201.195.clients.your-server.de) (Ping timeout: 264 seconds) |
| 23:29:32 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:29:36 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 23:31:41 | → | rednaZ2 joins (rednaZ2@freebnc.bnc4you.xyz) |
| 23:33:13 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds) |
| 23:33:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:33:27 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 23:33:49 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 23:34:08 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 23:36:38 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 23:36:38 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 23:37:26 | <sondr3> | I'm having some trouble with a parser I'm writing, I want it to parse a multiline string until it either reaches EOF or a specific text. I have been able to get one or the other but not a parser that does both |
| 23:38:10 | <sondr3> | I got some help earlier and have `T.pack <$> someTill anySingle (lookAhead (string b) <|> string ("\n" <> b))`, but this fails if the string ends with EOF |
| 23:38:24 | <sondr3> | And I've been looking at my code for too long now :P |
| 23:38:27 | <sondr3> | ;;;;; |
| 23:38:54 | <sondr3> | bah, sorry, getting used to Colemak and Moonlander at the same time |
| 23:39:08 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 23:40:16 | <monochrom> | I would not use most parser combinator libraries for "anything at all except until this specific string" (unless that specific string is one single character) |
| 23:40:48 | → | Kaeipi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 23:40:55 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer) |
| 23:42:13 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 23:43:09 | <monochrom> | A minority of parser combinator libraries feature non-determinism for ambiguous grammars, at the expense of speed. Those would be a good fit. |
| 23:43:43 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 23:46:50 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 264 seconds) |
| 23:47:44 | × | vicfred_ quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 23:48:01 | <sondr3> | monochrom: do you happen to know hw |
| 23:48:03 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 23:48:10 | × | cosimone quits (~cosimone@5.170.241.60) (Quit: cosimone) |
| 23:48:21 | <sondr3> | *how I'd get the rest of the input from megaparsec? |
| 23:48:59 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 23:49:50 | <sondr3> | looks like I might be able to use getInput and friends |
| 23:50:00 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
| 23:50:31 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 23:50:40 | → | Chi1thangoo joins (~Chi1thang@87.112.60.168) |
| 23:50:53 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer) |
| 23:53:44 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 23:54:18 | × | rednaZ2 quits (rednaZ2@freebnc.bnc4you.xyz) (Quit: ZNC from ##bnc4you) |
| 23:56:27 | × | redmp quits (~redmp@mobile-166-137-178-102.mycingular.net) (Quit: leaving) |
| 23:57:19 | <sm[m]> | hey friends.. what's the function f [a] that is equivalent to a <|> a <|> a <|> ... ? |
| 23:58:20 | <hpc> | foldr1 (<|>)? |
| 23:58:21 | <hpc> | ;) |
| 23:58:44 | × | resolve quits (~resolve@178.162.212.214) (Remote host closed the connection) |
| 23:59:34 | → | terrorjack joins (~terrorjac@static.23.111.201.195.clients.your-server.de) |
| 23:59:38 | → | cosimone joins (~cosimone@5.170.241.60) |
All times are in UTC on 2020-11-23.