2021-11-17 00:00:02 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 00:00:06 +0100 | adium | (adium@user/adium) (Ping timeout: 260 seconds) |
2021-11-17 00:00:35 +0100 | <monochrom> | unit73e: I think it's a foldr |
2021-11-17 00:01:34 +0100 | <unit73e> | monochrom, yeah seems like it. I'm converting that. |
2021-11-17 00:01:45 +0100 | <unit73e> | but I'll do the newbie way first |
2021-11-17 00:02:22 +0100 | <monochrom> | It is also OK to leave the code as is. We don't need to foldr-ize everything that can be foldr-ized. |
2021-11-17 00:03:21 +0100 | <unit73e> | I just don't like that empty list function there doing nothing |
2021-11-17 00:03:28 +0100 | ystael | (~ystael@user/ystael) (Read error: Connection reset by peer) |
2021-11-17 00:04:25 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Ping timeout: 250 seconds) |
2021-11-17 00:04:42 +0100 | <monochrom> | Ah. Maybe you like this middle ground: renderSprites' r t xs p = go xs where go [] = return (); go (x:xs) = do ... ; go xs |
2021-11-17 00:06:07 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
2021-11-17 00:06:10 +0100 | <monochrom> | (I'm too lazy to type out "renderer", "position", etc. You should still stick to the longer, better names :) ) |
2021-11-17 00:06:21 +0100 | <unit73e> | that's fine I get it lol thanks |
2021-11-17 00:06:37 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds) |
2021-11-17 00:07:11 +0100 | <unit73e> | this is just for an example to print all "idle" animation sprites in sequence anyway |
2021-11-17 00:07:16 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-11-17 00:07:21 +0100 | <unit73e> | it's not going to be used in pratice |
2021-11-17 00:07:58 +0100 | <unit73e> | maybe I should just print the texture positions instead |
2021-11-17 00:08:01 +0100 | <monochrom> | Ho hrm, it may be actually a mapM_ |
2021-11-17 00:08:31 +0100 | <unit73e> | the problem with mapM_ is I need to accumulate the sum of points |
2021-11-17 00:08:32 +0100 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-11-17 00:08:46 +0100 | <unit73e> | but I can first convert the list |
2021-11-17 00:08:50 +0100 | <unit73e> | and then use mapM_ |
2021-11-17 00:09:11 +0100 | <unit73e> | which makes more sense than that thing I pulled off |
2021-11-17 00:09:20 +0100 | <monochrom> | Oh oops, I forgot that position is not pos. |
2021-11-17 00:09:27 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
2021-11-17 00:09:42 +0100 | <unit73e> | but you know what? I'll just print the texture positions lol |
2021-11-17 00:09:49 +0100 | <monochrom> | haha OK |
2021-11-17 00:09:56 +0100 | <unit73e> | since it doesn't really matter lol |
2021-11-17 00:10:13 +0100 | <janus> | int-e: but what is the 'same thing'? geekosaur said that there still is a workaround that forces ($) to always be impredicative, probably even if the (fixed) extension ImpredicativeTypes is off |
2021-11-17 00:10:40 +0100 | <geekosaur> | that is my understanding, yes |
2021-11-17 00:11:22 +0100 | <geekosaur> | the main difference is ImpredicativeTypes always had a very vague specification, and by itself it wasn't always sufficient to make ($) impredicative even when turned on, so there was a hack to always make it work |
2021-11-17 00:11:25 +0100 | <int-e> | janus: so there's still an ad-hoc hack of some kind |
2021-11-17 00:12:02 +0100 | <geekosaur> | with QuickLook, there is now a sane impredicative types story *and* it makes ($) work as expected, so the hack has been reduced to always making it impredicative even whne quicklook is disabled |
2021-11-17 00:12:24 +0100 | <janus> | hehe imagine if ghc devs forced everybody to turn ImpredicativeTypes on by removing this hack :P |
2021-11-17 00:12:34 +0100 | <janus> | would be an even larger outcry than for the not-eq stuff :O |
2021-11-17 00:12:43 +0100 | <geekosaur> | runST isn't used *that* often, I think |
2021-11-17 00:12:44 +0100 | servytor | (uid525486@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-17 00:12:57 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Read error: Connection timed out) |
2021-11-17 00:13:06 +0100 | <geekosaur> | but still, they do at least try to avoid breaking older programs |
2021-11-17 00:13:23 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-11-17 00:13:29 +0100 | <int-e> | geekosaur: oh but when I use it, doing runST $ do [...] is a very common pattern |
2021-11-17 00:13:31 +0100 | <geekosaur> | (which is one reason there's a shitstorm brewing over neq) |
2021-11-17 00:15:03 +0100 | <monochrom> | BlockArguments was a solution to "runST do", but people decided to hate it. |
2021-11-17 00:15:06 +0100 | <int-e> | There's the BlockArguments thing too and I hate it. |
2021-11-17 00:15:13 +0100 | <monochrom> | See? :) |
2021-11-17 00:15:17 +0100 | <hpc> | what's wrong with block arguments? |
2021-11-17 00:15:19 +0100 | <geekosaur> | nice timing |
2021-11-17 00:15:22 +0100 | <int-e> | monochrom: Happy to confirm. |
2021-11-17 00:16:59 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-11-17 00:17:09 +0100 | <glguy> | hpc: what's wrong is I have to them them on all the time to use them rather than just getting the better syntax |
2021-11-17 00:17:17 +0100 | <int-e> | hpc: it's irrational, it goes against decades of training and habits :P |
2021-11-17 00:17:44 +0100 | <glguy> | I learned that they were a good idea from writing Agda |
2021-11-17 00:18:19 +0100 | <monochrom> | Hrm, is BlockArguments included in GHC2021? |
2021-11-17 00:18:24 +0100 | <int-e> | hpc: the way things are, when I see runST do I read `do` as a variable and then I have to resolve a clash between that and it being a keyword. This is *not* the case for the *familiar* runST $ do |
2021-11-17 00:18:31 +0100 | <int-e> | habits die hard |
2021-11-17 00:18:38 +0100 | <hpc> | heh, that's fair |
2021-11-17 00:18:45 +0100 | <yushyin> | monochrom: no :/ |
2021-11-17 00:18:46 +0100 | <monochrom> | sob sob no |
2021-11-17 00:19:02 +0100 | <janus> | hmm you have the same situation with all kinda of other keywords |
2021-11-17 00:19:11 +0100 | <geekosaur> | I don't have that problem but I'm conditioned to see do as a keyword. It just looks weird |
2021-11-17 00:19:13 +0100 | <monochrom> | Well, at least ScopedTypeVariables is in. |
2021-11-17 00:19:16 +0100 | <janus> | keywords always need special casing in your brain , and syntax highlighting helps with that |
2021-11-17 00:19:21 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-17 00:19:22 +0100 | <glguy> | > 1 * do 3 + 4 |
2021-11-17 00:19:24 +0100 | <lambdabot> | 7 |
2021-11-17 00:19:57 +0100 | <janus> | int-e: i think you just turned me into a BlockArguments fan ;) |
2021-11-17 00:20:20 +0100 | int-e | shrugs |
2021-11-17 00:20:38 +0100 | <monochrom> | I'm OK with BlockArguments when there are line breaks to help, e.g., "x = runST do \n", "y = withYYY \h -> \n". |
2021-11-17 00:20:39 +0100 | <janus> | i thought there would be some elaborate argument about how it makes it harder to parse or something :P |
2021-11-17 00:20:58 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8de2:1993:a832:eced) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 00:21:03 +0100 | <monochrom> | If you don't have those \n's, the code is harder to eyeball, yes. |
2021-11-17 00:21:26 +0100 | <monochrom> | But who would omit those \n's in practice? |
2021-11-17 00:21:55 +0100 | <glguy> | f \x -> x + 1 |
2021-11-17 00:22:02 +0100 | <int-e> | janus: Well it's harder to parse for me personally. I'm grown-up to realize that this is not the case for everyone. And I usually don't care how hard things are to parse for a compiler; if I did I wouldn't touch Haskell at all, the whole indentation story is crazy from that perspective. |
2021-11-17 00:22:06 +0100 | <glguy> | function applied to lambdas |
2021-11-17 00:22:07 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-17 00:22:08 +0100 | <geekosaur> | janus, it's actually easier |
2021-11-17 00:22:12 +0100 | jumper149 | (~jumper149@static.6.71.203.116.clients.your-server.de) (Quit: WeeChat 3.3) |
2021-11-17 00:22:13 +0100 | <janus> | monochrom: there was a person here a couple of months ago who removed all the spacing he could ;) |
2021-11-17 00:22:17 +0100 | <int-e> | s/grown-up to/grown-up enough to/ |
2021-11-17 00:22:20 +0100 | <geekosaur> | it eliminates an unnecessary production rule in the grammar |
2021-11-17 00:22:30 +0100 | <monochrom> | "f \x -> x + 1" is short enough that I would support "f (\x -> x + 1)". |
2021-11-17 00:22:45 +0100 | <monochrom> | For longer examples you would have line breaks in the first place. |
2021-11-17 00:22:57 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 00:23:04 +0100 | <geekosaur> | but as monochrom shows, some uses are harder for *people* to parse |
2021-11-17 00:23:08 +0100 | <glguy> | monochrom: It works well to have something like: thing \x y z -> \n function body |
2021-11-17 00:23:35 +0100 | <glguy> | It's silly to argue that is harder to parse because you're not used to it; that's just how things go when change happens and then you get used to it |
2021-11-17 00:24:14 +0100 | <janus> | we must sample the innocent purescript programmers who have never lived the NoBlockArguments life to find out how their brains work |
2021-11-17 00:25:22 +0100 | <Rembane_> | Quite well thank you. |
2021-11-17 00:25:26 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2021-11-17 00:25:31 +0100 | <monochrom> | haha |
2021-11-17 00:25:51 +0100 | <int-e> | janus: does it involve electrodes |
2021-11-17 00:25:57 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2021-11-17 00:26:21 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8de2:1993:a832:eced) |
2021-11-17 00:27:19 +0100 | <janus> | only if you include 'tesla coil' in your definition of electrodes. *evil merkel/burns pose* |
2021-11-17 00:27:44 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Read error: No route to host) |
2021-11-17 00:28:08 +0100 | <monochrom> | "GHC2021 is used by GHC if neither Haskell98 nor Haskell2010 is turned on explicitly." Haha, I'm surprised no one made a bigger fuss about this than about no-/= |
2021-11-17 00:28:43 +0100 | <monochrom> | (I just tried in ghci-9.2, "data F a = F a a deriving Functor" is gladly accepted under default settings) |
2021-11-17 00:28:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 00:29:53 +0100 | <monochrom> | Ugh why is PostfixOperators included?! |
2021-11-17 00:31:00 +0100 | <int-e> | > let (!) = product . enumFromTo 1 in (5!) |
2021-11-17 00:31:01 +0100 | <geekosaur> | I think nobody made a fuss because people normally use cabal files and cabal defaults to haskell2010. but that's supposed to change in an upcoming cabal version and *then* we may hear about it |
2021-11-17 00:31:02 +0100 | <lambdabot> | 120 |
2021-11-17 00:31:08 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) |
2021-11-17 00:31:17 +0100 | mark__ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-11-17 00:31:26 +0100 | <janus> | monochrome: there is still time for Snoyman to get annoyed by a GHC2021 extension and choose to set Haskell2010 by default in stack ;) |
2021-11-17 00:31:42 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-11-17 00:34:35 +0100 | <int-e> | monochrom: Have you been bitten by PostfixOperators? (It's just an eta reduction in the desugaring of (foo ?), right? Which is one of those things that is usually fine...) |
2021-11-17 00:34:55 +0100 | <monochrom> | No. |
2021-11-17 00:35:23 +0100 | <monochrom> | I haven't been bitten by PostfixOperators. |
2021-11-17 00:36:19 +0100 | <int-e> | I mean it's not all that useful either... I'd never write the above in real code. |
2021-11-17 00:36:39 +0100 | <monochrom> | Right, I don't think people actually use it. |
2021-11-17 00:36:40 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-11-17 00:37:18 +0100 | <monochrom> | I guess the selection criterion was simply "widely agreed to be totally harmless". |
2021-11-17 00:38:23 +0100 | <janus> | would it make it possible to have a postfix lift that is exclamation mark? |
2021-11-17 00:38:29 +0100 | <janus> | then haskell would look like rust :P |
2021-11-17 00:38:38 +0100 | <janus> | if used with e.g. ExceptT |
2021-11-17 00:38:48 +0100 | <janus> | oh my, the calamity |
2021-11-17 00:38:52 +0100 | <monochrom> | I use that criterion too to argue against people who make a big fuss about "why is 'let {} in 5' legal? this makes no sense!" |
2021-11-17 00:39:20 +0100 | <geekosaur> | let (!) = liftIO in ... |
2021-11-17 00:39:39 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Read error: Connection timed out) |
2021-11-17 00:39:57 +0100 | <monochrom> | Heh |
2021-11-17 00:40:01 +0100 | <geekosaur> | or unsafePerformIO if you really want to call out the dogs :) |
2021-11-17 00:40:24 +0100 | pfurla_ | (~pfurla@16.191.255.173.client.dyn.strong-mf37.as54203.net) |
2021-11-17 00:40:40 +0100 | <janus> | oh no, i meant question mark. which is used in rust to escalate the error of their Either (called Result) |
2021-11-17 00:40:47 +0100 | <int-e> | janus: it's a bit of a misnomer because the ? in (foo ?) isn't really a standalone postfix operator; the parentheses are required |
2021-11-17 00:41:00 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-11-17 00:41:10 +0100 | <geekosaur> | because it's a special case of an operator section |
2021-11-17 00:41:33 +0100 | <janus> | oh, then it's harder to use and misuse |
2021-11-17 00:41:34 +0100 | <int-e> | so no, it won't look like Rust. |
2021-11-17 00:41:51 +0100 | <monochrom> | It looks like (Rust!) :) |
2021-11-17 00:41:54 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8de2:1993:a832:eced) (Ping timeout: 265 seconds) |
2021-11-17 00:42:10 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 00:42:29 +0100 | <int-e> | EtaReducedLeftSections |
2021-11-17 00:45:35 +0100 | pfurla_ | (~pfurla@16.191.255.173.client.dyn.strong-mf37.as54203.net) (Ping timeout: 250 seconds) |
2021-11-17 00:46:15 +0100 | max22- | (~maxime@2a01cb0883359800fa2f4e7c9f6204ba.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-17 00:47:38 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 00:48:17 +0100 | glguy | (x@libera/staff/glguy) (Quit: Quit) |
2021-11-17 00:50:30 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:a029:e568:3465:8d9f) |
2021-11-17 00:51:51 +0100 | glguy | (x@libera/staff/glguy) |
2021-11-17 00:54:23 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
2021-11-17 00:54:43 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 00:55:36 +0100 | mark__ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-17 01:02:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-17 01:05:02 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
2021-11-17 01:06:14 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-11-17 01:06:34 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 01:08:03 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-11-17 01:10:51 +0100 | eruditass | (uid248673@uxbridge.irccloud.com) |
2021-11-17 01:13:48 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-17 01:14:14 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Client Quit) |
2021-11-17 01:15:31 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
2021-11-17 01:16:06 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-11-17 01:16:22 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 01:19:33 +0100 | EvanR | (~evan@user/evanr) |
2021-11-17 01:19:59 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 01:20:19 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 01:20:58 +0100 | Guest42 | (~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
2021-11-17 01:21:59 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 250 seconds) |
2021-11-17 01:29:10 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
2021-11-17 01:30:13 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
2021-11-17 01:30:28 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-11-17 01:31:31 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 250 seconds) |
2021-11-17 01:31:45 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-17 01:34:59 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 01:38:27 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-17 01:38:27 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-17 01:38:27 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-17 01:38:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 01:43:00 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 01:43:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-11-17 01:44:24 +0100 | _________ | (~nobody@user/noodly) (Ping timeout: 268 seconds) |
2021-11-17 01:44:47 +0100 | mark__ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-11-17 01:45:23 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 250 seconds) |
2021-11-17 01:45:25 +0100 | _________ | (~nobody@user/noodly) |
2021-11-17 01:46:39 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 01:49:47 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 01:52:17 +0100 | EvanR | (~evan@user/evanr) (Quit: Leaving) |
2021-11-17 01:56:19 +0100 | mark__ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-17 01:58:26 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-17 02:00:54 +0100 | EvanR | (~evan@user/evanr) |
2021-11-17 02:01:49 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-11-17 02:11:52 +0100 | alx741 | (~alx741@181.196.68.87) (Ping timeout: 256 seconds) |
2021-11-17 02:12:20 +0100 | <remexre> | is there a type family of kind Nat -> Symbol? |
2021-11-17 02:16:51 +0100 | <EvanR> | ehm what would that do, print the thing out in base ten or something xD |
2021-11-17 02:17:32 +0100 | <remexre> | yeah |
2021-11-17 02:17:34 +0100 | <remexre> | exactly that |
2021-11-17 02:17:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 02:18:47 +0100 | <EvanR> | I'm sure it's possible |
2021-11-17 02:19:02 +0100 | <awpr> | it probably became possible to write in base-4.16.0.0 with the addition of AppendSymbol and ConsSymbol |
2021-11-17 02:19:44 +0100 | <awpr> | it's not gonna be super well-behaved in polymorphic contexts, though |
2021-11-17 02:20:57 +0100 | <dsal> | If you want to print in base10, you're going to have to wait for at least 6 more major releases. |
2021-11-17 02:26:11 +0100 | alx741 | (~alx741@181.196.69.19) |
2021-11-17 02:26:18 +0100 | moet | (~moet@mobile-166-171-249-243.mycingular.net) (Ping timeout: 265 seconds) |
2021-11-17 02:27:58 +0100 | moet | (~moet@mobile-166-170-38-150.mycingular.net) |
2021-11-17 02:30:16 +0100 | <remexre> | oh, can you not use ConsSymbol in instances? |
2021-11-17 02:30:27 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 250 seconds) |
2021-11-17 02:32:40 +0100 | jbox | (~jbox@user/jbox) |
2021-11-17 02:36:20 +0100 | <awpr> | on the RHS of a type family instance? probably just needs UndecidableInstances |
2021-11-17 02:38:03 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 02:39:06 +0100 | <remexre> | looks like no |
2021-11-17 02:39:30 +0100 | <moet> | t |
2021-11-17 02:40:53 +0100 | mimmy_ | (~mimmy@72.142.88.18) |
2021-11-17 02:42:01 +0100 | <ozzloy_> | https://paste.tomsmeding.com/qEdr8PSc line 64, i created an answer for finding the minimum and maximum. i'd like to improve on it. |
2021-11-17 02:42:59 +0100 | <ozzloy_> | for example, one thing i'd like to do is use foldr, but i'm not sure how to create the function to send to foldr |
2021-11-17 02:43:04 +0100 | <awpr> | remexre: AppendSymbol in a type family instance RHS worked fine for me (I tried on a GHC version before ConsSymbol was added, so couldn't try that). what's the error? |
2021-11-17 02:43:26 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 02:43:27 +0100 | <remexre> | Illegal type synonym family application ‘ConsSymbol'_' (ToString n)’ in instance: HasField (ConsSymbol '_' (ToString n)) a b |
2021-11-17 02:43:36 +0100 | mimmy | (~mimmy@146.70.75.156) (Ping timeout: 256 seconds) |
2021-11-17 02:43:43 +0100 | <ozzloy_> | line 59 seems like a good function, but i'd have to turn the initial list into a list of pairs |
2021-11-17 02:45:44 +0100 | <jackdk> | Is there a common name for this trick: writing `instance a ~ X => FooClass (Bar a)` instead of `instance FooClass (Bar X)`? |
2021-11-17 02:45:52 +0100 | <EvanR> | ozzloy_, you've nerd sniped me |
2021-11-17 02:47:42 +0100 | <ozzloy_> | EvanR, cool! |
2021-11-17 02:47:52 +0100 | <awpr> | oh, that's not the RHS of an instance but an instance head. yeah, you can't have type families in instance heads (presumably because GHC would have to compute the inverse of the type family to figure out whether the instance matched) |
2021-11-17 02:48:02 +0100 | <ozzloy_> | the code at the bottom was from someone in here. i should have written the name |
2021-11-17 02:48:11 +0100 | <ozzloy_> | from 85 and below |
2021-11-17 02:48:27 +0100 | <ozzloy_> | i'm not sure what it means, exactly, but i believe it addresses this problem |
2021-11-17 02:48:32 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 02:48:32 +0100 | <remexre> | awpr: hm, is there any way to like, get it to do that :P (at least for ConsSymbol and (1 +)) |
2021-11-17 02:51:03 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3) |
2021-11-17 02:51:21 +0100 | <awpr> | I don't think so, without changing the underlying kind to something that has cons/succ as data constructors |
2021-11-17 02:52:23 +0100 | <awpr> | for `HasField`, seems like you're kinda stuck since it's built into `base`. for things involving arithmetic, peano naturals tend to behave better than the built-in `Nat`s in that regard |
2021-11-17 02:53:14 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-17 02:55:58 +0100 | <ozzloy_> | https://paste.tomsmeding.com/Z0USB0gg everyK, line 109, is there a pattern matching way to say the two arguments are the same value? |
2021-11-17 02:58:56 +0100 | <monochrom> | No. |
2021-11-17 02:59:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 03:00:53 +0100 | <EvanR> | heh, "non-linear pattern" |
2021-11-17 03:01:27 +0100 | <sm> | I think it must be f a b | a==b = ... |
2021-11-17 03:02:20 +0100 | <EvanR> | you gotta admit that feature would be interesting, among other cool pattern match ideas not implemented in haskell |
2021-11-17 03:04:06 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-11-17 03:08:06 +0100 | alx741 | (~alx741@181.196.69.19) (Quit: alx741) |
2021-11-17 03:10:12 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-17 03:10:13 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-17 03:10:13 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-17 03:12:24 +0100 | <monochrom> | Eh, I like Steve Buscemi too. |
2021-11-17 03:13:31 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-11-17 03:14:55 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-11-17 03:15:02 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-11-17 03:18:07 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-11-17 03:18:07 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-11-17 03:18:07 +0100 | finn_elija | FinnElija |
2021-11-17 03:18:23 +0100 | perrierjouet | Charles_Attends |
2021-11-17 03:24:20 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 03:32:57 +0100 | <EvanR> | wth |
2021-11-17 03:34:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-17 03:34:15 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 03:37:43 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 03:39:08 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 03:40:06 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 03:40:44 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) (Ping timeout: 265 seconds) |
2021-11-17 03:41:16 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) |
2021-11-17 03:47:53 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2021-11-17 03:48:42 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-11-17 03:48:57 +0100 | xff0x | (~xff0x@port-92-195-74-242.dynamic.as20676.net) (Ping timeout: 265 seconds) |
2021-11-17 03:50:29 +0100 | xff0x | (~xff0x@2001:1a81:5370:a900:85a3:6303:a932:32a1) |
2021-11-17 03:52:02 +0100 | edwtjo | (~edwtjo@user/edwtjo) (Ping timeout: 260 seconds) |
2021-11-17 04:05:53 +0100 | edwtjo | (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) |
2021-11-17 04:05:53 +0100 | edwtjo | (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host) |
2021-11-17 04:05:53 +0100 | edwtjo | (~edwtjo@user/edwtjo) |
2021-11-17 04:06:32 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 240 seconds) |
2021-11-17 04:08:03 +0100 | jkaye | (~jkaye@2601:281:8300:7530:c291:7247:e8a1:1137) |
2021-11-17 04:09:15 +0100 | boxscape_ | (~boxscape_@i59F67A72.versanet.de) (Ping timeout: 265 seconds) |
2021-11-17 04:09:18 +0100 | mark__ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-11-17 04:14:28 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 04:14:53 +0100 | <ozzloy_> | https://paste.tomsmeding.com/0movjx2y when line 105 says "(Ord a)" the compiler says it should be "(Num a)" and when line 105 says "(Num a)" the compiler wants "(Ord a)" |
2021-11-17 04:15:24 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:a029:e568:3465:8d9f) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 04:15:58 +0100 | <ozzloy_> | sm, oh, i'll try that |
2021-11-17 04:16:00 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:a029:e568:3465:8d9f) |
2021-11-17 04:17:19 +0100 | <geekosaur> | you need both |
2021-11-17 04:17:19 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 268 seconds) |
2021-11-17 04:18:13 +0100 | <geekosaur> | (Num does *not* imply Ord, because of types like Complex Double which are Num but not meaningfully Ord. except we have an Ord for it anyway because Maps need it. meh) |
2021-11-17 04:19:01 +0100 | <dolio> | People really shouldn't be using Complex Double as a map key. |
2021-11-17 04:20:25 +0100 | <ozzloy_> | what's the syntax for putting in both? i tried a few things. also, what word or phrase would i search to find out how to specify both? |
2021-11-17 04:20:27 +0100 | <geekosaur> | anyway you need Ord because you do a comparison via (<), and you need Num because you both substitute i with 0 and compute (i + 1) |
2021-11-17 04:20:38 +0100 | <geekosaur> | (Num a, Ord a) => ... |
2021-11-17 04:20:45 +0100 | <ozzloy_> | thanks! |
2021-11-17 04:21:04 +0100 | <ozzloy_> | so let's say i didn't know that syntax. what would i search for to find it? |
2021-11-17 04:21:38 +0100 | <geekosaur> | the only thing I know is "constraint tuple" but just the phrase would give you the answer :( |
2021-11-17 04:22:00 +0100 | <ozzloy_> | ah, so those things are called constraints |
2021-11-17 04:22:08 +0100 | <sm> | ozzloy_: browsing the GHC user guide would be a good way |
2021-11-17 04:22:09 +0100 | <ozzloy_> | 'which the error message does say |
2021-11-17 04:22:22 +0100 | <sm> | browsing the haskell wiki would also find examples, possibly a bit quicker |
2021-11-17 04:22:27 +0100 | <ozzloy_> | oh wait, no it doesn't |
2021-11-17 04:22:30 +0100 | <geekosaur> | "haskell multiple constraints" seems to get decent answers |
2021-11-17 04:22:36 +0100 | <ozzloy_> | i thought i remember seeing that phrase though |
2021-11-17 04:22:38 +0100 | <ozzloy_> | thanks! |
2021-11-17 04:22:46 +0100 | <ozzloy_> | s/phrase/term/ |
2021-11-17 04:23:03 +0100 | <sm> | browsing any large haskell codebase would be another way |
2021-11-17 04:23:35 +0100 | sm | meant haskell wikibook, not haskell wiki |
2021-11-17 04:24:46 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 04:27:36 +0100 | <monochrom> | I read a proper tutorial back then. Today there are proper textbooks, even better. |
2021-11-17 04:28:49 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-11-17 04:28:49 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-11-17 04:28:49 +0100 | finn_elija | FinnElija |
2021-11-17 04:30:02 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 04:30:49 +0100 | bliminse_ | (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) |
2021-11-17 04:30:55 +0100 | bliminse | (~bliminse@host86-185-253-43.range86-185.btcentralplus.com) (Ping timeout: 250 seconds) |
2021-11-17 04:31:26 +0100 | mimmy_ | (~mimmy@72.142.88.18) (Quit: WeeChat 3.3) |
2021-11-17 04:32:37 +0100 | <EvanR> | the haskell report explains all syntax (except for extensions...) |
2021-11-17 04:33:07 +0100 | <ozzloy_> | https://paste.tomsmeding.com/wzhWEcXe everyK now works! |
2021-11-17 04:33:27 +0100 | <ozzloy_> | i have started "learn you a haskell' a couple times |
2021-11-17 04:33:53 +0100 | <monochrom> | Pretty sure it covers that too somewhere. |
2021-11-17 04:34:06 +0100 | <ozzloy_> | probably |
2021-11-17 04:34:26 +0100 | <ozzloy_> | knowing that those are called "constraints" i think is going to be the most useful |
2021-11-17 04:34:47 +0100 | <ozzloy_> | in terms of quickly finding the right syntax for related things in the future |
2021-11-17 04:34:47 +0100 | <monochrom> | Maybe not exactly (Num a, Ord a) letter by letter, but surely the concept of having two constraints and the syntax for it. |
2021-11-17 04:35:14 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-11-17 04:35:28 +0100 | <monochrom> | And maybe not the exact wording "constraint" but surely "(XXX a, YYY a)" in which XXX and YYY are classes. |
2021-11-17 04:35:28 +0100 | <ozzloy_> | heh, it would be funny if it literally had "(Num a, Ord a) somewhere |
2021-11-17 04:36:55 +0100 | <ozzloy_> | yeah, "haskell multiple classes" gave a stackoverflow with the right syntax |
2021-11-17 04:37:03 +0100 | <ozzloy_> | thanks all |
2021-11-17 04:38:32 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) |
2021-11-17 04:42:47 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-17 04:42:54 +0100 | <ozzloy_> | https://paste.tomsmeding.com/4XINUqY3 lol, i'm trying to reverse the result of everyK, but when i search "haskell reverse" there's a bunch of results about how to write reverse. so i guessed 'reverse l' and that worked |
2021-11-17 04:43:57 +0100 | <ozzloy_> | also, should everyK 2 [1,2,3,4,5] return [2,4] or [1,3,5] ? the problem statement doesn't say, so this is more of a "what's your opinion?". |
2021-11-17 04:46:08 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-11-17 04:46:45 +0100 | <EvanR> | > reverse [2,3,5,7,11] |
2021-11-17 04:46:46 +0100 | <lambdabot> | [11,7,5,3,2] |
2021-11-17 04:47:49 +0100 | <ozzloy_> | thanks |
2021-11-17 04:48:02 +0100 | <EvanR> | even putting a number in for k and asking the question is problematic |
2021-11-17 04:48:36 +0100 | <EvanR> | e.g. return every 2nd item, return every 1st item, return every 0th item? |
2021-11-17 04:49:13 +0100 | <EvanR> | ok it says k is positive |
2021-11-17 04:49:21 +0100 | <ozzloy_> | yeah, we need to switch as a species to 0 based indexing for everything |
2021-11-17 04:50:51 +0100 | moet | (~moet@mobile-166-170-38-150.mycingular.net) (Ping timeout: 250 seconds) |
2021-11-17 04:51:15 +0100 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Quit: WeeChat 3.3) |
2021-11-17 04:51:22 +0100 | <EvanR> | in [0..] every "5th item" is like 0, 5, 10, 15, ... my opinion xD |
2021-11-17 04:52:17 +0100 | <EvanR> | even though, the 5th item (4) isn't there |
2021-11-17 04:52:31 +0100 | moet | (~moet@mobile-166-170-38-148.mycingular.net) |
2021-11-17 04:53:28 +0100 | <EvanR> | 4, 9, 14, 19 is just ridiculous! |
2021-11-17 04:53:38 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-11-17 04:55:39 +0100 | td_ | (~td@94.134.91.233) (Ping timeout: 265 seconds) |
2021-11-17 04:57:20 +0100 | td_ | (~td@94.134.91.227) |
2021-11-17 04:59:31 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:a029:e568:3465:8d9f) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 05:00:53 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 05:08:31 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-17 05:08:48 +0100 | img | (~img@user/img) |
2021-11-17 05:09:31 +0100 | <dsal> | How come there's a reverse function but not a forward function? |
2021-11-17 05:09:51 +0100 | <dsal> | :t forward |
2021-11-17 05:09:52 +0100 | <lambdabot> | [a] -> [a] |
2021-11-17 05:09:57 +0100 | <dsal> | > forward [1, 2, 3] |
2021-11-17 05:09:58 +0100 | <lambdabot> | [1,2,3] |
2021-11-17 05:10:26 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 05:11:27 +0100 | <EvanR> | I know. There's even a "sideways" |
2021-11-17 05:11:33 +0100 | <EvanR> | > transpose [1,2,3] |
2021-11-17 05:11:34 +0100 | <lambdabot> | error: |
2021-11-17 05:11:34 +0100 | <lambdabot> | • No instance for (Num [()]) arising from a use of ‘e_1123’ |
2021-11-17 05:11:34 +0100 | <lambdabot> | • In the expression: e_1123 |
2021-11-17 05:11:43 +0100 | <EvanR> | shucks |
2021-11-17 05:12:21 +0100 | <dsal> | Sideways is pretty neat. |
2021-11-17 05:12:31 +0100 | jkaye | (~jkaye@2601:281:8300:7530:c291:7247:e8a1:1137) (Ping timeout: 250 seconds) |
2021-11-17 05:15:42 +0100 | <Axman6> | we have a filter, but where's unfilter? Give me back what's been taken! |
2021-11-17 05:17:15 +0100 | <EvanR> | for that you need reversible computing, and we come full circle |
2021-11-17 05:17:23 +0100 | jle` | (~jle`@2603-8001-3b02-84d4-0000-0000-0000-025d.res6.spectrum.com) (Quit: WeeChat 3.3) |
2021-11-17 05:22:44 +0100 | jle` | (~jle`@2603-8001-3b02-84d4-0000-0000-0000-025d.res6.spectrum.com) |
2021-11-17 05:24:16 +0100 | EvanR | (~evan@user/evanr) (Quit: Leaving) |
2021-11-17 05:24:21 +0100 | <dsal> | That sounds a little bit like something I did in a codebase... What is that. |
2021-11-17 05:27:22 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-11-17 05:27:33 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 265 seconds) |
2021-11-17 05:27:34 +0100 | <dsal> | Oh yeah. I use that for some enum mapping in postgres instances. Given an `a -> ByteString` I could make a `ByteString -> Maybe a` for bidirectional coding. |
2021-11-17 05:27:41 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 250 seconds) |
2021-11-17 05:28:26 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 05:31:04 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-17 05:32:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 05:32:15 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 05:33:47 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) (Ping timeout: 268 seconds) |
2021-11-17 05:34:58 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) |
2021-11-17 05:35:04 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) |
2021-11-17 05:37:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-17 05:37:03 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-17 05:37:03 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-17 05:37:20 +0100 | mbuf | (~Shakthi@122.162.1.56) |
2021-11-17 05:37:47 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 05:37:52 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 05:38:24 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 05:40:59 +0100 | <sm> | which is the best gui viewer for profiles currently ? |
2021-11-17 05:44:35 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 05:45:21 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 05:47:48 +0100 | <sm> | maybe maerwald will add it to ghcup, and I'll stop having to ask this |
2021-11-17 05:51:05 +0100 | MoC_ | (~moc@user/moc) (Ping timeout: 250 seconds) |
2021-11-17 05:51:13 +0100 | MoC | (~moc@user/moc) |
2021-11-17 06:00:54 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-11-17 06:02:26 +0100 | boxscape_ | (~boxscape_@i59F67A8D.versanet.de) |
2021-11-17 06:02:57 +0100 | <ozzloy_> | :t sidwats [1,2,3] |
2021-11-17 06:02:58 +0100 | <lambdabot> | error: |
2021-11-17 06:02:58 +0100 | <lambdabot> | Variable not in scope: sidwats :: [a0] -> t |
2021-11-17 06:03:16 +0100 | <ozzloy_> | :t sidways [1,2,3] |
2021-11-17 06:03:17 +0100 | <lambdabot> | error: |
2021-11-17 06:03:17 +0100 | <lambdabot> | Variable not in scope: sidways :: [a0] -> t |
2021-11-17 06:03:24 +0100 | <ozzloy_> | :t sideways [1,2,3] |
2021-11-17 06:03:25 +0100 | <lambdabot> | error: |
2021-11-17 06:03:25 +0100 | <lambdabot> | Variable not in scope: sideways :: [a0] -> t |
2021-11-17 06:03:49 +0100 | <Axman6> | ok, really dumb question - how do you run ghci so it can see pckages you have installed with cabal new-install foo |
2021-11-17 06:04:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-11-17 06:04:41 +0100 | <ozzloy_> | :t transpose [[1],[2],[3]] |
2021-11-17 06:04:42 +0100 | <lambdabot> | Num a => [[a]] |
2021-11-17 06:05:02 +0100 | <ozzloy_> | > transpose [[1],[2],[3]] |
2021-11-17 06:05:04 +0100 | <lambdabot> | [[1,2,3]] |
2021-11-17 06:05:18 +0100 | <ozzloy_> | transpose [[1,2,3]] |
2021-11-17 06:05:25 +0100 | <ozzloy_> | > transpose [[1,2,3]] |
2021-11-17 06:05:26 +0100 | <lambdabot> | [[1],[2],[3]] |
2021-11-17 06:05:45 +0100 | <glguy> | Axman6: I do: cabal repl --build-dep foo |
2021-11-17 06:06:43 +0100 | <Axman6> | huh, ok, I have never done that |
2021-11-17 06:07:09 +0100 | <Axman6> | I sense hacks: fake-package-0 |
2021-11-17 06:10:47 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-11-17 06:11:15 +0100 | sm | discovers one command to generate a time-and-space profile from your default executable: |
2021-11-17 06:11:15 +0100 | sm | stack run --profile --rts-options -p |
2021-11-17 06:11:36 +0100 | econo | (uid147250@user/econo) |
2021-11-17 06:12:05 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-11-17 06:12:29 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-11-17 06:18:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-17 06:18:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-17 06:18:07 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-17 06:22:39 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-11-17 06:23:49 +0100 | <dsal> | > transpose ["dog", "ole", "mem"] |
2021-11-17 06:23:51 +0100 | <lambdabot> | ["dom","ole","gem"] |
2021-11-17 06:43:39 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 06:45:56 +0100 | renzhi | (~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 268 seconds) |
2021-11-17 06:47:51 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 250 seconds) |
2021-11-17 06:52:53 +0100 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-11-17 06:53:32 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-11-17 06:58:41 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 250 seconds) |
2021-11-17 07:02:36 +0100 | sagax | (~sagax_nb@user/sagax) (Read error: Connection reset by peer) |
2021-11-17 07:09:28 +0100 | n8chan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Read error: No route to host) |
2021-11-17 07:10:26 +0100 | n8chan | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-11-17 07:10:47 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-17 07:14:41 +0100 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 245 seconds) |
2021-11-17 07:16:47 +0100 | moet | (~moet@mobile-166-170-38-148.mycingular.net) (Ping timeout: 265 seconds) |
2021-11-17 07:19:33 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-11-17 07:21:43 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 07:22:18 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 07:25:26 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-11-17 07:25:50 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-11-17 07:26:51 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 07:29:07 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-11-17 07:31:50 +0100 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) |
2021-11-17 07:32:36 +0100 | christiaanb | (sid84827@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 07:34:02 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds) |
2021-11-17 07:34:11 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-11-17 07:35:49 +0100 | christiaanb | (sid84827@lymington.irccloud.com) |
2021-11-17 07:36:59 +0100 | philpax_ | (sid516926@lymington.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-17 07:37:24 +0100 | sagax | (~sagax_nb@user/sagax) |
2021-11-17 07:38:50 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-11-17 07:40:10 +0100 | philpax_ | (sid516926@lymington.irccloud.com) |
2021-11-17 07:41:13 +0100 | <ozzloy_> | https://paste.tomsmeding.com/OfRIGoPO i'd like to rewrite minAndMax with foldr. i wrote one version which uses foldr, but does 2n comparisons |
2021-11-17 07:41:37 +0100 | <ozzloy_> | and i wrote a step function that would do 3n/2 comparisons instead |
2021-11-17 07:41:49 +0100 | <ozzloy_> | that's minAndMaxHelper |
2021-11-17 07:42:49 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-17 07:43:11 +0100 | <ozzloy_> | well, it's currently written as a function that takes 4 inputs, but it could easily be 2 tuples instead |
2021-11-17 07:43:15 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-17 07:43:24 +0100 | <ozzloy_> | but i don't know how to convert the incoming list into a list of tuples |
2021-11-17 07:43:44 +0100 | <ozzloy_> | even so, it feels like i'm missing something here |
2021-11-17 07:44:44 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-17 07:46:13 +0100 | Vajb | (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) |
2021-11-17 07:49:02 +0100 | mrianbloom | (sid350277@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 07:49:02 +0100 | teehemkay | (sid14792@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 07:49:02 +0100 | teehemkay_ | teehemkay |
2021-11-17 07:49:27 +0100 | ephemient | (uid407513@lymington.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-17 07:49:27 +0100 | jonrh | (sid5185@ilkley.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-17 07:50:00 +0100 | ephemient | (uid407513@lymington.irccloud.com) |
2021-11-17 07:52:12 +0100 | mrianbloom | (sid350277@ilkley.irccloud.com) |
2021-11-17 07:52:26 +0100 | teehemkay_ | (sid14792@lymington.irccloud.com) |
2021-11-17 07:52:39 +0100 | jonrh | (sid5185@ilkley.irccloud.com) |
2021-11-17 07:54:26 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 08:00:06 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (Quit: WeeChat 3.3) |
2021-11-17 08:00:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 08:01:31 +0100 | rkrishnan | (~user@122.167.19.65) |
2021-11-17 08:10:16 +0100 | mmhat | (~mmh@55d47379.access.ecotel.net) |
2021-11-17 08:10:44 +0100 | retroid_ | (~retro@97e2ba2e.skybroadband.com) |
2021-11-17 08:10:51 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 08:13:30 +0100 | retro_ | (~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds) |
2021-11-17 08:14:00 +0100 | aegon | (~mike@174.127.249.180) |
2021-11-17 08:15:45 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 08:23:31 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2021-11-17 08:23:55 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) |
2021-11-17 08:26:39 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 250 seconds) |
2021-11-17 08:31:34 +0100 | <ozzloy_> | anyone in here use spacemacs? |
2021-11-17 08:34:26 +0100 | michalz | (~michalz@185.246.204.57) |
2021-11-17 08:34:37 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 08:35:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-11-17 08:35:11 +0100 | xff0x | (~xff0x@2001:1a81:5370:a900:85a3:6303:a932:32a1) (Ping timeout: 264 seconds) |
2021-11-17 08:35:41 +0100 | xff0x | (~xff0x@2001:1a81:5370:a900:40b1:f398:28bb:45d6) |
2021-11-17 08:37:39 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-11-17 08:38:47 +0100 | jbox | (~jbox@user/jbox) (Ping timeout: 264 seconds) |
2021-11-17 08:39:39 +0100 | neurocyte0132889 | (~neurocyte@45.136.170.104) |
2021-11-17 08:39:39 +0100 | neurocyte0132889 | (~neurocyte@45.136.170.104) (Changing host) |
2021-11-17 08:39:39 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-11-17 08:41:15 +0100 | DoseMeBoofy | (~cads@ip-64-72-99-234.lasvegas.net) (Ping timeout: 268 seconds) |
2021-11-17 08:47:04 +0100 | retro_ | (~retro@97e2ba2e.skybroadband.com) |
2021-11-17 08:48:19 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 08:50:30 +0100 | retroid_ | (~retro@97e2ba2e.skybroadband.com) (Ping timeout: 268 seconds) |
2021-11-17 08:51:35 +0100 | cads | (~cads@ip-64-72-99-234.lasvegas.net) |
2021-11-17 08:53:27 +0100 | <johnjay> | no |
2021-11-17 08:53:41 +0100 | <tomsmeding> | ozzloy_: pairList (a:b:xs) = (a,b) : pairList xs ; pairList [] = [] ; pairList _ = error "odd length input" |
2021-11-17 08:53:43 +0100 | <tomsmeding> | :p |
2021-11-17 08:54:17 +0100 | <tomsmeding> | if you want to use one foldr reduction only, you could add a boolean to the state, indicating whether you're in the first or the second component of the pair |
2021-11-17 08:54:38 +0100 | <johnjay> | is miranda similar to haskell? the paper i'm looking at has examples in miranda |
2021-11-17 08:54:50 +0100 | <ozzloy_> | i ... could |
2021-11-17 08:55:05 +0100 | fef | (~thedawn@user/thedawn) |
2021-11-17 08:55:23 +0100 | <ozzloy_> | then i have to check that boolean, which seems like it defeats the 3n/2 thing |
2021-11-17 08:55:41 +0100 | <ozzloy_> | tomsmeding, thanks for the feedback |
2021-11-17 08:56:00 +0100 | <tomsmeding> | depending on whether you count that as a comparison :D |
2021-11-17 08:56:19 +0100 | <tomsmeding> | johnjay: haskell is inspired by miranda iirc |
2021-11-17 08:56:27 +0100 | <ozzloy_> | to check a boolean's value, doesn't something somewhere get compared with 0? |
2021-11-17 08:56:42 +0100 | <johnjay> | ok. |
2021-11-17 08:56:56 +0100 | <tomsmeding> | yeah, but to fold over a list, you also have to compare the top-level constructor with [] and with (:) each time ;) |
2021-11-17 08:56:58 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 08:57:06 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 08:57:11 +0100 | <tomsmeding> | which happens implicitly in pattern matching |
2021-11-17 08:57:19 +0100 | <ozzloy_> | ah |
2021-11-17 08:57:38 +0100 | <ozzloy_> | it was always more than 3n/2 |
2021-11-17 08:57:39 +0100 | <tomsmeding> | and presumably that one doesn't count |
2021-11-17 08:57:42 +0100 | <ozzloy_> | always has been |
2021-11-17 08:57:48 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 08:57:48 +0100 | <tomsmeding> | always will be |
2021-11-17 08:57:56 +0100 | <ozzloy_> | the mask falls away |
2021-11-17 08:58:16 +0100 | <tomsmeding> | and the light reveals itself |
2021-11-17 08:58:17 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:d1a7:a86b:c4f9:1801) |
2021-11-17 08:59:21 +0100 | <ozzloy_> | thanks. the truth is brutal, but i prefer living in reality |
2021-11-17 08:59:31 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-11-17 09:00:01 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-11-17 09:00:19 +0100 | <ozzloy_> | well, for reals, thanks. i'm off to bed |
2021-11-17 09:00:35 +0100 | <tomsmeding> | have a good night :) |
2021-11-17 09:02:37 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 09:07:17 +0100 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-11-17 09:08:43 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-11-17 09:09:17 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-11-17 09:11:49 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-11-17 09:12:08 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) |
2021-11-17 09:14:14 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) (Ping timeout: 265 seconds) |
2021-11-17 09:14:53 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) |
2021-11-17 09:16:08 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-11-17 09:21:57 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2021-11-17 09:21:58 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 256 seconds) |
2021-11-17 09:21:59 +0100 | fef | (~thedawn@user/thedawn) (Quit: Leaving) |
2021-11-17 09:22:00 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 276 seconds) |
2021-11-17 09:22:51 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2021-11-17 09:24:52 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 265 seconds) |
2021-11-17 09:25:18 +0100 | boxscape_ | (~boxscape_@i59F67A8D.versanet.de) (Quit: Connection closed) |
2021-11-17 09:28:13 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-11-17 09:28:40 +0100 | hololeap | (~hololeap@user/hololeap) (Read error: Connection reset by peer) |
2021-11-17 09:29:59 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-11-17 09:37:53 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-11-17 09:38:49 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-11-17 09:40:48 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-17 09:43:53 +0100 | vysn | (~vysn@user/vysn) |
2021-11-17 09:47:13 +0100 | <Profpatsch> | If I export Foo(getFoo) instead of Foo(Foo, getFoo), will I still be able to construct Foo outside of the module? |
2021-11-17 09:47:31 +0100 | <Profpatsch> | (I want to prevent that) |
2021-11-17 09:47:36 +0100 | boxscape_ | (~boxscape_@134.171.69.87) |
2021-11-17 09:50:19 +0100 | aarchi | (sid486183@uxbridge.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-17 09:52:31 +0100 | aarchi | (sid486183@uxbridge.irccloud.com) |
2021-11-17 09:52:35 +0100 | Codaraxis | (~Codaraxis@user/codaraxis) (Quit: Leaving) |
2021-11-17 09:53:06 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) |
2021-11-17 09:54:14 +0100 | <tomsmeding> | no, because the constructor is not exported |
2021-11-17 09:54:16 +0100 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) |
2021-11-17 09:54:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 09:56:07 +0100 | <tomsmeding> | barring unsafeCoerce of course |
2021-11-17 09:56:17 +0100 | <tomsmeding> | normal 'coerce' seems to be protected! |
2021-11-17 09:57:34 +0100 | <tomsmeding> | Profpatsch: note that while not exporting the constructor prevents well-meaning people from constructing a Foo; malicious people can do unsafeCoerce and get a Foo anyway |
2021-11-17 09:57:58 +0100 | <boxscape_> | :o how dare they |
2021-11-17 09:58:21 +0100 | <tomsmeding> | still better than the enforcement of 'private' in C++ :p |
2021-11-17 09:58:31 +0100 | <boxscape_> | true |
2021-11-17 09:58:46 +0100 | <tomsmeding> | boxscape_: offtopic, I wonder, why the _ |
2021-11-17 09:59:02 +0100 | <boxscape_> | because I'm too lazy to log into matrix, where I'm logged in as boxscape |
2021-11-17 09:59:12 +0100 | <tomsmeding> | ah :) |
2021-11-17 10:00:06 +0100 | santiagopim[m] | (~santiagop@2001:470:69fc:105::e57d) (Quit: You have been kicked for being idle) |
2021-11-17 10:03:37 +0100 | <lortabac> | Profpatsch: you may still be able to construct a Foo if it is an instance of Num, IsString, IsList... |
2021-11-17 10:05:43 +0100 | <Profpatsch> | tomsmeding: strange, it felt like Foo(getFoo) would also allow construction, at least I didn’t get an error. |
2021-11-17 10:06:03 +0100 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-11-17 10:07:01 +0100 | <tomsmeding> | Profpatsch: seeing is believing |
2021-11-17 10:07:50 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-11-17 10:08:13 +0100 | <merijn> | tomsmeding: Not with current levels of generative ML :p |
2021-11-17 10:09:09 +0100 | <kritzefitz> | Profpatsch: Is "getFoo" a record field of "Foo"? In that case you can use it to update that field in existing "Foo"s outside of the module. |
2021-11-17 10:09:53 +0100 | chele | (~chele@user/chele) |
2021-11-17 10:11:51 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-17 10:13:07 +0100 | timCF | (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
2021-11-17 10:15:57 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-11-17 10:16:36 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Client Quit) |
2021-11-17 10:16:52 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-11-17 10:16:58 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
2021-11-17 10:17:32 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-17 10:25:04 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-11-17 10:28:05 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-11-17 10:36:51 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 250 seconds) |
2021-11-17 10:37:01 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-11-17 10:44:42 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) (Ping timeout: 256 seconds) |
2021-11-17 10:45:07 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-11-17 10:45:31 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) |
2021-11-17 10:45:58 +0100 | <Profpatsch> | kritzefitz: yeah it is |
2021-11-17 10:46:13 +0100 | <Profpatsch> | But it looked to me like (Foo "test") also worked |
2021-11-17 10:50:16 +0100 | <boxscape_> | I finally understand how Applicative is a Monoid |
2021-11-17 10:50:17 +0100 | Vajb | (~Vajb@nalkaylds2h97nzof-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2021-11-17 10:50:20 +0100 | <boxscape_> | pure :: Identity ~> f |
2021-11-17 10:50:31 +0100 | <boxscape_> | (<*>) :: f `Day` f ~> f |
2021-11-17 10:50:55 +0100 | <boxscape_> | (I think that's <*> anyway) |
2021-11-17 10:51:20 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-17 10:52:08 +0100 | <boxscape_> | (type f ~> g = forall a . f a -> g a) |
2021-11-17 10:54:02 +0100 | <lortabac> | boxscape_: I find this alternative formulation of Applicative simpler to understand: https://wiki.haskell.org/Typeclassopedia#Alternative_formulation |
2021-11-17 10:54:27 +0100 | <boxscape_> | interesting |
2021-11-17 10:54:33 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 10:55:16 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 10:55:57 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 10:56:18 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-17 10:57:10 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2021-11-17 10:58:09 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 10:59:02 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:00:35 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:00:44 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:01:03 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 11:02:17 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:02:25 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:04:49 +0100 | cads | (~cads@ip-64-72-99-234.lasvegas.net) (Ping timeout: 250 seconds) |
2021-11-17 11:05:45 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:05:53 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:07:13 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:07:20 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 11:07:21 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:07:40 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:07:47 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:07:50 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:08:04 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:08:20 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 11:09:26 +0100 | <kuribas> | dminuoso: good news, my pr was merged :) |
2021-11-17 11:09:46 +0100 | <kuribas> | dminuoso: the one that adds the label to the error message in cassava. |
2021-11-17 11:10:12 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Remote host closed the connection) |
2021-11-17 11:10:20 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:11:21 +0100 | alzgh | (~alzgh@user/alzgh) (Ping timeout: 256 seconds) |
2021-11-17 11:12:20 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-17 11:14:11 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Ping timeout: 268 seconds) |
2021-11-17 11:14:54 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
2021-11-17 11:15:08 +0100 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-11-17 11:16:45 +0100 | <dminuoso> | kuribas: Yeah just saw. |
2021-11-17 11:17:02 +0100 | <dminuoso> | Im tempted to just attoparsec through this csv instead though |
2021-11-17 11:17:11 +0100 | rtpg | (sid443069@ilkley.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-17 11:17:12 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer) |
2021-11-17 11:17:29 +0100 | <dminuoso> | With a first lexing phase, naively it seems rather simple |
2021-11-17 11:17:34 +0100 | davetapley | (sid666@uxbridge.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 11:17:34 +0100 | rtpg | (sid443069@ilkley.irccloud.com) |
2021-11-17 11:17:50 +0100 | <dminuoso> | Then I can simply use <?> to annotate parts |
2021-11-17 11:18:08 +0100 | gonz____ | (sid304396@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 11:18:42 +0100 | christiaanb | (sid84827@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 11:18:42 +0100 | bjs | (sid190364@user/bjs) (Ping timeout: 256 seconds) |
2021-11-17 11:18:42 +0100 | Pent | (sid313808@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 11:18:42 +0100 | awpr | (uid446117@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 11:19:06 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Quit: Leaving.) |
2021-11-17 11:19:14 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:19:40 +0100 | bjs | (sid190364@user/bjs) |
2021-11-17 11:19:41 +0100 | christiaanb | (sid84827@lymington.irccloud.com) |
2021-11-17 11:19:41 +0100 | awpr | (uid446117@lymington.irccloud.com) |
2021-11-17 11:19:42 +0100 | Pent | (sid313808@lymington.irccloud.com) |
2021-11-17 11:20:45 +0100 | davetapley | (sid666@uxbridge.irccloud.com) |
2021-11-17 11:20:56 +0100 | fef | (~thedawn@user/thedawn) |
2021-11-17 11:21:23 +0100 | gonz____ | (sid304396@lymington.irccloud.com) |
2021-11-17 11:22:04 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:22:12 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:22:41 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection) |
2021-11-17 11:23:17 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:23:27 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:24:32 +0100 | <kuribas> | dminuoso: for my libraries, I am going to always use structured errors, instead of just `String`. |
2021-11-17 11:25:09 +0100 | alzgh | (alzgh@user/alzgh) |
2021-11-17 11:26:35 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:26:42 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:28:10 +0100 | <Maxdamantus> | Does that mean you're not allowed to change what errors are produced? |
2021-11-17 11:28:31 +0100 | <Maxdamantus> | Since that would presumably be breaking your API. |
2021-11-17 11:29:29 +0100 | alzgh | (alzgh@user/alzgh) (Ping timeout: 256 seconds) |
2021-11-17 11:29:47 +0100 | <Maxdamantus> | (if the error just has an unstructured string, you should be able to change that because obviously noone is meant to match on a random string) |
2021-11-17 11:30:17 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:30:41 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:31:55 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-11-17 11:32:04 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Client Quit) |
2021-11-17 11:32:12 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-11-17 11:32:46 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:32:57 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:33:11 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:33:24 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:33:25 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 11:33:44 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:33:58 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:34:01 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:34:07 +0100 | <kuribas> | Maxdamantus: Typically I have "MyError c", with a data constructor "CustomErr c", so you can add your own error type. |
2021-11-17 11:34:51 +0100 | <kuribas> | Maxdamantus: Or do you mean keeping backwards compatibility? |
2021-11-17 11:35:28 +0100 | <kuribas> | No, I may add data constructors if necessary, potentially breaking code. |
2021-11-17 11:35:51 +0100 | <kuribas> | Though it shouldn't change much once the API is stable. |
2021-11-17 11:36:05 +0100 | chele_ | (~chele@user/chele) |
2021-11-17 11:36:15 +0100 | <Maxdamantus> | Yes. Presumably the reason for structuring errors is that a user will match on the different errors, so they assume certain errors are produced under certain circumstances. |
2021-11-17 11:36:56 +0100 | <kuribas> | Indeed. |
2021-11-17 11:37:09 +0100 | chele | Guest6942 |
2021-11-17 11:37:09 +0100 | chele_ | chele |
2021-11-17 11:37:17 +0100 | <kuribas> | But if the user only wants to catch some errors, it can be still backwards compatible. |
2021-11-17 11:37:19 +0100 | <Maxdamantus> | Linux isn't allowed to decide to replace EPERM with a different set of more granular permission errors. |
2021-11-17 11:38:02 +0100 | <kuribas> | like: case err of SomeErrorICareAbout foo bar -> process foo bar; _ -> otherCases |
2021-11-17 11:38:45 +0100 | Guest6942 | (~chele@user/chele) (Ping timeout: 265 seconds) |
2021-11-17 11:39:07 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 11:39:21 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 11:40:32 +0100 | <kuribas> | Maxdamantus: for my SQL library, the error messages haven't changed lately. |
2021-11-17 11:40:32 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 11:42:17 +0100 | <kuribas> | Maxdamantus: https://hackage.haskell.org/package/hasqlator-mysql-0.1.0/docs/Database-MySQL-Hasqlator.html#t:SQL… |
2021-11-17 11:42:25 +0100 | mark___ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-17 11:42:28 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 11:44:26 +0100 | __monty__ | (~toonn@user/toonn) |
2021-11-17 11:46:16 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 11:47:27 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 11:48:17 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 11:48:17 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 11:50:22 +0100 | <Maxdamantus> | Does the `SQLError` data constructor include connection errors as well as errors produced by the SQL server (eg, SQL syntax error due to malformed query, or integrity constraint violation due to state of database)? |
2021-11-17 11:50:57 +0100 | <Maxdamantus> | I'd probably be inclined to be more granular in that case, but yeah, at some point you just have to have a string. |
2021-11-17 11:51:16 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 11:53:05 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 11:53:11 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-17 11:53:19 +0100 | mastarija | (~mastarija@2a05:4f46:e06:ff00:a943:a997:c897:f5b) |
2021-11-17 11:53:55 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 11:54:30 +0100 | <Maxdamantus> | Oh, looks like there are different errors for those cases raised by mysql-haskell. |
2021-11-17 11:54:56 +0100 | <kuribas> | Maxdamantus: hmm, it looks like I am never throwing that one. |
2021-11-17 11:55:06 +0100 | <kuribas> | I might as well delete it then. |
2021-11-17 11:55:23 +0100 | <kuribas> | I guess my original idea was to rethrow the ones from mysql-haskell. |
2021-11-17 11:56:28 +0100 | <kuribas> | Maxdamantus: it's perhaps a bad example, because these are the kinds of errors you typically don't catch. |
2021-11-17 11:56:46 +0100 | <Maxdamantus> | Errors you don't catch should just be strings imo. |
2021-11-17 11:56:46 +0100 | <kuribas> | Maxdamantus: At least not in a granular way, you normally assume the queries are correct. |
2021-11-17 11:57:48 +0100 | <kuribas> | Perhaps... But it's easy to go from structured to a string. The other way is not true. |
2021-11-17 11:58:11 +0100 | pfurla | (~pfurla@177.142.247.67) |
2021-11-17 11:58:31 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 11:58:56 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 12:00:35 +0100 | alx741 | (~alx741@181.196.69.19) |
2021-11-17 12:01:25 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-11-17 12:03:45 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:d1a7:a86b:c4f9:1801) (Ping timeout: 250 seconds) |
2021-11-17 12:04:39 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 12:05:23 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 12:06:25 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:09:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-11-17 12:10:10 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 12:11:04 +0100 | mastarija | (~mastarija@2a05:4f46:e06:ff00:a943:a997:c897:f5b) (Quit: Leaving) |
2021-11-17 12:11:53 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:13:50 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:14:58 +0100 | pfurla_ | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) |
2021-11-17 12:16:47 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 12:16:53 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:18:52 +0100 | pfurla | (~pfurla@177.142.247.67) (Ping timeout: 265 seconds) |
2021-11-17 12:18:52 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:21:36 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 12:21:53 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:22:57 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-17 12:23:10 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:25:00 +0100 | gonz____ | (sid304396@lymington.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 12:25:06 +0100 | acertain | (sid470584@hampstead.irccloud.com) (Ping timeout: 245 seconds) |
2021-11-17 12:25:06 +0100 | amir | (sid22336@user/amir) (Ping timeout: 268 seconds) |
2021-11-17 12:25:35 +0100 | whez | (sid470288@lymington.irccloud.com) (Ping timeout: 264 seconds) |
2021-11-17 12:25:43 +0100 | integral | (sid296274@user/integral) (Ping timeout: 268 seconds) |
2021-11-17 12:26:20 +0100 | bw | (sid2730@user/betawaffle) (Ping timeout: 268 seconds) |
2021-11-17 12:26:20 +0100 | scav | (sid309693@helmsley.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-17 12:26:42 +0100 | cln | (sid336875@ilkley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 12:27:34 +0100 | rtpg | (sid443069@ilkley.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-17 12:27:34 +0100 | glowcoil | (sid3405@tinside.irccloud.com) (Ping timeout: 268 seconds) |
2021-11-17 12:27:48 +0100 | cln | (sid336875@ilkley.irccloud.com) |
2021-11-17 12:27:56 +0100 | cv | (~cv@103.142.31.135) |
2021-11-17 12:27:59 +0100 | bw | (sid2730@user/betawaffle) |
2021-11-17 12:28:11 +0100 | astra` | (sid289983@user/amish) (Ping timeout: 268 seconds) |
2021-11-17 12:28:15 +0100 | gonz____ | (sid304396@lymington.irccloud.com) |
2021-11-17 12:28:18 +0100 | acertain | (sid470584@hampstead.irccloud.com) |
2021-11-17 12:28:18 +0100 | amir | (sid22336@user/amir) |
2021-11-17 12:28:46 +0100 | integral | (sid296274@user/integral) |
2021-11-17 12:28:47 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 12:28:48 +0100 | idnar | (sid12240@debian/mithrandi) (Ping timeout: 268 seconds) |
2021-11-17 12:28:52 +0100 | scav | (sid309693@helmsley.irccloud.com) |
2021-11-17 12:29:08 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:29:31 +0100 | rtpg | (sid443069@ilkley.irccloud.com) |
2021-11-17 12:29:52 +0100 | astra` | (sid289983@user/amish) |
2021-11-17 12:29:53 +0100 | idnar | (sid12240@debian/mithrandi) |
2021-11-17 12:30:22 +0100 | glowcoil | (sid3405@tinside.irccloud.com) |
2021-11-17 12:30:29 +0100 | whez | (sid470288@lymington.irccloud.com) |
2021-11-17 12:30:33 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:33:51 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 12:36:24 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:36:54 +0100 | NiKaN | (sid385034@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 12:36:54 +0100 | AndreasK__ | (sid320732@uxbridge.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 12:37:28 +0100 | rubin55 | (sid175221@hampstead.irccloud.com) (Ping timeout: 256 seconds) |
2021-11-17 12:39:09 +0100 | rubin55 | (sid175221@hampstead.irccloud.com) |
2021-11-17 12:39:22 +0100 | sprout_ | (~quassel@2a02:a467:ccd6:1:2c29:7076:9399:3f2e) |
2021-11-17 12:39:49 +0100 | NiKaN | (sid385034@helmsley.irccloud.com) |
2021-11-17 12:40:18 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 12:40:18 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:40:26 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 12:41:12 +0100 | AndreasK__ | (sid320732@uxbridge.irccloud.com) |
2021-11-17 12:41:12 +0100 | rubin55 | (sid175221@hampstead.irccloud.com) (Max SendQ exceeded) |
2021-11-17 12:41:24 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:42:18 +0100 | rubin55 | (sid175221@hampstead.irccloud.com) |
2021-11-17 12:43:02 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:e14a:d90e:46d2:87c4) (Ping timeout: 265 seconds) |
2021-11-17 12:43:02 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2021-11-17 12:45:23 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-17 12:45:38 +0100 | michalz | (~michalz@185.246.204.57) (Read error: No route to host) |
2021-11-17 12:46:09 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 12:46:42 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-17 12:46:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-17 12:47:10 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 12:47:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-17 12:47:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 12:47:39 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-17 12:47:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 12:48:01 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-17 12:48:39 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-17 12:49:47 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
2021-11-17 12:49:52 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-17 12:50:33 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 12:51:05 +0100 | <cv> | Iam wrting a simple API |
2021-11-17 12:51:06 +0100 | <cv> | I am planning to have formatted logs with timestamp log level etc |
2021-11-17 12:51:06 +0100 | <cv> | I am planning just write a simple function that takes some arguments and formats the message before printing it to console or file |
2021-11-17 12:51:07 +0100 | <cv> | Is this alright or should I use some library like hslogger |
2021-11-17 12:51:51 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
2021-11-17 12:52:06 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 12:56:44 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 12:57:44 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:02:15 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 13:03:26 +0100 | <dminuoso> | It's not really for us to say whether its alright. |
2021-11-17 13:03:32 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:03:33 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
2021-11-17 13:05:12 +0100 | <dminuoso> | Personally Im a fan of monad-logger because it provides a clean separation between the logging interface and the implementation. Sadly it just pulls in quite a few dependencies. |
2021-11-17 13:05:19 +0100 | tengu1 | (~tengu1@cpe-70-121-244-14.neb.res.rr.com) |
2021-11-17 13:06:19 +0100 | <dminuoso> | So even if I handrolled it, I would do the same. |
2021-11-17 13:06:42 +0100 | <dminuoso> | newtype LoggingT m a = LoggingT { runLoggingT :: (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) -> m a } |
2021-11-17 13:06:47 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:93ca:4590:d6e0:969f) |
2021-11-17 13:07:22 +0100 | <dminuoso> | That way your code that does the logging is completely decoupled from how logging occurs |
2021-11-17 13:08:04 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 13:09:21 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:11:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-17 13:12:15 +0100 | cv | (~cv@103.142.31.135) (Quit: Client closed) |
2021-11-17 13:12:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 13:14:18 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 13:15:07 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:17:21 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-11-17 13:17:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-11-17 13:18:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 13:18:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 13:19:46 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 13:20:55 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:23:22 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-11-17 13:23:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-17 13:23:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 13:23:54 +0100 | bliminse_ | (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) (Quit: leaving) |
2021-11-17 13:23:55 +0100 | mark___ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-11-17 13:23:56 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-11-17 13:24:47 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 250 seconds) |
2021-11-17 13:25:32 +0100 | stef204 | (~stef204@user/stef204) |
2021-11-17 13:25:39 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 13:26:50 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:27:23 +0100 | jespada | (~jespada@252-155-231-201.fibertel.com.ar) |
2021-11-17 13:31:22 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 13:32:28 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:34:09 +0100 | bliminse | (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) |
2021-11-17 13:37:32 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 13:37:54 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 13:38:17 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:40:37 +0100 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-11-17 13:42:38 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 256 seconds) |
2021-11-17 13:42:58 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 13:44:03 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:46:02 +0100 | mark___ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-17 13:46:32 +0100 | fef | (~thedawn@user/thedawn) (Remote host closed the connection) |
2021-11-17 13:47:05 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-17 13:48:37 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 13:49:49 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:52:01 +0100 | pfurla_ | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 13:52:46 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) |
2021-11-17 13:53:50 +0100 | Charles_Attends | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3) |
2021-11-17 13:54:14 +0100 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2021-11-17 13:54:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 13:55:03 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 13:55:37 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 13:56:23 +0100 | mmhat | (~mmh@55d47379.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-11-17 13:58:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-11-17 14:00:12 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 14:01:23 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 14:01:27 +0100 | fef | (~thedawn@user/thedawn) |
2021-11-17 14:04:26 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-11-17 14:05:12 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
2021-11-17 14:05:57 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 14:07:10 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 14:09:41 +0100 | miled | (~miled@37.211.46.14) |
2021-11-17 14:09:51 +0100 | rkrishnan | (~user@122.167.19.65) (Ping timeout: 250 seconds) |
2021-11-17 14:10:10 +0100 | <miled> | Hey guys |
2021-11-17 14:10:32 +0100 | <miled> | could anyone help me in the Test section |
2021-11-17 14:10:51 +0100 | <miled> | Uploaded file: https://uploads.kiwiirc.com/files/31e65220f6e6fa9172af43d86c4a8d60/pasted.txt |
2021-11-17 14:11:36 +0100 | <maerwald> | what is the question |
2021-11-17 14:12:06 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 14:12:16 +0100 | <miled> | I want to test the function myOr using generated inputs tests |
2021-11-17 14:12:22 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 14:13:16 +0100 | <maerwald> | miled: https://www.stackbuilders.com/news/a-quickcheck-tutorial-generators |
2021-11-17 14:14:36 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) |
2021-11-17 14:16:13 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 14:17:49 +0100 | <kuribas> | miled: your myOr function is not total. |
2021-11-17 14:17:56 +0100 | <kuribas> | miled: try "myOr []" |
2021-11-17 14:18:33 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 14:19:14 +0100 | <kuribas> | miled: also: 'x == True' == x |
2021-11-17 14:19:26 +0100 | <kuribas> | > let x = True in x == True |
2021-11-17 14:19:28 +0100 | <lambdabot> | True |
2021-11-17 14:19:31 +0100 | <kuribas> | > let x = True in x |
2021-11-17 14:19:33 +0100 | <lambdabot> | True |
2021-11-17 14:20:15 +0100 | <xddq[m]> | Uhmm.. I want to convert a list of strings like ```["hello","world"]``` to [hello, world] |
2021-11-17 14:20:15 +0100 | <xddq[m]> | Is there some simple function for this? |
2021-11-17 14:20:15 +0100 | <xddq[m]> | ```show ["hello","world"]``` results in ```"[\"hello\",\"world\"]"``` which results in ```["hello","world"]``` when calling print on that string. |
2021-11-17 14:20:42 +0100 | <dminuoso> | xddq[m]: readMaybe gives you roundtripping via show |
2021-11-17 14:20:47 +0100 | <dminuoso> | At least if the instances behave correctly |
2021-11-17 14:20:54 +0100 | Feuermagier_ | (~Feuermagi@2a02:2488:4211:3400:b6fd:ec18:acf6:f1a8) (Quit: Leaving) |
2021-11-17 14:20:58 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-11-17 14:21:30 +0100 | <dminuoso> | % import Text.Read (readMaybe) |
2021-11-17 14:21:30 +0100 | <yahb> | dminuoso: |
2021-11-17 14:21:42 +0100 | <dminuoso> | % let x :: Maybe [String]; x = readMaybe (show ["hello", "world"]) in x |
2021-11-17 14:21:42 +0100 | <yahb> | dminuoso: Just ["hello","world"] |
2021-11-17 14:22:21 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-11-17 14:22:28 +0100 | nschoe | (~quassel@178.251.84.79) |
2021-11-17 14:23:34 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 14:24:41 +0100 | <xddq[m]> | dminuoso: Thank you for the answer. But the result is ["hello","world"] and I want it to become [hello, world] |
2021-11-17 14:25:05 +0100 | <boxscape_> | you want to print [hello, world] to the terminal? |
2021-11-17 14:25:23 +0100 | <xddq[m]> | yeah, to a file |
2021-11-17 14:25:51 +0100 | <kuribas> | > show ["hello", "world"] |
2021-11-17 14:25:52 +0100 | <lambdabot> | "[\"hello\",\"world\"]" |
2021-11-17 14:26:18 +0100 | <dminuoso> | xddq[m]: Ideally just write this manually. |
2021-11-17 14:26:19 +0100 | <kuribas> | xddq[m]: you want to remove the quotes? |
2021-11-17 14:26:21 +0100 | <boxscape_> | > putStrLn $ "[" <> intercalate "," ["hello", "world"] <> "]" |
2021-11-17 14:26:22 +0100 | <lambdabot> | <IO ()> |
2021-11-17 14:26:25 +0100 | <boxscape_> | % putStrLn $ "[" <> intercalate "," ["hello", "world"] <> "]" |
2021-11-17 14:26:25 +0100 | <yahb> | boxscape_: [hello,world] |
2021-11-17 14:26:34 +0100 | <dminuoso> | Neither `show` nor `read` are good mechanisms for actual serialization or deserializatoin |
2021-11-17 14:26:41 +0100 | <dminuoso> | They are developer shortcuts for quick introspection at best |
2021-11-17 14:26:49 +0100 | <kuribas> | > filter (/= '"') $ show ["hello", "world"] |
2021-11-17 14:26:50 +0100 | <lambdabot> | "[hello,world]" |
2021-11-17 14:27:00 +0100 | <dminuoso> | kuribas: Yes, and if you have "hello\""? |
2021-11-17 14:27:12 +0100 | <kuribas> | > filter (/= '"') $ show ["hello\"", "world"] |
2021-11-17 14:27:13 +0100 | <lambdabot> | "[hello\\,world]" |
2021-11-17 14:27:29 +0100 | <boxscape_> | % putStrLn $ "[" <> intercalate "," ["hello\"", "world"] <> "]" |
2021-11-17 14:27:29 +0100 | <yahb> | boxscape_: [hello",world] |
2021-11-17 14:28:42 +0100 | <dminuoso> | The solution is to simply do: let xs = ["hello", "world"] in "[" <> intercalate ", " <> "]" |
2021-11-17 14:28:48 +0100 | <xddq[m]> | boxscape_: that's perfect, thank you! |
2021-11-17 14:28:50 +0100 | <dminuoso> | Yup, what boxscape_ wrote |
2021-11-17 14:29:05 +0100 | cv | (~cv@103.142.31.135) |
2021-11-17 14:29:24 +0100 | <dminuoso> | xddq[m]: Also, if you want to take full control of output, consider a prettyprinter library like `prettyprinter` or `pretty` |
2021-11-17 14:29:33 +0100 | jmorris | (uid433911@hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-17 14:29:41 +0100 | <dminuoso> | Very useful if you want to do some nice human readable formatting |
2021-11-17 14:29:58 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 14:30:01 +0100 | <dminuoso> | But perfectly useable for machine readable content as well |
2021-11-17 14:30:06 +0100 | <dminuoso> | We generate config files with it :) |
2021-11-17 14:31:10 +0100 | <dminuoso> | (Altenative f, Foldable t) => t (f a) -> f a |
2021-11-17 14:31:16 +0100 | <dminuoso> | Does this exist in base? |
2021-11-17 14:31:53 +0100 | miled | (~miled@37.211.46.14) (Quit: Connection closed) |
2021-11-17 14:32:09 +0100 | <opqdonut> | :t Control.Applicative.Alternative.asum |
2021-11-17 14:32:09 +0100 | <lambdabot> | error: |
2021-11-17 14:32:10 +0100 | <lambdabot> | Not in scope: ‘Control.Applicative.Alternative.asum’ |
2021-11-17 14:32:10 +0100 | <lambdabot> | No module named ‘Control.Applicative.Alternative’ is imported. |
2021-11-17 14:32:20 +0100 | <opqdonut> | well anyway, asum :: (Foldable t, Alternative f) => t (f a) -> f a |
2021-11-17 14:32:42 +0100 | <opqdonut> | oh huh that's from the monadplus package, I thought I was in base |
2021-11-17 14:32:49 +0100 | <kuribas> | @hoogle asum |
2021-11-17 14:32:49 +0100 | <lambdabot> | Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a |
2021-11-17 14:32:49 +0100 | <lambdabot> | Data.Conduit.Combinators asum :: (Monad m, Alternative f) => ConduitT (f a) o m (f a) |
2021-11-17 14:32:49 +0100 | <lambdabot> | Protolude asum :: (Foldable t, Alternative f) => t (f a) -> f a |
2021-11-17 14:32:53 +0100 | <boxscape_> | % newtype RawString = RawString {getRawString :: String} |
2021-11-17 14:32:53 +0100 | <yahb> | boxscape_: |
2021-11-17 14:32:55 +0100 | <dminuoso> | opqdonut: Ah! Hoogle apparently failed when you switch those constraints around |
2021-11-17 14:32:56 +0100 | <boxscape_> | % instance Show RawString where show = getRawString |
2021-11-17 14:32:56 +0100 | <yahb> | boxscape_: |
2021-11-17 14:32:59 +0100 | <kuribas> | Pretty sure that's in base |
2021-11-17 14:33:00 +0100 | <dminuoso> | Thanks. |
2021-11-17 14:33:03 +0100 | <boxscape_> | % print . map RawString $ ["hello", "world"] |
2021-11-17 14:33:03 +0100 | <yahb> | boxscape_: [hello,world] |
2021-11-17 14:33:15 +0100 | <dminuoso> | opqdonut: And it's in base, its just not imported in yahb |
2021-11-17 14:33:19 +0100 | <dminuoso> | Anyway. Thanks! |
2021-11-17 14:33:30 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
2021-11-17 14:33:31 +0100 | <opqdonut> | yeah so it seems |
2021-11-17 14:33:41 +0100 | <kuribas> | https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Foldable.html#v:asum |
2021-11-17 14:33:49 +0100 | <boxscape_> | (violating the unspoken Show law I suppose) |
2021-11-17 14:33:54 +0100 | <dminuoso> | Oh the module specification is wrong |
2021-11-17 14:33:57 +0100 | <kuribas> | :t Data.Foldable.asum |
2021-11-17 14:33:58 +0100 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
2021-11-17 14:33:58 +0100 | <dminuoso> | its either Data.Foldable or Control.Applicative |
2021-11-17 14:34:42 +0100 | <opqdonut> | I ended up here from google: https://hackage.haskell.org/package/monadplus-1.4.2/docs/Control-Applicative-Alternative.html |
2021-11-17 14:34:46 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 14:34:48 +0100 | <opqdonut> | trying to land in the control.applicative docs |
2021-11-17 14:35:23 +0100 | <xddq[m]> | Why did you use "<>" instead of "++" for ```"[" <> intercalate ", " ["hello","world"] <> "]"``` ? Do you always use <> on lists? Is there a difference? |
2021-11-17 14:35:35 +0100 | <boxscape_> | xddq[m] you can use either, <> is more general |
2021-11-17 14:36:05 +0100 | <boxscape_> | google can be pretty terrible for searching hackage, I've been confused at times as to why the API is very different from what I expect, before realizing it took me to a ten-year old version of the library |
2021-11-17 14:36:06 +0100 | <dminuoso> | <> being more general means less refactoring if you swap things out later |
2021-11-17 14:36:22 +0100 | <dminuoso> | xddq[m]: Consider, if you later used prettyprinter, <> still remains the operator to concatenate two documents |
2021-11-17 14:36:27 +0100 | <dminuoso> | But if you had used ++, you'd have to replace that |
2021-11-17 14:36:47 +0100 | <xddq[m]> | interesting, thanks! |
2021-11-17 14:36:56 +0100 | <dminuoso> | Added benefit of ++ is, if you're using variables, it's more obvious what the arguments types are |
2021-11-17 14:36:59 +0100 | <kuribas> | boxscape_: doesn't ++ have better optimization? |
2021-11-17 14:37:04 +0100 | <kuribas> | with rewrite rules? |
2021-11-17 14:37:53 +0100 | <dminuoso> | If you're relying on rewrite rules on String for acceptable performance, you probably shouldn't be using String in the firstp lace |
2021-11-17 14:38:08 +0100 | <dminuoso> | Or lists in general |
2021-11-17 14:38:26 +0100 | <dminuoso> | So Ill file this under premature optimization |
2021-11-17 14:38:33 +0100 | <boxscape_> | kuribas (<>) is defined as (++) and is being inlined, so I would expect the performance to be the same as long as it's clear that it's being instantiated to (++) at the call site, but I'm not super familiar with how RULES work so, idk |
2021-11-17 14:38:46 +0100 | <dminuoso> | boxscape_: The inlining happens in the simplifier |
2021-11-17 14:38:49 +0100 | <dminuoso> | Where do RULES fire? |
2021-11-17 14:38:56 +0100 | <boxscape_> | I don't know |
2021-11-17 14:39:13 +0100 | <dminuoso> | Ah, rules are applied in the simplifier |
2021-11-17 14:39:29 +0100 | <boxscape_> | so should be equivalent then? |
2021-11-17 14:39:35 +0100 | <dminuoso> | Yes? No? |
2021-11-17 14:39:39 +0100 | <boxscape_> | ok :) |
2021-11-17 14:39:39 +0100 | <yushyin> | Maybe? |
2021-11-17 14:39:50 +0100 | <dminuoso> | The interaction between simplifier steps are incredibly subtle and they all influence each other |
2021-11-17 14:41:55 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 14:41:59 +0100 | <dminuoso> | Can GHC inline recursive functions to a degree? |
2021-11-17 14:42:33 +0100 | <dminuoso> | That is, would it ever turn `"a" ++ "bc" into "abc"? |
2021-11-17 14:43:02 +0100 | dminuoso | remembers GHC not inlining recursive things as a fundamental rule, but is not quite sure whether he misremembers |
2021-11-17 14:44:07 +0100 | <maerwald> | dminuoso: top-level recursion yes |
2021-11-17 14:44:29 +0100 | <geekosaur> | it doesn't inline when recursion is directly involved, and there's no direct recursion in "a" ++ "bc". but it also doesn't do constant folding |
2021-11-17 14:44:47 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 264 seconds) |
2021-11-17 14:44:48 +0100 | <maerwald> | e.g. https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.Base.html#map |
2021-11-17 14:44:49 +0100 | <boxscape_> | just tested it, the Core only contains "abc" |
2021-11-17 14:44:49 +0100 | <dminuoso> | geekosaur: The definition of (++) is recursive |
2021-11-17 14:44:51 +0100 | <maerwald> | doesn't inline |
2021-11-17 14:45:00 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
2021-11-17 14:45:03 +0100 | <maerwald> | but there are rewrite rules |
2021-11-17 14:45:15 +0100 | <boxscape_> | (in fact it only contains "abc"#) |
2021-11-17 14:45:19 +0100 | <geekosaur> | right, but the definition doesn't matter here, the rewrite rule would be on ++ not its definition |
2021-11-17 14:45:33 +0100 | <geekosaur> | huh, so it does constant fold |
2021-11-17 14:45:38 +0100 | <dminuoso> | "++" [~1] forall xs ys. xs ++ ys = augment (\c n -> foldr c n xs) ys |
2021-11-17 14:45:40 +0100 | <dminuoso> | Ah |
2021-11-17 14:46:14 +0100 | michalz | (~michalz@185.246.204.121) |
2021-11-17 14:46:46 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 14:47:25 +0100 | <cv> | How do I convert base64 encoded string to png |
2021-11-17 14:47:35 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-17 14:49:07 +0100 | <maerwald> | what did you encode? :D |
2021-11-17 14:49:41 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-11-17 14:49:59 +0100 | <boxscape_> | also tested this: the core representation of two functions is identical if you use (<>) for one and (+) for the other. ( kuribas , dminuoso ) |
2021-11-17 14:50:45 +0100 | <boxscape_> | (...and when (<>) is instantiated to [], of course) |
2021-11-17 14:51:24 +0100 | <dminuoso> | boxscape_: Perhaps, I still wouldn't rely on it. |
2021-11-17 14:51:30 +0100 | <boxscape_> | that's fair |
2021-11-17 14:51:46 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) (Ping timeout: 256 seconds) |
2021-11-17 14:51:56 +0100 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-17 14:52:03 +0100 | drdo1 | (~drdo@roach0.drdo.eu) |
2021-11-17 14:52:05 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 265 seconds) |
2021-11-17 14:52:08 +0100 | <dminuoso> | Use what is more expressive/maintainable, and worry about performance later iff profiling determines it to be a hot spot |
2021-11-17 14:52:08 +0100 | drdo | (~drdo@roach0.drdo.eu) (Read error: Connection reset by peer) |
2021-11-17 14:52:09 +0100 | drdo1 | drdo |
2021-11-17 14:53:01 +0100 | jackhill | (~jackhill@kalessin.dragonsnail.net) (Ping timeout: 245 seconds) |
2021-11-17 14:53:15 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 14:53:57 +0100 | jackhill | (~jackhill@kalessin.dragonsnail.net) |
2021-11-17 14:54:15 +0100 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) |
2021-11-17 14:54:37 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) |
2021-11-17 14:55:23 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2021-11-17 14:55:49 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
2021-11-17 14:56:45 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2021-11-17 14:57:16 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2021-11-17 14:57:37 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2021-11-17 14:57:53 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 265 seconds) |
2021-11-17 14:57:57 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 14:59:20 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 15:00:18 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 265 seconds) |
2021-11-17 15:03:26 +0100 | ystael | (~ystael@user/ystael) |
2021-11-17 15:04:01 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 250 seconds) |
2021-11-17 15:04:12 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-17 15:04:16 +0100 | <boxscape_> | % unpackCString# "foo"# -- what exactly happens here? Does GHC place a C String "foo\0" at address some address aliased to "foo"# when I use "foo"#? Or is the C String created by the call to unpackCString? |
2021-11-17 15:04:16 +0100 | <yahb> | boxscape_: "foo" |
2021-11-17 15:05:03 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 15:05:08 +0100 | <boxscape_> | in other words, if I use "foo"# for something other than unpackCString#, is the C String not created? |
2021-11-17 15:05:41 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-11-17 15:07:17 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-11-17 15:07:25 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 15:09:35 +0100 | <geekosaur> | my knowledge is limited here but I gather "foo"# is a packed utf8 string with a nul at the end |
2021-11-17 15:09:39 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 15:09:53 +0100 | <geekosaur> | so it just happens to work with unpackCString# as long as it doesn't have an embedded NUL |
2021-11-17 15:09:56 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
2021-11-17 15:10:06 +0100 | <boxscape_> | hm I see |
2021-11-17 15:10:18 +0100 | jkaye | (~jkaye@2601:281:8300:7530:3845:93d:d6fd:67fb) |
2021-11-17 15:10:18 +0100 | <geekosaur> | I don't know how the unboxed string rep works if there's a NUL in the middle; it may be encoded |
2021-11-17 15:10:25 +0100 | <boxscape_> | I guess what's confusing me is that the type of "foo"# is Addr#, which doesn't sound very much like it's String-like |
2021-11-17 15:10:51 +0100 | <geekosaur> | I do know for certain that ghc does not store string literals in their normal boxed form, but in a packed representation |
2021-11-17 15:10:51 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 15:10:59 +0100 | <boxscape_> | ok |
2021-11-17 15:11:18 +0100 | <geekosaur> | which is why IsString and friends were so easy to add |
2021-11-17 15:11:39 +0100 | <boxscape_> | % unpackCString# "fo\0o"# -- geekosaur there you go |
2021-11-17 15:11:39 +0100 | <yahb> | boxscape_: "fo" |
2021-11-17 15:12:03 +0100 | <geekosaur> | right, as I said, it just happens to work as long as there's no embedded NUL |
2021-11-17 15:12:04 +0100 | <maerwald> | geekosaur: IsString instance for String isn't even valid Haskell2010 :D |
2021-11-17 15:12:08 +0100 | <boxscape_> | right, ok |
2021-11-17 15:12:11 +0100 | <opqdonut> | I love how simple the source of unpackCString# is |
2021-11-17 15:12:13 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-11-17 15:12:27 +0100 | <geekosaur> | but "fo\0"# used as a packed string literal doesn't choke on the \0 |
2021-11-17 15:12:28 +0100 | <opqdonut> | https://hackage.haskell.org/package/ghc-prim-0.8.0/docs/src/GHC.CString.html#unpackCString%23 |
2021-11-17 15:12:46 +0100 | <opqdonut> | just straightforward recursive list generation, not even using build |
2021-11-17 15:12:49 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) |
2021-11-17 15:14:49 +0100 | <boxscape_> | Okay so if I'm understanding correctly, "foo"# really is morally a String literal, not an address, and the reason its type is Addr# is just that the address is how you access the resulting String |
2021-11-17 15:15:34 +0100 | <geekosaur> | the only place these literals live is in the initialized data segment of the executable, not the heap, so Addr# is the only way to represent their address |
2021-11-17 15:15:34 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 15:15:49 +0100 | <boxscape_> | ok |
2021-11-17 15:16:12 +0100 | <geekosaur> | (normally) |
2021-11-17 15:16:36 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 15:16:42 +0100 | <boxscape_> | (I guess ideally I'd like to see them be of type `newtype String# = String# Addr#` or something) |
2021-11-17 15:17:49 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 15:18:00 +0100 | <geekosaur> | I don't think newtypes exist at the level those strings are normally found (Core) |
2021-11-17 15:18:03 +0100 | <hippoid> | is reading a csv from stdin and then creating a data type considered parsing? |
2021-11-17 15:18:15 +0100 | <geekosaur> | it's a form of parsing, yes |
2021-11-17 15:18:24 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 15:18:25 +0100 | <boxscape_> | geekosaur right but I can create them in surface haskell as well. I guess it's not a common thing though |
2021-11-17 15:18:33 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 15:18:47 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 15:18:47 +0100 | <geekosaur> | that said, "csv" is really poorly defined and goes all over the place, you are better off using a library like cassava instead of trying to do it yourself |
2021-11-17 15:18:55 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 15:19:43 +0100 | <hippoid> | ok thanks... going to check out cassava |
2021-11-17 15:19:50 +0100 | <geekosaur> | boxscape_, right, but then we don't have newtype Int# either, the type of 3# is Int# which is primitive |
2021-11-17 15:20:07 +0100 | <geekosaur> | because when these normally come up you're down in primitive-land |
2021-11-17 15:20:21 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 15:20:30 +0100 | <boxscape_> | yes, but the type there makes much more sense to me - 3# is some sort of integer-like type. Whereas "foo"# is a string literal, not an address |
2021-11-17 15:20:39 +0100 | <boxscape_> | s/type/value |
2021-11-17 15:21:14 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 15:22:40 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 15:22:48 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 15:22:48 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 15:23:00 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 15:23:46 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-11-17 15:23:59 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 15:24:14 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) |
2021-11-17 15:24:20 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-17 15:24:20 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-17 15:24:20 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-17 15:27:11 +0100 | johnny_sitar | (~artur@078088015209.bialystok.vectranet.pl) (Client Quit) |
2021-11-17 15:27:52 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 15:29:36 +0100 | cv | (~cv@103.142.31.135) (Quit: Client closed) |
2021-11-17 15:32:54 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
2021-11-17 15:33:11 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-17 15:34:31 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 15:39:21 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-17 15:42:11 +0100 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
2021-11-17 15:44:46 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-11-17 15:47:10 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 15:48:29 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2021-11-17 15:48:29 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2021-11-17 15:48:29 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) |
2021-11-17 15:49:32 +0100 | DNH | (~DNH@2a02:8109:b740:2c4:5132:6531:a874:2df6) |
2021-11-17 15:50:54 +0100 | max22- | (~maxime@2a01cb0883359800b81dd38911f0cee9.ipv6.abo.wanadoo.fr) |
2021-11-17 15:53:32 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-17 15:54:19 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-11-17 15:54:23 +0100 | mark___ | (~a@p200300ef973db186502293e1a26d2ca1.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-11-17 15:54:45 +0100 | mark___ | (~a@p200300ef973db1f2502293e1a26d2ca1.dip0.t-ipconnect.de) |
2021-11-17 16:00:30 +0100 | <merijn> | boxscape_: String literals are already more primitive |
2021-11-17 16:00:43 +0100 | <boxscape_> | more primitive than what? |
2021-11-17 16:01:02 +0100 | <merijn> | boxscape_: String literals are stored as specific byte arrays in the binary that get converted to String lazily |
2021-11-17 16:01:20 +0100 | <merijn> | boxscape_: Text uses this to have a more efficient conversion for String literals when using OverloadedStrings |
2021-11-17 16:01:30 +0100 | <boxscape_> | okay |
2021-11-17 16:02:26 +0100 | <merijn> | (basically it has a rewrite rule that converts "internalToString . stringToText" with "internalToText" |
2021-11-17 16:03:35 +0100 | <boxscape_> | I see, interesting |
2021-11-17 16:05:08 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Excess Flood) |
2021-11-17 16:05:28 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-11-17 16:05:45 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2021-11-17 16:05:45 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2021-11-17 16:05:45 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) |
2021-11-17 16:13:17 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 265 seconds) |
2021-11-17 16:13:51 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 16:18:03 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 16:18:23 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Ping timeout: 264 seconds) |
2021-11-17 16:22:39 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2021-11-17 16:24:08 +0100 | johnjay | (~pi@192.142.100.50) (Ping timeout: 256 seconds) |
2021-11-17 16:24:50 +0100 | tengu1 | (~tengu1@cpe-70-121-244-14.neb.res.rr.com) (Quit: Client closed) |
2021-11-17 16:26:11 +0100 | johnjay | (~pi@192.142.100.50) |
2021-11-17 16:41:33 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-11-17 16:48:41 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) (Quit: Client closed) |
2021-11-17 16:49:21 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) |
2021-11-17 16:53:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-17 16:56:16 +0100 | boxscape_ | (~boxscape_@134.171.69.87) (Quit: Connection closed) |
2021-11-17 17:00:08 +0100 | codygman[m] | (~codygman@2001:470:69fc:105::b4ba) (Quit: You have been kicked for being idle) |
2021-11-17 17:02:40 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-17 17:04:08 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 17:06:00 +0100 | jespada | (~jespada@252-155-231-201.fibertel.com.ar) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-11-17 17:08:54 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-17 17:10:30 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 17:11:10 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-17 17:11:15 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:93ca:4590:d6e0:969f) (Quit: WeeChat 2.8) |
2021-11-17 17:17:24 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2021-11-17 17:17:46 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-17 17:17:46 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-17 17:17:46 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-17 17:21:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 17:23:04 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-17 17:23:58 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 17:24:05 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-17 17:25:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-17 17:26:24 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-11-17 17:28:50 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 17:29:34 +0100 | zmt00 | (~zmt00@user/zmt00) |
2021-11-17 17:33:03 +0100 | EvanR | (~evan@user/evanr) |
2021-11-17 17:35:46 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-11-17 17:39:39 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 17:42:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Remote host closed the connection) |
2021-11-17 17:43:12 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-17 17:44:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-11-17 17:44:05 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-11-17 17:44:17 +0100 | nschoe | (~quassel@178.251.84.79) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-11-17 17:44:56 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-17 17:53:52 +0100 | EvanR | (~evan@user/evanr) (Quit: Leaving) |
2021-11-17 17:54:18 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 265 seconds) |
2021-11-17 17:56:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 18:01:05 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-11-17 18:02:25 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-11-17 18:03:13 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 18:05:36 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 18:05:53 +0100 | moet | (~moet@mobile-166-171-251-63.mycingular.net) |
2021-11-17 18:07:31 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-17 18:08:54 +0100 | img | (~img@user/img) |
2021-11-17 18:09:03 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) |
2021-11-17 18:09:13 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 18:10:15 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 265 seconds) |
2021-11-17 18:12:40 +0100 | tired- | (~tired@user/tired) (Quit: /) |
2021-11-17 18:13:16 +0100 | tired | (~tired@user/tired) |
2021-11-17 18:14:04 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 18:15:04 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 18:17:09 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-11-17 18:19:53 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 18:20:56 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 18:22:49 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 265 seconds) |
2021-11-17 18:24:17 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 18:25:58 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 18:27:22 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (Excess Flood) |
2021-11-17 18:27:29 +0100 | mbuf | (~Shakthi@122.162.1.56) (Quit: Leaving) |
2021-11-17 18:27:48 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2021-11-17 18:27:48 +0100 | dibblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2021-11-17 18:27:48 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) |
2021-11-17 18:27:54 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2021-11-17 18:28:36 +0100 | theproffesor | (~theproffe@user/theproffesor) (Quit: Leaving) |
2021-11-17 18:29:04 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-11-17 18:30:07 +0100 | <oats> | does `base` not contain any functions for working with directories? |
2021-11-17 18:30:24 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 18:31:02 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 265 seconds) |
2021-11-17 18:31:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-11-17 18:32:15 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 18:32:45 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-11-17 18:35:20 +0100 | EvanR | (~evan@user/evanr) |
2021-11-17 18:37:35 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-17 18:38:07 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-11-17 18:40:00 +0100 | <maerwald> | no |
2021-11-17 18:40:57 +0100 | <maerwald> | directories make for a poor cross-platform abstraction, so either you use unix/Win32 or you hope `directory` does what you think it does |
2021-11-17 18:42:38 +0100 | img | (~img@user/img) (Ping timeout: 265 seconds) |
2021-11-17 18:42:56 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 18:44:16 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) |
2021-11-17 18:44:33 +0100 | <oats> | gotcha |
2021-11-17 18:44:40 +0100 | whatsupdoc | (uid509081@hampstead.irccloud.com) |
2021-11-17 18:45:39 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 18:46:43 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.3) |
2021-11-17 18:47:26 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Ping timeout: 268 seconds) |
2021-11-17 18:48:38 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 18:50:51 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 265 seconds) |
2021-11-17 18:52:18 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 265 seconds) |
2021-11-17 18:56:27 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 18:57:23 +0100 | jkaye | (~jkaye@2601:281:8300:7530:3845:93d:d6fd:67fb) (Ping timeout: 264 seconds) |
2021-11-17 18:57:43 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 18:57:48 +0100 | <EvanR> | this is encouraging... trying to update my old ghc by doing ghcup, curl complains about certs, and the link for more info is at haxx.se which is a redirect xD |
2021-11-17 18:57:52 +0100 | <EvanR> | https://i.imgur.com/h6paSpY.png |
2021-11-17 19:00:29 +0100 | <jneira[m]> | you always can add `-k` but the script does subsequent curl calls to haskell.org andthey will fail as well |
2021-11-17 19:01:37 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) |
2021-11-17 19:02:23 +0100 | <EvanR> | tried to add latest glfw-b as a dep, but base is too old gotta update ghc. curl is too old gotta update OSX I guess. OSX too old gotta buy a new Mac xD |
2021-11-17 19:02:46 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-11-17 19:02:50 +0100 | <jneira[m]> | if i browse the url the certificate seems to be ok, with expired date `Thu, 27 Jan 2022 06:48:31 GMT` |
2021-11-17 19:03:05 +0100 | <monochrom> | I cannot reproduce the certificate error. |
2021-11-17 19:03:11 +0100 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-11-17 19:03:32 +0100 | <monochrom> | One of us has a compromised internet connection. |
2021-11-17 19:03:57 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 19:04:14 +0100 | <Successus> | Hi, does ghc 8.8.4 use editline? I was trying to set up some keybindings in ~/.editrc but none of them work in ghci. For example I tried bind ^R em-next-word. Could you please tell me if there is some error, or does ghc not read that file? |
2021-11-17 19:05:03 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
2021-11-17 19:05:31 +0100 | <EvanR> | is haxx.se a normal thing to see in a curl error message |
2021-11-17 19:05:32 +0100 | <monochrom> | It uses haskeline. I forgot where is the doc for the config. |
2021-11-17 19:05:38 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 256 seconds) |
2021-11-17 19:05:56 +0100 | <monochrom> | curl.haxx.se is curl's website. |
2021-11-17 19:05:57 +0100 | <awpr> | I do remember haxx.se being the website for cURL |
2021-11-17 19:06:29 +0100 | <EvanR> | ok good |
2021-11-17 19:06:30 +0100 | <Successus> | yes it is the website of curl |
2021-11-17 19:06:54 +0100 | <EvanR> | it redirects to curl.se which is saner looking |
2021-11-17 19:06:57 +0100 | <Successus> | alright so I will find documentation for haskeline. Just to confirm it uses haskeline by default, no need to install it? |
2021-11-17 19:07:03 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 19:07:13 +0100 | <awpr> | brb checking if backdoor.nsa.gov is available to register for a new crypto library |
2021-11-17 19:07:28 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 19:07:46 +0100 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 265 seconds) |
2021-11-17 19:07:59 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-11-17 19:08:05 +0100 | <monochrom> | https://github.com/judah/haskeline has links to how to config. |
2021-11-17 19:08:26 +0100 | <Successus> | Alright, thank you very much! |
2021-11-17 19:09:00 +0100 | <EvanR> | I wonder if this has to do with lets encrypt |
2021-11-17 19:10:15 +0100 | quarkyalice | (~quarkyali@user/quarkyalice) |
2021-11-17 19:10:20 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 19:11:43 +0100 | <monochrom> | Ah, missed one question. Yes, ghci already uses haskeline out of the box, nothing to install. |
2021-11-17 19:11:52 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 19:11:56 +0100 | <gentauro> | 19:05 < monochrom> curl.haxx.se is curl's website |
2021-11-17 19:12:03 +0100 | jbox | (~jbox@user/jbox) |
2021-11-17 19:12:04 +0100 | <gentauro> | and where you can get mozillas CA's ;0 |
2021-11-17 19:12:06 +0100 | <gentauro> | ;) |
2021-11-17 19:12:30 +0100 | <monochrom> | I don't understand the joke. |
2021-11-17 19:12:50 +0100 | <gentauro> | `https://curl.haxx.se/ca/cacert.pem` |
2021-11-17 19:13:06 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 19:13:11 +0100 | <Successus> | great to hear, thank you! |
2021-11-17 19:13:19 +0100 | <gentauro> | `curl \ --remote-name \ --time-cond \ cacert.pem \ https://curl.haxx.se/ca/cacert.pem` |
2021-11-17 19:13:22 +0100 | <gentauro> | :) |
2021-11-17 19:13:45 +0100 | <gentauro> | I use those when I code my `http-clients` from scratch in Haskell (when I need support for TLS) |
2021-11-17 19:14:03 +0100 | ephemient | (uid407513@lymington.irccloud.com) (Ping timeout: 265 seconds) |
2021-11-17 19:14:11 +0100 | ephemient | (uid407513@lymington.irccloud.com) |
2021-11-17 19:14:23 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 19:14:32 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 265 seconds) |
2021-11-17 19:14:41 +0100 | jkaye | (~jkaye@2601:281:8300:7530:75fb:eacf:8ea0:5f8) |
2021-11-17 19:14:44 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 19:15:23 +0100 | <monochrom> | OK I see, tangential. |
2021-11-17 19:16:25 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 19:17:47 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-17 19:18:45 +0100 | <maerwald> | http-clients? |
2021-11-17 19:18:52 +0100 | <Successus> | I found this if someone is interested http://trac.haskell.org/haskeline/wiki/UserPrefs |
2021-11-17 19:19:00 +0100 | <Successus> | it's old link |
2021-11-17 19:19:11 +0100 | <geekosaur> | isn't trac long gone? |
2021-11-17 19:19:19 +0100 | rusty | (~rustyboy@82.77.237.221) |
2021-11-17 19:19:22 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 265 seconds) |
2021-11-17 19:22:07 +0100 | dhruvasagar | (~dhruvasag@49.207.218.36) (Quit: WeeChat 3.3) |
2021-11-17 19:22:19 +0100 | <maerwald> | yeah, that link isn't useful |
2021-11-17 19:22:35 +0100 | ubert | (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
2021-11-17 19:24:30 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 19:26:03 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) |
2021-11-17 19:27:40 +0100 | <Successus> | https://github.com/judah/haskeline/wiki/UserPreferences https://github.com/judah/haskeline/wiki/CustomKeyBindings https://blog.rcook.org/blog/2018/ghci-custom-key-bindings/ |
2021-11-17 19:29:22 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-17 19:29:56 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 19:30:12 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Remote host closed the connection) |
2021-11-17 19:30:16 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 19:32:08 +0100 | jespada | (~jespada@252-155-231-201.fibertel.com.ar) |
2021-11-17 19:33:21 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-17 19:35:53 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) (Quit: Client closed) |
2021-11-17 19:35:58 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 19:36:36 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) |
2021-11-17 19:40:55 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 19:42:05 +0100 | deadmarshal | (~deadmarsh@95.38.119.2) (Ping timeout: 265 seconds) |
2021-11-17 19:42:43 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection) |
2021-11-17 19:43:16 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 19:44:02 +0100 | epolanski | (uid312403@helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-17 19:46:01 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 268 seconds) |
2021-11-17 19:47:13 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 19:52:08 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-17 19:52:17 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Remote host closed the connection) |
2021-11-17 19:52:29 +0100 | alzgh | (~alzgh@user/alzgh) |
2021-11-17 19:52:38 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 19:53:20 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-11-17 20:03:11 +0100 | tired | (~tired@user/tired) (Quit: /) |
2021-11-17 20:03:26 +0100 | quarkyalice | (~quarkyali@user/quarkyalice) (Ping timeout: 256 seconds) |
2021-11-17 20:03:50 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-11-17 20:03:53 +0100 | <energizer> | in pattern matching, i could say `| x < 5 = 5 | x < 10 = 10 | otherwise = 99` or `| -inf < x < 5 = 5 | 5 <= x < 10 = 10 | otherwise = 99`. does anybody do the latter, or is that considered overly verbose bad style? |
2021-11-17 20:04:37 +0100 | <monochrom> | The latter doesn't compile in the first place. |
2021-11-17 20:04:43 +0100 | tired | (~tired@user/tired) |
2021-11-17 20:05:11 +0100 | <energizer> | you know what i mean tho |
2021-11-17 20:05:17 +0100 | max22- | (~maxime@2a01cb0883359800b81dd38911f0cee9.ipv6.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
2021-11-17 20:05:33 +0100 | <monochrom> | Yes, I know that you write what you mean, no more no less. |
2021-11-17 20:05:57 +0100 | <monochrom> | Perhaps ask a math channel if you doesn't need your notation to compile. |
2021-11-17 20:06:11 +0100 | aegon | (~mike@174.127.249.180) |
2021-11-17 20:09:32 +0100 | <shapr> | energizer: I've never seen the latter used in production code. |
2021-11-17 20:09:40 +0100 | <energizer> | shapr: thank you |
2021-11-17 20:11:12 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 20:13:16 +0100 | Guest80 | (~Guest80@pd9ed7c7f.dip0.t-ipconnect.de) (Quit: Client closed) |
2021-11-17 20:14:16 +0100 | theproffesor | (~theproffe@2601:282:847f:8010::390f) |
2021-11-17 20:14:16 +0100 | theproffesor | (~theproffe@2601:282:847f:8010::390f) (Changing host) |
2021-11-17 20:14:16 +0100 | theproffesor | (~theproffe@user/theproffesor) |
2021-11-17 20:14:57 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-11-17 20:15:23 +0100 | <EvanR> | depending on who talk to, they may respond to IRC math notation as if they were a compiler xD |
2021-11-17 20:15:35 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 20:16:40 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-11-17 20:16:54 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 20:17:20 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-17 20:18:39 +0100 | <sm> | ERROR missing word at 1:18 |
2021-11-17 20:19:51 +0100 | tired | (~tired@user/tired) (Quit: /) |
2021-11-17 20:20:12 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-11-17 20:20:31 +0100 | tired | (~tired@user/tired) |
2021-11-17 20:21:43 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 20:22:42 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 20:23:27 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Remote host closed the connection) |
2021-11-17 20:23:53 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 20:25:00 +0100 | rusty | (~rustyboy@82.77.237.221) (Remote host closed the connection) |
2021-11-17 20:27:17 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 20:27:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 20:28:17 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-17 20:28:22 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-11-17 20:29:27 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 250 seconds) |
2021-11-17 20:29:52 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection) |
2021-11-17 20:30:12 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 20:30:36 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 20:30:43 +0100 | <maerwald> | is mingw32_HOST_OS define if you cross-compile for windows? |
2021-11-17 20:30:49 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-17 20:32:14 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-11-17 20:33:43 +0100 | max22- | (~maxime@2a01cb0883359800ee51d0bfa17b1585.ipv6.abo.wanadoo.fr) |
2021-11-17 20:34:07 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 20:35:11 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Ping timeout: 264 seconds) |
2021-11-17 20:38:33 +0100 | adium | (adium@user/adium) |
2021-11-17 20:39:03 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-17 20:39:50 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection) |
2021-11-17 20:47:08 +0100 | ubert | (~Thunderbi@p200300ecdf0ba28041546fb5cdf9abd5.dip0.t-ipconnect.de) |
2021-11-17 20:51:27 +0100 | evocatus | (~evocatus@84.51.113.13) |
2021-11-17 20:51:52 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-17 20:51:54 +0100 | tfeb | (~tfb@88.98.95.237) |
2021-11-17 20:52:20 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-17 20:55:31 +0100 | tafa | (~tafa@2a04:52c0:101:85c::1) (Ping timeout: 245 seconds) |
2021-11-17 20:55:34 +0100 | tafama | (~tafa@tafa.xyz) |
2021-11-17 20:55:52 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-11-17 20:57:18 +0100 | lyiriyah | (~lyiriyah@user/lyiriyah) |
2021-11-17 20:58:23 +0100 | lyiriyah | (~lyiriyah@user/lyiriyah) (Client Quit) |
2021-11-17 21:00:34 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-11-17 21:01:48 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 256 seconds) |
2021-11-17 21:01:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-11-17 21:02:48 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-11-17 21:03:37 +0100 | dlbh^ | (~dlbh@h178.173.139.63.static.ip.windstream.net) (Remote host closed the connection) |
2021-11-17 21:05:12 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
2021-11-17 21:05:30 +0100 | <ProfSimm> | I started writing a language and i finally understood why referential transparency matters. |
2021-11-17 21:05:42 +0100 | quarkyalice | (~quarkyali@user/quarkyalice) |
2021-11-17 21:05:47 +0100 | <ProfSimm> | I was quite the "this is bullshit for nerds" guy before, and using mutable var |
2021-11-17 21:05:49 +0100 | <ProfSimm> | s* |
2021-11-17 21:06:18 +0100 | <ProfSimm> | Specifically in my languages every expression is like a separate thread (green), everything is massively parallel |
2021-11-17 21:06:22 +0100 | <ProfSimm> | Does Haskell have this/ |
2021-11-17 21:06:24 +0100 | <ProfSimm> | ? |
2021-11-17 21:07:35 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 250 seconds) |
2021-11-17 21:07:56 +0100 | juhp | (~juhp@128.106.188.82) |
2021-11-17 21:08:05 +0100 | <shapr> | ProfSimm: no, but you can do something close with the Control.Parallel libraries. |
2021-11-17 21:08:33 +0100 | <ProfSimm> | Thanks |
2021-11-17 21:08:47 +0100 | <awpr> | there isn't automatic massive parallelization, but if you squint really hard, it might look like a thunk is a suspended green thread, and forcing a thunk is the current thread yielding to the particular suspended thread it's blocked on |
2021-11-17 21:08:57 +0100 | <shapr> | ProfSimm: there's overhead in creating a new computation for handing off to your other threads, so you probably want to use larger chunks than every expression |
2021-11-17 21:09:03 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 21:09:04 +0100 | <shapr> | ProfSimm: but I want to hear about your language, sounds nifty |
2021-11-17 21:09:10 +0100 | <awpr> | (but that's a really weird way of looking at thunks) |
2021-11-17 21:09:11 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 21:09:12 +0100 | <ProfSimm> | awpr, yup |
2021-11-17 21:09:45 +0100 | <shapr> | I've heard that Erlang is good at firing up a huge pile of tiny computations, but Erlang is also sort of single core last I checked (just really good at handing off work to other instances on other cores) |
2021-11-17 21:10:13 +0100 | <shapr> | ProfSimm: is there a blog about your language? |
2021-11-17 21:10:29 +0100 | <ProfSimm> | shapr, I need to have it take better shape. But I'll definitely come here when I have something to show |
2021-11-17 21:10:36 +0100 | <shapr> | Also, there was related work around cloud haskell https://haskell-distributed.github.io/ |
2021-11-17 21:10:37 +0100 | tafama | (~tafa@tafa.xyz) (Ping timeout: 250 seconds) |
2021-11-17 21:10:45 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-11-17 21:10:46 +0100 | <shapr> | but I dunno how related to what you describe |
2021-11-17 21:11:55 +0100 | <shapr> | ProfSimm: in general it sounds like your language is based on graph reduction? |
2021-11-17 21:12:03 +0100 | <ProfSimm> | In short, like LISP everything in my thing is a sequence (read: iterator). Iterators are move-only, so they don't need referential transparency per se. Expressions themselves are also a sequence that's being reduced left to right (apply current item as a function to the next item until one item left). |
2021-11-17 21:12:18 +0100 | <shapr> | where you can then hand off chunks to be reduced to any free worker ? |
2021-11-17 21:12:42 +0100 | shapr | thinks about that |
2021-11-17 21:13:39 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 21:13:54 +0100 | <shapr> | ProfSimm: is your language also lazy (non-strict) ? |
2021-11-17 21:14:14 +0100 | <awpr> | sounds a bit like GHC's idea of spark-based parallelism: it can record that you want a particular thunk evaluated to WHNF, and go start doing that on any thread that's available |
2021-11-17 21:14:31 +0100 | <awpr> | (the "spark" is the name for the task of evaluating a particular thunk for its own sake) |
2021-11-17 21:14:55 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 21:15:03 +0100 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2021-11-17 21:15:24 +0100 | <awpr> | I think the language-level interface to that is the builtin `par` function that creates a spark for its first argument and then returns the second |
2021-11-17 21:15:44 +0100 | <shapr> | yeah, you may want to read http://simonmar.github.io/pages/pcph.html or some of the related research papers. |
2021-11-17 21:16:37 +0100 | <ProfSimm> | shapr, the dominant "shape" is a tree of sequences. An expression is a sequence I reduce (foo bar baz qux) but if you put commas (foo bar, baz qux) then it's seen as separate sub-expressions, and each is evaluated in parallel. You can also generate sequences programmatically (the output of every function is implicitly a sequence). However you can apply labels on values and refer then in other |
2021-11-17 21:16:37 +0100 | <ProfSimm> | subexpressions, in which case the referring expression suspends as a thunk until the value is available, for ex: (x: 10, x + x) calculates the list (10, 20), it tries in parallel, but second one blocks until first is done. |
2021-11-17 21:16:48 +0100 | <ProfSimm> | And those "References" to vars, make it a graph in a way |
2021-11-17 21:16:49 +0100 | <ProfSimm> | yes |
2021-11-17 21:17:08 +0100 | <EvanR> | if expression, i.e. a tree, is being reduced "left to right", i.e. one child at a time, I imagine it is eager eval |
2021-11-17 21:17:37 +0100 | <shapr> | can a 'sequence' have a tree shape? |
2021-11-17 21:17:52 +0100 | <ProfSimm> | shachaf, by having subsequences yes |
2021-11-17 21:18:18 +0100 | tafa | (~tafa@2a04:52c0:101:85c::1) |
2021-11-17 21:18:50 +0100 | <EvanR> | (cond false (+ 1 2) (* 2 3)) => (cond false 3 (* 2 3)) => (cond false 3 6) => 6 |
2021-11-17 21:18:58 +0100 | <shapr> | ProfSimm: I think you have *many* wonderful adventures ahead of you |
2021-11-17 21:19:05 +0100 | <ProfSimm> | shapr, EvanR, it's neither fully lazy, nor fully eager, in fact this is not finalized. But basically I leave something as a thunk or a sequence until it's "observed". But if a function as marked as having side effects it executes serially and eagerly |
2021-11-17 21:19:21 +0100 | <EvanR> | ok like a suspend form |
2021-11-17 21:19:25 +0100 | <ProfSimm> | Yes |
2021-11-17 21:19:45 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-11-17 21:19:47 +0100 | <ProfSimm> | shapr yeah :) it's a rabbit';s hole |
2021-11-17 21:19:53 +0100 | <shapr> | oh man, I had some optimal lambda calculas reduction papers around here somewhere |
2021-11-17 21:20:04 +0100 | <ProfSimm> | shapr, I'm dreaming the universe is made of evaluating sequences, it's getting nuts |
2021-11-17 21:20:52 +0100 | <shapr> | ProfSimm: have you read up on lazy evaluation and flavors that do sharing? |
2021-11-17 21:21:34 +0100 | <awpr> | there's actually a discussion of this just a bit ago in #haskell-beginners, incl. a book recommendation for implementing lazy evaluation efficiently on real hardware |
2021-11-17 21:21:49 +0100 | <ProfSimm> | shapr, I have a probably somewhat superficial idea. I've been thinking of adding memoization to "pure" functions |
2021-11-17 21:22:00 +0100 | <EvanR> | this book "the implementation of functional programming languages" (lazy) is pretty wild |
2021-11-17 21:22:08 +0100 | <awpr> | yeah, that one |
2021-11-17 21:22:24 +0100 | <shapr> | I consider the STG to be epic magic |
2021-11-17 21:22:32 +0100 | <ProfSimm> | https://www.microsoft.com/en-us/research/uploads/prod/1987/01/slpj-book-1987.pdf |
2021-11-17 21:22:32 +0100 | <EvanR> | though maybe quite old at this point |
2021-11-17 21:22:33 +0100 | <ProfSimm> | this/ |
2021-11-17 21:22:34 +0100 | <awpr> | seems perfect as a jumping-off point for novel variations on the evaluation model |
2021-11-17 21:22:36 +0100 | <awpr> | yep |
2021-11-17 21:22:57 +0100 | <ProfSimm> | Thanks folks |
2021-11-17 21:23:02 +0100 | <shapr> | someone was recently telling me there are new developments in that area, but I forgot to ask for citations |
2021-11-17 21:23:07 +0100 | <awpr> | it is quite old, and GHC has newer, fancier stuff. but it's the best overview I've found of how the area generally works |
2021-11-17 21:23:18 +0100 | <shapr> | ProfSimm: feel free to hang around and chat, lots of fun things here |
2021-11-17 21:23:24 +0100 | <ProfSimm> | :D |
2021-11-17 21:24:17 +0100 | <shapr> | oh, this is the most recent thing I ran across for STG things https://github.com/quchen/stgi#ghcs-current-stg |
2021-11-17 21:24:49 +0100 | <monochrom> | Nice. |
2021-11-17 21:24:55 +0100 | tfeb | (~tfb@88.98.95.237) (Ping timeout: 250 seconds) |
2021-11-17 21:25:53 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Read error: Connection reset by peer) |
2021-11-17 21:26:17 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 21:26:50 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-11-17 21:26:58 +0100 | neurocyte0132889 | (~neurocyte@45.136.170.104) |
2021-11-17 21:26:58 +0100 | neurocyte0132889 | (~neurocyte@45.136.170.104) (Changing host) |
2021-11-17 21:26:58 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-11-17 21:27:58 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 21:29:02 +0100 | <EvanR> | the Scanning Tunneling G-machine |
2021-11-17 21:30:59 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 21:31:58 +0100 | <janus> | is a summary of the TemplateHaskell reverse dependencies problem available somewhere online? |
2021-11-17 21:32:20 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 21:34:01 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 250 seconds) |
2021-11-17 21:34:24 +0100 | m4lvin | (~m4lvin@w4eg.de) (Quit: m4lvin) |
2021-11-17 21:34:30 +0100 | m4lvin | (~m4lvin@w4eg.de) |
2021-11-17 21:36:59 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2021-11-17 21:37:02 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 21:37:53 +0100 | <ProfSimm> | By the way I've been thinking. I'm reducing lists of expressions in parallel, but I reduce individual expressions left to right as in: (a b c d e) runs as a(b(c(d(e)))). Is there some kind of reduction process that doesn't have specific direction and is possibly parallelizable? |
2021-11-17 21:38:34 +0100 | <ProfSimm> | If the operations are commutative one could possibly flip the order |
2021-11-17 21:38:51 +0100 | <ProfSimm> | But not sure semantics we could have in other cases. |
2021-11-17 21:39:59 +0100 | <EvanR> | if you think of your list like that, you could subsume the of the sequence into the idea of an expression and only deal with 1 concept |
2021-11-17 21:40:36 +0100 | <ProfSimm> | EvanR, sorry I didn't understand |
2021-11-17 21:40:53 +0100 | <EvanR> | well what are the rules for forming an expression |
2021-11-17 21:41:36 +0100 | <EvanR> | what are the basic or atomic expressions, and how do you combine expressions to make a bigger one |
2021-11-17 21:41:58 +0100 | <EvanR> | in the process you may not need the idea of sequence |
2021-11-17 21:42:48 +0100 | <EvanR> | nvm that's a tangent |
2021-11-17 21:43:12 +0100 | <ProfSimm> | A function i call the "interpreter" receives all elements of an expression as an iterator. Then it interprets the first item according to custom rules (resolving a binding etc.) and that produces a result. I fetch the next item from the iterator, and I run result = result(next) |
2021-11-17 21:43:20 +0100 | <ProfSimm> | And I keep repeating this until the iterator is over |
2021-11-17 21:43:30 +0100 | <EvanR> | if you ignore side effects and evaluating an expression always completes, then you're free to reduce in whatever order you want |
2021-11-17 21:43:33 +0100 | <ProfSimm> | Finally I apply result with no arguments result = result(); |
2021-11-17 21:43:35 +0100 | <ProfSimm> | And that's it |
2021-11-17 21:43:41 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 21:43:49 +0100 | <EvanR> | or in parallel |
2021-11-17 21:44:01 +0100 | <ProfSimm> | A specific item can itself be an expression, which is evaluated with a separate interpreter |
2021-11-17 21:44:45 +0100 | <ProfSimm> | I have a pipe operator too, though to apply this way: result = next(result) |
2021-11-17 21:44:49 +0100 | <EvanR> | sounds like your expressions have a lot more going on than being merely expressions |
2021-11-17 21:44:53 +0100 | <awpr> | this sounds like just expression trees and currying, in exactly the way Haskell has it |
2021-11-17 21:45:09 +0100 | <awpr> | modulo being able to generate expression "iterators" at runtime |
2021-11-17 21:45:29 +0100 | <ProfSimm> | awpr interesting |
2021-11-17 21:46:33 +0100 | <ProfSimm> | awpr, my model is entirely intepreted, I run the interpreter in the IDE and it reduces everything that's pure, and that generates type errors and so on |
2021-11-17 21:46:36 +0100 | <awpr> | er, in Haskell the resolution of sequences to "parenthesized" expression trees is up to the parser instead of anything at runtime, but it's the same kind of grouping |
2021-11-17 21:46:37 +0100 | <EvanR> | yes in haskell f x y z is really ((f x) y) z, application nodes only have 2 elements |
2021-11-17 21:46:42 +0100 | <EvanR> | f applied to x |
2021-11-17 21:46:45 +0100 | <ProfSimm> | I may have AOT/JIT compilation but that'll also be based on the interpreter |
2021-11-17 21:47:06 +0100 | <janus> | is the templatehaskell invalidation problem a bug or is it more of a fundamental design problem? |
2021-11-17 21:47:08 +0100 | <EvanR> | so there's no sequence |
2021-11-17 21:47:27 +0100 | evocatus | (~evocatus@84.51.113.13) (Quit: Leaving) |
2021-11-17 21:47:39 +0100 | <ProfSimm> | EvanR, nice I didn't realize I'm doing exactly the same thing |
2021-11-17 21:48:07 +0100 | <ProfSimm> | EvanR one small difference is i apply with no arguments in the end, and every value is a function which when called with no arguments, returns itself |
2021-11-17 21:48:09 +0100 | <EvanR> | in lisp though you expect to get the sequence of arguments in some cases |
2021-11-17 21:48:15 +0100 | <EvanR> | (+ 1 2 3 4) |
2021-11-17 21:48:16 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 21:48:23 +0100 | <EvanR> | so it's different |
2021-11-17 21:48:27 +0100 | <ProfSimm> | EvanR, i do closures in another way, by adding a "placeholder" to generate a thunk with parameters |
2021-11-17 21:48:43 +0100 | <EvanR> | haskell gets by by having no such thing as function applied to no arguments |
2021-11-17 21:48:56 +0100 | <EvanR> | since it's pure, that would have to be a constant value |
2021-11-17 21:49:20 +0100 | <ProfSimm> | EvanR i.e. foo: sum (5, ?) would produce a closure. Which when called like this: bar: foo 7 // bar is 12 now |
2021-11-17 21:49:24 +0100 | <EvanR> | closures implemented as partially applied functions is a classic |
2021-11-17 21:50:36 +0100 | <EvanR> | did you say you were making a pure language? |
2021-11-17 21:50:57 +0100 | <ProfSimm> | EvanR, functions can be pure or not pure, they're pure by default. |
2021-11-17 21:51:26 +0100 | <awpr> | that syntax can get into some trouble w.r.t. how big the closure is: in something like `sum (mul (5, ?), 8)`, is that like `\x -> 5*x + 8`, or like `(\x -> 5 + x) * 8`? |
2021-11-17 21:51:26 +0100 | <ProfSimm> | EvanR, when they're not pure the use is quite restricted. |
2021-11-17 21:51:29 +0100 | <EvanR> | being able to assume everything is pure really simplifies some things xD |
2021-11-17 21:51:37 +0100 | <ProfSimm> | EvanR it does yesh |
2021-11-17 21:51:56 +0100 | <ProfSimm> | EvanR, I'm tempted to kinda wall off all the side-effects, but I'm *trying* to kinda keep them in for pragmatic purposes |
2021-11-17 21:53:09 +0100 | <EvanR> | idris has a nifty syntax for writing side effecting sub expression, which is desugared into >>= |
2021-11-17 21:53:38 +0100 | <EvanR> | which is itself a nifty way to express side effects (er, main effects) |
2021-11-17 21:53:38 +0100 | <ProfSimm> | EvanR, I actually had this conundrum. I had no null value per se. So applying a function with no parameters is like applying a function without applying a function. |
2021-11-17 21:54:39 +0100 | <EvanR> | in haskell a function with no args that is just supposed to have an effect is just something else entirely, a command. E.g. exitFailure :: IO a |
2021-11-17 21:54:48 +0100 | <EvanR> | which is just a value |
2021-11-17 21:55:00 +0100 | <EvanR> | no function arrow |
2021-11-17 21:55:04 +0100 | <ProfSimm> | Ah, command is an excellent name for impure function |
2021-11-17 21:55:12 +0100 | <awpr> | my understanding is that Haskell ended up with purity because it _had_ to, to make lazy evaluation make any sense |
2021-11-17 21:55:26 +0100 | <awpr> | you might be heading in the same direction :) |
2021-11-17 21:55:32 +0100 | <EvanR> | to have any hope of making sense at least xD |
2021-11-17 21:55:35 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 21:55:41 +0100 | <EvanR> | jury may still be out |
2021-11-17 21:56:13 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed) |
2021-11-17 21:56:19 +0100 | <ProfSimm> | I wanna keep it syntactically similar and ideally differentiate only by keyword or something |
2021-11-17 21:56:27 +0100 | <ProfSimm> | But yeah |
2021-11-17 21:56:30 +0100 | jespada | (~jespada@252-155-231-201.fibertel.com.ar) (Quit: Textual IRC Client: www.textualapp.com) |
2021-11-17 21:56:55 +0100 | <EvanR> | having many different things without different syntax is one of lisps warts imo xD |
2021-11-17 21:57:09 +0100 | <ProfSimm> | Yes |
2021-11-17 21:57:17 +0100 | <ProfSimm> | It's a hard balance |
2021-11-17 21:57:42 +0100 | <ProfSimm> | Make it explicit, looks like alien language to non-experts. Make it non-explicit, experts are pulling their hair out |
2021-11-17 21:58:55 +0100 | acidjnk | (~acidjnk@p200300d0c7271e86155557ae7ddf7b60.dip0.t-ipconnect.de) |
2021-11-17 21:59:04 +0100 | servytor | (uid525486@hampstead.irccloud.com) |
2021-11-17 22:00:02 +0100 | <EvanR> | after so much haskell I have to ask myself why functions turned out to be the thing associated with side effects and not say... memory writes or something else |
2021-11-17 22:00:17 +0100 | <EvanR> | or the stack |
2021-11-17 22:00:19 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 22:00:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-17 22:00:22 +0100 | <EvanR> | but here we are |
2021-11-17 22:00:57 +0100 | <ProfSimm> | EvanR, Pascal had the word function() for function with args and procedure; with functions without. |
2021-11-17 22:01:20 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) |
2021-11-17 22:01:21 +0100 | <ProfSimm> | EvanR, where the implicit notion was functions are safe and procedures have side effects. Then other languages thought "eh, we'll use one keyword" |
2021-11-17 22:01:22 +0100 | <ProfSimm> | :P |
2021-11-17 22:01:31 +0100 | <EvanR> | interesting |
2021-11-17 22:01:57 +0100 | <dsal> | Eiffel was kind of neat like this. Things should either change state or view state, but not both. |
2021-11-17 22:02:02 +0100 | <ProfSimm> | I mean this is a bit like languages calling STRINGS... SCALAR |
2021-11-17 22:02:13 +0100 | <ProfSimm> | I mean a piece of text is not a scalar. |
2021-11-17 22:02:25 +0100 | Gurkenglas_ | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-11-17 22:02:27 +0100 | <ProfSimm> | But there you go :) |
2021-11-17 22:02:47 +0100 | <ProfSimm> | Shows how the two audiences (mathematicians, and programmers) interact, but they don't understand all the words. |
2021-11-17 22:03:00 +0100 | rusty | (~rustyboy@82.77.237.221) |
2021-11-17 22:03:21 +0100 | <dsal> | That's all of humanity, though. |
2021-11-17 22:03:21 +0100 | <EvanR> | you can fit (c-string) "FOOBAR!" in a word64 xD |
2021-11-17 22:03:35 +0100 | <EvanR> | very scalar |
2021-11-17 22:03:52 +0100 | <ProfSimm> | ;-) |
2021-11-17 22:05:50 +0100 | yauhsien | (~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 22:05:50 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-11-17 22:06:08 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) () |
2021-11-17 22:06:45 +0100 | <ProfSimm> | Do you know one thing I find troublesome with functional languages. They kinda eliminate time, which is good, but all real-world systems depend heavily on things happening in time. |
2021-11-17 22:08:02 +0100 | <EvanR> | in haskell you have to access real time through IO |
2021-11-17 22:08:06 +0100 | <ProfSimm> | For example artificial neural networks tend to work like grids of numbers multiplied by other grids (matrixes, or tensors in general), and there's always a result flowing down the network. Actual neurons don't fire "zeroes" at other neurons. They spike with a specific pattern in time. Like morse code sort of |
2021-11-17 22:08:28 +0100 | <EvanR> | though you could build the concept of time into your DSL, possibly abstracting it |
2021-11-17 22:08:38 +0100 | <EvanR> | see FRP |
2021-11-17 22:08:48 +0100 | <dsal> | Time in TLA+ doesn't have anything to do with the wall. |
2021-11-17 22:09:25 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) |
2021-11-17 22:09:42 +0100 | <exarkun> | Time in your ANNs also doesn't have to have anything to do with the wall, if you don't want it to. |
2021-11-17 22:09:51 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) |
2021-11-17 22:10:09 +0100 | <ProfSimm> | Well, in ANN you can have time series and say "this data is sliced in these intervals" |
2021-11-17 22:10:15 +0100 | <ProfSimm> | And you can pass zeroes where you have no signal |
2021-11-17 22:10:29 +0100 | <ProfSimm> | But my point is there no "frames" in nature. There's no "null". And there's no "0" |
2021-11-17 22:10:40 +0100 | <ProfSimm> | Instead there's a lack of a thing. |
2021-11-17 22:10:48 +0100 | <ProfSimm> | And then it happens in specific time periods |
2021-11-17 22:10:51 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 250 seconds) |
2021-11-17 22:11:10 +0100 | <exarkun> | To put it differently, you can have time in your purely functional software. |
2021-11-17 22:11:23 +0100 | <ProfSimm> | How tho |
2021-11-17 22:11:27 +0100 | <She> | Is this a roundabout way of talking about mutability? |
2021-11-17 22:11:32 +0100 | <ProfSimm> | haha |
2021-11-17 22:11:37 +0100 | <ProfSimm> | Well. Not quite |
2021-11-17 22:11:54 +0100 | <exarkun> | If you're just modeling time as a real number then ... you have a real number, it is a parameter to your functions, you pass in a value for it. |
2021-11-17 22:12:02 +0100 | <ProfSimm> | More about "relative order and time proximity of related events" |
2021-11-17 22:12:33 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-11-17 22:12:40 +0100 | <ProfSimm> | Relative order could be seen as me talking about mutability actually |
2021-11-17 22:12:45 +0100 | <ProfSimm> | But time proximity is trickier |
2021-11-17 22:12:47 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 22:12:47 +0100 | <exarkun> | This is true whether you are writing functional code or not. It's more or less just good practice for writing good code. |
2021-11-17 22:12:50 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-11-17 22:12:57 +0100 | <exarkun> | I'm not talking about mutability, fwiw. |
2021-11-17 22:13:42 +0100 | <exarkun> | You have a function the computation of which depends on a value that you happen to call time? You pass that value in to the function as an argument. |
2021-11-17 22:14:04 +0100 | <ProfSimm> | exarkun, ok let me put it this way. |
2021-11-17 22:14:19 +0100 | <ProfSimm> | exarkun, say you are reading from 100 lazy sequences. |
2021-11-17 22:14:25 +0100 | <EvanR> | time may or may not also be needed in your semantics for concurrency |
2021-11-17 22:14:54 +0100 | <ProfSimm> | exarkun, input is calculated from those sequences very slowly, maybe you get a value or two a day |
2021-11-17 22:15:19 +0100 | <exarkun> | Laziness is a complication, I suppose. |
2021-11-17 22:15:23 +0100 | <ProfSimm> | exarkun, but sometimes 40+ values come within the span of 5 seconds. And then YOU want to emit a value from your own sequence to someone else |
2021-11-17 22:15:41 +0100 | <ProfSimm> | So question is how we model this effectively |
2021-11-17 22:15:45 +0100 | <EvanR> | another fun case to look at is that library to produce crypto computations that are resistant to timing attacks, by making each operation take the same amount of time... what was it called... |
2021-11-17 22:15:54 +0100 | <exarkun> | I can believe that /laziness/ makes dealing with time more difficult. |
2021-11-17 22:16:13 +0100 | <ProfSimm> | exarkun, frankly this is a hard problem even in imperative languages |
2021-11-17 22:16:40 +0100 | <ProfSimm> | exarkun our computers are inherently synchronous, they do things all the time, whether input is coming or not. Well there's an idle loop, but that's a cludge |
2021-11-17 22:16:40 +0100 | <exarkun> | Eh. There aren't "hard" problems in the way you mean that, I think. There are problems you know how to solve and problems you don't know how to solve. |
2021-11-17 22:16:51 +0100 | <EvanR> | you can encode the time cost into your type system, and then making it work with eager or lazy eval |
2021-11-17 22:16:55 +0100 | <exarkun> | Sure, if some person doesn't know how to solve it, it may be hard for that person. |
2021-11-17 22:17:21 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 22:17:26 +0100 | <EvanR> | then have the implementation ensure the time cost is accurate, in case that matters |
2021-11-17 22:17:38 +0100 | <EvanR> | usually we don't want that and just want it to go as fast as possible |
2021-11-17 22:17:46 +0100 | <ProfSimm> | I suppose I'd need some accumulator in my code, that, when i get a value, i read the clock, and I attenuate the accumulator based on "passed time" like a capacitor that's leaking |
2021-11-17 22:17:57 +0100 | <ProfSimm> | Then I add the value I got and check if i'm over the threshold |
2021-11-17 22:18:18 +0100 | <ProfSimm> | But it's clunky. |
2021-11-17 22:18:28 +0100 | <exarkun> | ProfSimm: I think laziness is the complicating factor because in the scenario you describe, you're using Haskell's implementation of laziness to control when things happen and Haskell's implementation of laziness does not give you time information along with that feature. |
2021-11-17 22:18:28 +0100 | <EvanR> | are we getting into real time OS too? |
2021-11-17 22:18:53 +0100 | <exarkun> | ProfSimm: If Haskell's implementation of laziness accounted for wanting to know /when/ lazy things resolved, then the solution would be obvious. |
2021-11-17 22:19:15 +0100 | <exarkun> | ProfSimm: Similarly, if you didn't use Haskell's implementation of laziness as part of your system, you could use a different tool that accounts for time better. |
2021-11-17 22:19:16 +0100 | <ProfSimm> | exarkun, yes |
2021-11-17 22:19:21 +0100 | <exarkun> | And then the solution would also be obvious. |
2021-11-17 22:19:39 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 265 seconds) |
2021-11-17 22:19:43 +0100 | <ProfSimm> | exarkun, maybe we can model the lazy sequence as a stream of values of the wall clock :) |
2021-11-17 22:19:48 +0100 | <EvanR> | estimating time costs has been easier so far with eager evaluation |
2021-11-17 22:20:07 +0100 | <EvanR> | but that's not the same as functional removing time |
2021-11-17 22:20:27 +0100 | <awpr> | this is pretty much exactly the domain of FRP: figuring out how to deal with continuously-varying quantities and discrete occurrences in terms of pure functional abstractions |
2021-11-17 22:20:42 +0100 | <EvanR> | yes! xD |
2021-11-17 22:20:56 +0100 | <awpr> | there's a ton of interesting research into it, lots of different approaches, etc. |
2021-11-17 22:20:59 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 22:21:29 +0100 | <EvanR> | FRP was all about including time in your semantics |
2021-11-17 22:21:54 +0100 | <awpr> | in fact I think some actual FRP implementations early on genuinely used lazy lists of (time, value) pairs |
2021-11-17 22:24:12 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 22:24:58 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
2021-11-17 22:27:01 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) (Remote host closed the connection) |
2021-11-17 22:27:04 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-11-17 22:28:33 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) |
2021-11-17 22:28:35 +0100 | EvanR | (~evan@user/evanr) (Ping timeout: 264 seconds) |
2021-11-17 22:29:04 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 22:31:42 +0100 | ubert | (~Thunderbi@p200300ecdf0ba28041546fb5cdf9abd5.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-11-17 22:36:11 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 22:36:35 +0100 | jmorris | (uid433911@hampstead.irccloud.com) |
2021-11-17 22:37:42 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-17 22:37:46 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-11-17 22:38:25 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-11-17 22:38:42 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-17 22:39:57 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-11-17 22:40:45 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 22:41:07 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-11-17 22:42:06 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 22:42:15 +0100 | robertm | (robertm@lattice.rojoma.com) (Quit: WeeChat 3.0) |
2021-11-17 22:42:24 +0100 | robertm | (robertm@lattice.rojoma.com) |
2021-11-17 22:44:41 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:85c4:4386:63fc:8e9) (Remote host closed the connection) |
2021-11-17 22:46:38 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 22:47:44 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 22:47:57 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-11-17 22:52:27 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 22:53:38 +0100 | trillp | (~trillp@69.233.98.238) |
2021-11-17 22:54:00 +0100 | EvanR | (~evan@2600:1700:ba69:10:c80:91ea:a064:8fa5) |
2021-11-17 22:54:37 +0100 | trillp | (~trillp@69.233.98.238) () |
2021-11-17 22:56:46 +0100 | EvanR | (~evan@2600:1700:ba69:10:c80:91ea:a064:8fa5) (Changing host) |
2021-11-17 22:56:46 +0100 | EvanR | (~evan@user/evanr) |
2021-11-17 22:57:27 +0100 | quarkyalice | (~quarkyali@user/quarkyalice) (Remote host closed the connection) |
2021-11-17 22:58:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-17 22:59:09 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:00:44 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 23:01:10 +0100 | emf_ | (~emf@163.114.132.1) |
2021-11-17 23:03:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-11-17 23:04:07 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 23:04:35 +0100 | emf | (~emf@2620:10d:c090:400::5:69fc) (Ping timeout: 268 seconds) |
2021-11-17 23:05:01 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 250 seconds) |
2021-11-17 23:10:11 +0100 | <sm> | oh is that "all" FRP is ? |
2021-11-17 23:10:12 +0100 | <sm> | TeaTime in https://en.wikipedia.org/wiki/Croquet_Project did that, I wonder if that was considered FRP |
2021-11-17 23:10:36 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:12:00 +0100 | <EvanR> | lol |
2021-11-17 23:12:29 +0100 | <monochrom> | Lazy [(time, value)] may or may not be an efficient representation. This also depends on languages. So, lazy [(time, value)] is not all of FRP, there is extra research and engineering for how to be efficient. |
2021-11-17 23:12:47 +0100 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep) |
2021-11-17 23:13:22 +0100 | <EvanR> | having explicity access to the time value can make some weird situations possibl |
2021-11-17 23:13:33 +0100 | <monochrom> | However, assuming that someone has made an efficient implementation, then the user-side mental model is "time -> value". For a user, that is "all" of FRP. |
2021-11-17 23:14:37 +0100 | zincy_ | (~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection) |
2021-11-17 23:15:25 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 23:15:48 +0100 | <EvanR> | there's a lot packed into that "->" there xD |
2021-11-17 23:15:51 +0100 | mvk | (~mvk@2607:fea8:5cc3:e900::df92) (Ping timeout: 250 seconds) |
2021-11-17 23:16:43 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:99ae:703b:b7dc:fe53) (Quit: gone to sleep. ZZZzzz…) |
2021-11-17 23:20:04 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 23:22:34 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:23:03 +0100 | juhp | (~juhp@128.106.188.82) (Quit: juhp) |
2021-11-17 23:23:16 +0100 | juhp | (~juhp@128.106.188.82) |
2021-11-17 23:24:36 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) (Ping timeout: 256 seconds) |
2021-11-17 23:25:06 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) |
2021-11-17 23:27:07 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 23:27:20 +0100 | michalz | (~michalz@185.246.204.121) (Remote host closed the connection) |
2021-11-17 23:28:22 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:29:17 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 250 seconds) |
2021-11-17 23:29:49 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:78f3:43f3:fd48:5ac3) |
2021-11-17 23:30:43 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 23:32:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-17 23:33:07 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
2021-11-17 23:34:10 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:36:11 +0100 | dang72 | (~dang@75-164-198-225.ptld.qwest.net) |
2021-11-17 23:37:52 +0100 | texasmynsted | (~texasmyns@99.96.221.112) |
2021-11-17 23:39:20 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-17 23:42:23 +0100 | <monochrom> | OK, regarding yesterday's GHC 9.2 impredicativity and user-defined "app :: (a -> b) -> a -> b" and runST: I just tested it, need to turn on ImpredicativeTypes but "meh = runST `app` pure ()" is accepted. |
2021-11-17 23:43:03 +0100 | <texasmynsted> | What would you recommend for simple text macro-style manipulation? attoparsec, something different? I would like make a collection of editor-style text transformation macros in Haskell |
2021-11-17 23:43:32 +0100 | <monochrom> | ($) is still special, yes, so that you can still have "runST $ ..." without turning on ImpredicativeTypes. This is good for existing code bases, I bet. |
2021-11-17 23:45:32 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:45:34 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) (Ping timeout: 256 seconds) |
2021-11-17 23:45:57 +0100 | dsrt^ | (~dsrt@h178.173.139.63.static.ip.windstream.net) |
2021-11-17 23:47:17 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-11-17 23:48:06 +0100 | chomwitt | (~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 265 seconds) |
2021-11-17 23:48:20 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-11-17 23:48:39 +0100 | <monochrom> | Ah here is the improved special treatment for ($): "even without ImpredicativeTypes GHC switches on Quick Look for applications of ($)". So, not very hacky now. :) |
2021-11-17 23:49:46 +0100 | <geekosaur> | right, that's pretty much what I said yesterday |
2021-11-17 23:50:31 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-17 23:52:27 +0100 | vysn | (~vysn@user/vysn) |
2021-11-17 23:53:17 +0100 | wolfshappen | (~waff@irc.furworks.de) (Quit: later) |
2021-11-17 23:55:21 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) (Ping timeout: 265 seconds) |
2021-11-17 23:55:27 +0100 | <janus> | monochrom: great thanks for testing |
2021-11-17 23:55:34 +0100 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-17 23:55:43 +0100 | rtsn | (~nstr@c-c7fe225c.07-59-7570703.bbcust.telenor.se) |
2021-11-17 23:57:02 +0100 | yauhsien | (~yauhsien@61-231-35-209.dynamic-ip.hinet.net) |
2021-11-17 23:57:05 +0100 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) |