2021-10-19 00:02:58 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Remote host closed the connection) |
2021-10-19 00:03:54 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 00:04:42 +0200 | <Axman6> | @djinn ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((forall a. a -> a) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int) -> Int |
2021-10-19 00:04:58 +0200 | <lambdabot> | Djinn command failed: <<timeout>> |
2021-10-19 00:05:37 +0200 | <hpc> | haha |
2021-10-19 00:05:43 +0200 | <hpc> | i have never seen djinn time out before |
2021-10-19 00:08:26 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Ping timeout: 245 seconds) |
2021-10-19 00:10:11 +0200 | wroathe | (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) |
2021-10-19 00:10:11 +0200 | wroathe | (~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host) |
2021-10-19 00:10:11 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-19 00:11:22 +0200 | <DigitalKiwi> | Axman6: lol that reminds me of a python program that will segfault |
2021-10-19 00:12:06 +0200 | michalz | (~michalz@185.246.204.87) (Remote host closed the connection) |
2021-10-19 00:12:22 +0200 | Morrow | (~Morrow@147.161.13.214) (Ping timeout: 260 seconds) |
2021-10-19 00:15:07 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
2021-10-19 00:15:26 +0200 | <koz> | Suppose I have a GADT 'trapping' a type variable 'a'. If I pattern-match on said GADT to reveal that 'a', how do I refer to it for a type application? |
2021-10-19 00:15:33 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-10-19 00:16:15 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:39a4:166a:24e9:f255) (Remote host closed the connection) |
2021-10-19 00:16:36 +0200 | <awpr> | currently, you have to get a handle on it by a signature in the pattern, with `ScopedTypeVariables`, or otherwise do something with a type that locks down that existential somehow |
2021-10-19 00:16:56 +0200 | <monochrom> | \∩/ Richard Eisenberg is still using Hugs to test out new features! |
2021-10-19 00:17:03 +0200 | <awpr> | there have been rumblings about allowing `TypeApplications` in patterns, which would be awesome, but not sure if it's gone anywhere |
2021-10-19 00:17:16 +0200 | <c_wraith> | awpr: it's in the 9.2 release candidate and works fine |
2021-10-19 00:17:18 +0200 | <koz> | awpr: How would that signature even look? |
2021-10-19 00:17:20 +0200 | Morrow | (~Morrow@147.161.13.214) |
2021-10-19 00:18:21 +0200 | <awpr> | `data Thing where Thing :: forall a. Proxy a -> Thing` |
2021-10-19 00:18:21 +0200 | <awpr> | `\ (Thing (_ :: Proxy a)) -> doSomething @a` |
2021-10-19 00:18:33 +0200 | <koz> | Ah. |
2021-10-19 00:18:44 +0200 | <awpr> | c_wraith: awesome, I've been looking forward to this feature |
2021-10-19 00:18:52 +0200 | <DigitalKiwi> | ghc -e "putStrLn (replicate 100 '(') <> putStrLn (replicate 100 ')')"|python3 <-- the program |
2021-10-19 00:19:22 +0200 | <awpr> | without it, it's not possible to get at an existential like `a` in `data Thing = Monoid a => Thing` |
2021-10-19 00:20:58 +0200 | <c_wraith> | One of several reasons I want GHC 9.2 to get released :) |
2021-10-19 00:21:03 +0200 | <DigitalKiwi> | how many parens you need to segfault depend on what version of python you are using lol and it might be fixed in 3.9 hmm |
2021-10-19 00:21:37 +0200 | <awpr> | oh right, s/ve been/m still/ |
2021-10-19 00:21:41 +0200 | <jackhill> | Franciman, geekosaur: sorry, I got distracted and wondered off. I think you gave me some good leads, which I'll envestigate later, thanks! Wrapper script is possible, but kludge, so I hopped to avoid it. Yes, the idea is to have ghc find the toolchain it wants directly from the store, and do it in such a way that Guix can see that reference. |
2021-10-19 00:22:03 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:39a4:166a:24e9:f255) |
2021-10-19 00:22:18 +0200 | <jackhill> | I looked for hints from Nix, but (maybe my Nix reading isn't good enough) didn't see any. |
2021-10-19 00:22:26 +0200 | <geekosaur> | ghc will use whatebver toolchain it is presented with, so it's up to guix to select and rpesent one. which one might be a guix-level config option |
2021-10-19 00:23:30 +0200 | <geekosaur> | then just pass the appropriate CC=.. to both build and install configure scripts as part of building/installing ghc (which again is up to guix, not to you) |
2021-10-19 00:23:56 +0200 | <jackhill> | yeah, I bet we're missing it for the install configure scripts, since all the build time stuff works |
2021-10-19 00:24:46 +0200 | <jackhill> | geekosaur: right. Well it's up to me insofar as I'm trying to teach Guix how to do it :) |
2021-10-19 00:28:42 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.123) (Ping timeout: 260 seconds) |
2021-10-19 00:30:55 +0200 | <geekosaur> | mm. I'm still thinking you just want to expose the whole toolchain. because even if you get the simple cases working, you'llk still trip over it with inline-c |
2021-10-19 00:31:30 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep) |
2021-10-19 00:32:16 +0200 | <Axman6> | hpc: yeah, I'm amazed. I rememebr back in the day type checking exponentially large expressions and that causing issues |
2021-10-19 00:36:44 +0200 | <Axman6> | Who runs yahb? |
2021-10-19 00:37:26 +0200 | greyrat | (~greyrat@ip202.ip-51-178-215.eu) |
2021-10-19 00:37:49 +0200 | <geekosaur> | mniip |
2021-10-19 00:38:04 +0200 | <mniip> | hi |
2021-10-19 00:43:38 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Ping timeout: 260 seconds) |
2021-10-19 00:44:41 +0200 | burnsidesLlama | (~burnsides@dhcp168-043.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-19 00:46:18 +0200 | <jackhill> | geekosaur: that's doable it that's what's expected. |
2021-10-19 00:47:22 +0200 | glassy | (~glassy@92.40.175.103.threembb.co.uk) (Ping timeout: 260 seconds) |
2021-10-19 00:47:58 +0200 | <geekosaur> | yeh, I'm suspecting that and probably cabal c-sources won't consult ghc to see what c compiler it expects, you'll have to arrange for it to be in $PATH some other way |
2021-10-19 00:49:27 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c::3d56) (Remote host closed the connection) |
2021-10-19 00:49:51 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c::3d56) |
2021-10-19 00:50:23 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
2021-10-19 00:53:45 +0200 | max22- | (~maxime@2a01cb088335980099ed81e6a8bd9a3f.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-10-19 00:56:10 +0200 | Morrow | (~Morrow@147.161.13.214) (Read error: Connection reset by peer) |
2021-10-19 00:59:20 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 01:02:05 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 01:02:46 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.3) |
2021-10-19 01:03:34 +0200 | wroathe | (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) |
2021-10-19 01:03:34 +0200 | wroathe | (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host) |
2021-10-19 01:03:34 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-19 01:04:32 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2021-10-19 01:06:46 +0200 | azeem | (~azeem@2a00:801:237:7bcf:1c96:8993:d67f:c459) (Ping timeout: 245 seconds) |
2021-10-19 01:06:47 +0200 | Ferdirand | (~somebody@2001:4c78:2012:5000::2) (Ping timeout: 240 seconds) |
2021-10-19 01:06:54 +0200 | Ferdirand | (~somebody@2001:4c78:2012:5000::2) |
2021-10-19 01:09:05 +0200 | <Axman6> | DigitalKiwi: Someone I know at the qfpl (lightandlight I think?) made a python, haskell... thing... which was very good at finding python bugs like that |
2021-10-19 01:09:10 +0200 | d34df00d | (~d34df00d@2600:1700:8c60:3a10::48) (Ping timeout: 252 seconds) |
2021-10-19 01:09:27 +0200 | <DigitalKiwi> | i got it from dibblego ;) |
2021-10-19 01:10:28 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-10-19 01:11:59 +0200 | <Axman6> | yeah I figured you might have |
2021-10-19 01:12:22 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) (Quit: k60) |
2021-10-19 01:12:36 +0200 | k60 | (~user@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 01:12:43 +0200 | k60 | (~user@broadband-95-84-168-218.ip.moscow.rt.ru) () |
2021-10-19 01:14:01 +0200 | burnsidesLlama | (~burnsides@dhcp168-043.wadham.ox.ac.uk) |
2021-10-19 01:14:10 +0200 | fluffyballoon | (~user@131.93.208.196) |
2021-10-19 01:14:32 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 01:14:51 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) (Client Quit) |
2021-10-19 01:15:23 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 01:15:57 +0200 | trog | (~trog@user/trog) |
2021-10-19 01:17:51 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-19 01:17:59 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-10-19 01:18:43 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-10-19 01:19:59 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
2021-10-19 01:20:02 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) (Ping timeout: 260 seconds) |
2021-10-19 01:21:18 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds) |
2021-10-19 01:21:21 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb87414c380a9484df88.dip0.t-ipconnect.de) |
2021-10-19 01:24:30 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb806ce024b26c2d7c09.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 01:24:38 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-19 01:25:24 +0200 | <dibblego> | sup yooz |
2021-10-19 01:27:44 +0200 | <Axman6> | I reckon I'll be able to come visit youse all soon, jackdk keeps saying I should come up |
2021-10-19 01:28:44 +0200 | <dibblego> | yeah harry ap |
2021-10-19 01:28:51 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-10-19 01:29:49 +0200 | <Axman6> | Would've been sooner if gladys hasn't wrecked the joint for everyone |
2021-10-19 01:30:27 +0200 | <dibblego> | yeah she's a knob — come and breathe all over me pls |
2021-10-19 01:31:12 +0200 | <jackdk> | The one upside is that it dented her political forcefield enough that the corruption stuff may possibly potentially catch up with her maybe |
2021-10-19 01:31:48 +0200 | <dibblego> | 'ere ya go, 28 Nov, seeya there https://i.imgur.com/O7jaEbR.png |
2021-10-19 01:32:19 +0200 | argento | (~argent0@168-227-96-26.ptr.westnet.com.ar) |
2021-10-19 01:39:30 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 01:40:01 +0200 | mmhat | (~mmh@55d44f19.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-10-19 01:42:22 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-19 01:47:37 +0200 | guydb89 | (~guy@98.40.140.117) (Quit: leaving) |
2021-10-19 01:51:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:39a4:166a:24e9:f255) (Remote host closed the connection) |
2021-10-19 01:51:54 +0200 | guydb89 | (~guy@98.40.140.117) |
2021-10-19 01:54:01 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
2021-10-19 01:54:01 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-19 01:54:15 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 02:00:03 +0200 | unmanbearpig | (~unmanbear@user/unmanbearpig) |
2021-10-19 02:00:22 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-10-19 02:00:43 +0200 | <zzz> | hey. i just found out we can have duplicate record accessors in data constructors of the same type, as long as their types match |
2021-10-19 02:03:34 +0200 | <geekosaur> | yep. all the way back to H98. problem is they can be partial |
2021-10-19 02:04:13 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-19 02:04:25 +0200 | abrantesasf | (~abrantesa@187.36.170.211) |
2021-10-19 02:04:32 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-19 02:04:46 +0200 | <unit73e> | there's also the DuplicateRecordFields extension |
2021-10-19 02:05:23 +0200 | <unit73e> | though I hardly ever use such extensions |
2021-10-19 02:05:36 +0200 | <monochrom> | Naw, the problem we considered yesterday was "what if I really want different field types". |
2021-10-19 02:05:51 +0200 | <geekosaur> | data Foo = Foo { x :: Int } | Bar { x :: Int; y :: Double } | Baz { y :: Double } -- both x and y are partial and will throw exceptions if accessed from the wrong constructor |
2021-10-19 02:05:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-19 02:05:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-19 02:05:52 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-19 02:06:13 +0200 | <monochrom> | So, yesterday the question was about "data T = C1 {a :: Int} | C2 {a :: NotInt}" |
2021-10-19 02:06:59 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-19 02:08:11 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c::3d56) (Ping timeout: 264 seconds) |
2021-10-19 02:08:25 +0200 | <unit73e> | Is there a way to make an alias of your own module? because I want to make a `Direction = Up | Down | Left | Right` but there's `Either` and hiding `Left, Right` from Prelude kind of gives me bad taste |
2021-10-19 02:08:32 +0200 | <zzz> | geekosaur: you mean we get an error if we do `y (Foo 7)` ? |
2021-10-19 02:08:56 +0200 | <geekosaur> | zzz, yes |
2021-10-19 02:09:17 +0200 | <awpr> | I can never remember whether it's legal to just say `My.Module.Left`, but it's worth a try |
2021-10-19 02:09:20 +0200 | <geekosaur> | unit73e, xmonad solves that by calling them U, D, L, R |
2021-10-19 02:09:25 +0200 | <zzz> | i hate records |
2021-10-19 02:09:30 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2021-10-19 02:09:33 +0200 | <unit73e> | geekosaur, ok. might as well do the same thing. thanks. |
2021-10-19 02:09:49 +0200 | <geekosaur> | awpr, yes |
2021-10-19 02:10:16 +0200 | <monochrom> | In fact you now have to say My.Module.Left and Prelude.Left |
2021-10-19 02:10:23 +0200 | <geekosaur> | (see Direction2D in xmonad) |
2021-10-19 02:11:09 +0200 | <monochrom> | zzz: Please don't conflate Haskell's poor execuse of record syntax with records (the real ones) :) |
2021-10-19 02:11:19 +0200 | Cajun | (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
2021-10-19 02:11:38 +0200 | <zzz> | :) |
2021-10-19 02:11:41 +0200 | <zzz> | give me a record |
2021-10-19 02:11:43 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: restarting) |
2021-10-19 02:11:49 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-10-19 02:12:08 +0200 | <monochrom> | Oh hell I missed a great pun opportunity. Let me fix it... |
2021-10-19 02:12:17 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb878946a34aec1faea1.dip0.t-ipconnect.de) |
2021-10-19 02:12:19 +0200 | <monochrom> | For the record, please don't conflate Haskell's poor execuse of record syntax with records (the real ones) :) |
2021-10-19 02:12:41 +0200 | <Axman6> | Not sure that pun works, but I'll allow it |
2021-10-19 02:14:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-19 02:15:03 +0200 | <zzz> | i'm still not sure of what you mean by "real" records |
2021-10-19 02:15:23 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-10-19 02:15:29 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb87414c380a9484df88.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 02:15:33 +0200 | <monochrom> | For example in SML, Pascal, C, ... basically every language except Haskell. |
2021-10-19 02:15:39 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:39a4:166a:24e9:f255) |
2021-10-19 02:18:01 +0200 | meer | (~delicacie@2601:6c4:4080:3f80:cc37:7f71:51d3:b41c) (Ping timeout: 245 seconds) |
2021-10-19 02:18:10 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-10-19 02:21:41 +0200 | fluffyballoon | (~user@131.93.208.196) (Remote host closed the connection) |
2021-10-19 02:24:03 +0200 | Cajun | (~Cajun@user/cajun) |
2021-10-19 02:26:36 +0200 | fluffyballoon | (~user@131.93.208.196) |
2021-10-19 02:27:33 +0200 | Cajun | (~Cajun@user/cajun) (Client Quit) |
2021-10-19 02:29:52 +0200 | Cajun | (~Cajun@user/cajun) |
2021-10-19 02:35:01 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) |
2021-10-19 02:40:12 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-19 02:41:33 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:110c:9227:cd24:5132) (Ping timeout: 258 seconds) |
2021-10-19 02:46:12 +0200 | <jollygood2> | there's records synax overhaul in ghc 9.2, which is still in alpha IIRC. RecordDotSyntax is one of them |
2021-10-19 02:46:12 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-19 02:46:34 +0200 | MQ-17J | (~MQ-17J@8.6.144.138) |
2021-10-19 02:47:03 +0200 | <jollygood2> | also DuplicateRecordFields |
2021-10-19 02:47:16 +0200 | <c_wraith> | DuplicateRecordFields has been around for a long time |
2021-10-19 02:47:26 +0200 | <c_wraith> | NoFieldSelectors is the interesting new one in 9.2 |
2021-10-19 02:47:40 +0200 | <jollygood2> | h yes, that one |
2021-10-19 02:47:58 +0200 | <zzz> | are lenses going to become obsolete? |
2021-10-19 02:48:14 +0200 | <c_wraith> | No, lenses are finally going to be strictly better than built-in tools |
2021-10-19 02:48:29 +0200 | <jollygood2> | no. from what I've read, they work fine with dot syntax. and do a lot more |
2021-10-19 02:48:29 +0200 | <zzz> | how so? |
2021-10-19 02:48:46 +0200 | <Axman6> | this is news to me too :o |
2021-10-19 02:49:13 +0200 | <kronicmage> | strictly better except for build times -_- |
2021-10-19 02:49:38 +0200 | <monochrom> | Um, why do I get the feeling that "lenses are finally better than built-in tools" means "built-in tools are finally getting worse"? :) |
2021-10-19 02:50:04 +0200 | <zzz> | that thought touched my mind |
2021-10-19 02:50:07 +0200 | <dsal> | build times are only slow if you're using TH. You could always hand-write your lenses. |
2021-10-19 02:50:25 +0200 | <jollygood2> | basically, instead of person personName (groupLeader group) we can use group.leader.name . and different records can also have .name etc fields |
2021-10-19 02:50:33 +0200 | <jollygood2> | pretty neat |
2021-10-19 02:50:44 +0200 | <dsal> | That's what I did in the project I got yelled at for using lenses -- just locally defined all the lenses where I needed them instead of making them global. |
2021-10-19 02:50:57 +0200 | <dsal> | I don't know much about RecordDotSyntax, but I don't think I like it. |
2021-10-19 02:51:00 +0200 | <c_wraith> | here: https://www.reddit.com/r/haskell/comments/mhzf9l/announce_ghc_921alpha1_now_available/gt3lexp/ |
2021-10-19 02:51:27 +0200 | <zzz> | i don't even like qualified dot syntax |
2021-10-19 02:51:33 +0200 | <zzz> | for the obvious reasons |
2021-10-19 02:52:09 +0200 | <c_wraith> | Man, I've been waiting on 9.2 for 6 months, according to reddit |
2021-10-19 02:52:18 +0200 | <zzz> | module dot syntax? i don't know what to call it |
2021-10-19 02:53:02 +0200 | <jollygood2> | aprox how far are we from stable 9.2? |
2021-10-19 02:57:31 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 252 seconds) |
2021-10-19 02:57:59 +0200 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 264 seconds) |
2021-10-19 02:58:15 +0200 | <dsal> | zzz: do you just not like dots? |
2021-10-19 02:58:23 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-10-19 02:58:26 +0200 | <dsal> | Or things that appear to mean different things. |
2021-10-19 02:58:35 +0200 | MQ-17J | (~MQ-17J@8.6.144.138) (Ping timeout: 264 seconds) |
2021-10-19 02:59:04 +0200 | <kronicmage> | i do wish keyboards had a \cdot key so we could differentiate composition . and record . |
2021-10-19 02:59:25 +0200 | <dsal> | My keyboard has that. |
2021-10-19 02:59:28 +0200 | <geekosaur> | · |
2021-10-19 02:59:34 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 258 seconds) |
2021-10-19 02:59:34 +0200 | <kronicmage> | damn |
2021-10-19 02:59:41 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-10-19 02:59:47 +0200 | <kronicmage> | now we just need unicode character extension to support that lol |
2021-10-19 02:59:48 +0200 | <dsal> | I use emacs. It has all the thigns. |
2021-10-19 03:00:01 +0200 | <dsal> | I literally just type "f \cdot g" and it shows up as "f · g" |
2021-10-19 03:00:08 +0200 | <geekosaur> | -XUnicodeSyntax? |
2021-10-19 03:00:39 +0200 | <jollygood2> | I think it is pretty uncommon to omit space when composing functions. |
2021-10-19 03:00:45 +0200 | <geekosaur> | hm, not even needed. (·) = (.) |
2021-10-19 03:01:12 +0200 | <jollygood2> | they could have used different character, but dot is such an ubiquitous syntax for field access across countless languages |
2021-10-19 03:01:36 +0200 | <dsal> | I like this example: sqr x = x × x |
2021-10-19 03:01:40 +0200 | <monochrom> | module Data·Function where f ∘ g = \x -> f (g x) -- >:) |
2021-10-19 03:02:01 +0200 | <awpr> | was that intentionally added to `base`, or was somebody just ASCII-art-ing a confused face and forgot the leading `--`? |
2021-10-19 03:02:03 +0200 | <kronicmage> | monochrom: that's sexy lmao |
2021-10-19 03:02:42 +0200 | <zzz> | dsal: things that appear to mean different things |
2021-10-19 03:03:07 +0200 | <dsal> | zzz: It kind of means the same thing in lens, but you get to think of it a very different way. |
2021-10-19 03:03:11 +0200 | lbseale_ | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-10-19 03:03:58 +0200 | <kronicmage> | i still think it's kind of weird that lenses compose backwards |
2021-10-19 03:04:34 +0200 | <dsal> | It's usually not weird in practice, but sometimes it is. |
2021-10-19 03:04:52 +0200 | acidjnk_new3 | (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
2021-10-19 03:05:31 +0200 | <c_wraith> | they compose forward when you realize a lens is being used to make things bigger :) |
2021-10-19 03:06:13 +0200 | <elcaro> | Raku uses '∘' for function composition. if you don't want to unicode, you use 'o' instead) |
2021-10-19 03:06:37 +0200 | <awpr> | I'm tempted to write yet another lens library with the type parameters in the opposite order just so people can't say they compose backwards |
2021-10-19 03:07:06 +0200 | <dsal> | Call it amateurfunctor-lenses |
2021-10-19 03:07:26 +0200 | <c_wraith> | ... how long have you been sitting on that name? |
2021-10-19 03:08:00 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb878946a34aec1faea1.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 03:08:26 +0200 | <monochrom> | SML uses o for function composition and declares it infix. |
2021-10-19 03:08:53 +0200 | <monochrom> | In general you can declare any alphabetical function name infix. |
2021-10-19 03:11:12 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 03:11:20 +0200 | <c_wraith> | that seems like something of a pain for parsing |
2021-10-19 03:11:36 +0200 | <monochrom> | Yeah |
2021-10-19 03:13:05 +0200 | MQ-17J | (~MQ-17J@8.6.144.172) |
2021-10-19 03:16:13 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 03:16:15 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 03:20:54 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-19 03:21:58 +0200 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 265 seconds) |
2021-10-19 03:22:04 +0200 | falafel | (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) |
2021-10-19 03:23:24 +0200 | <jollygood2> | this is dope. c{taken.year = y} -- nested update map (.taken.term) -- nested selector |
2021-10-19 03:23:46 +0200 | <monochrom> | :) |
2021-10-19 03:29:24 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 03:31:29 +0200 | PHO` | (~PHO@2405:6581:4ee0:2800:c84:d3ec:1ba2:843b) |
2021-10-19 03:33:18 +0200 | acidjnk_new3 | (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 03:33:37 +0200 | guydb89 | (~guy@98.40.140.117) (Quit: Lost terminal) |
2021-10-19 03:34:04 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Ping timeout: 258 seconds) |
2021-10-19 03:40:35 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds) |
2021-10-19 03:40:53 +0200 | <zzz> | dsal: "bats" would be a better name |
2021-10-19 03:42:11 +0200 | emf_ | (~emf@2620:10d:c090:400::5:a662) (Ping timeout: 245 seconds) |
2021-10-19 03:43:44 +0200 | cjb94216 | (~cjb@user/cjb) |
2021-10-19 03:44:18 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 03:45:01 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-10-19 03:45:52 +0200 | cjb | (~cjb@user/cjb) (Ping timeout: 260 seconds) |
2021-10-19 03:46:28 +0200 | cjb94216 | cjb |
2021-10-19 03:47:44 +0200 | <dsal> | zzz: heh. I just got that. |
2021-10-19 03:48:08 +0200 | jespada | (~jespada@2803:9800:9842:7a62:a1db:843b:ed19:cad6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-10-19 03:49:24 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 03:49:33 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-10-19 03:54:30 +0200 | boxscape_ | (~boxscape_@p54a3581e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-10-19 03:55:06 +0200 | falafel | (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) (Ping timeout: 245 seconds) |
2021-10-19 03:56:11 +0200 | xff0x | (~xff0x@2001:1a81:52fe:af00:73f9:c60:e593:d5a0) (Ping timeout: 264 seconds) |
2021-10-19 03:57:47 +0200 | xff0x | (~xff0x@2001:1a81:5338:8400:6a8d:1ab1:8641:5267) |
2021-10-19 04:09:57 +0200 | fluffyballoon | fluffyballon` |
2021-10-19 04:10:04 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 04:11:38 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 258 seconds) |
2021-10-19 04:17:00 +0200 | fluffyballon` | fluffyballoon |
2021-10-19 04:20:59 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-19 04:24:08 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2021-10-19 04:25:18 +0200 | slack1256 | (~slack1256@45.4.2.52) (Ping timeout: 260 seconds) |
2021-10-19 04:37:20 +0200 | argento | (~argent0@168-227-96-26.ptr.westnet.com.ar) (Quit: leaving) |
2021-10-19 04:41:55 +0200 | fluffyballoon | (~user@131.93.208.196) (Ping timeout: 258 seconds) |
2021-10-19 04:44:02 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-10-19 04:44:08 +0200 | td_ | (~td@muedsl-82-207-238-233.citykom.de) (Ping timeout: 265 seconds) |
2021-10-19 04:44:36 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-19 04:45:43 +0200 | td_ | (~td@muedsl-82-207-238-089.citykom.de) |
2021-10-19 04:46:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds) |
2021-10-19 04:47:59 +0200 | abrantesasf | (~abrantesa@187.36.170.211) (Remote host closed the connection) |
2021-10-19 04:48:16 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-10-19 04:52:32 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-10-19 04:55:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-043.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-19 05:01:37 +0200 | PHO` | (~PHO@2405:6581:4ee0:2800:c84:d3ec:1ba2:843b) (Quit: Leaving) |
2021-10-19 05:02:16 +0200 | PHO` | (~pho@akari.cielonegro.org) |
2021-10-19 05:06:53 +0200 | alx741 | (~alx741@186.178.108.68) (Quit: alx741) |
2021-10-19 05:18:56 +0200 | Axma85485 | (~Axman6@user/axman6) |
2021-10-19 05:18:59 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 264 seconds) |
2021-10-19 05:19:52 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-19 05:21:02 +0200 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 260 seconds) |
2021-10-19 05:26:09 +0200 | meer | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2021-10-19 05:26:13 +0200 | falafel | (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) |
2021-10-19 05:32:08 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-19 05:33:26 +0200 | meer | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 265 seconds) |
2021-10-19 05:43:03 +0200 | meer | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2021-10-19 05:44:37 +0200 | meer | Inst |
2021-10-19 05:45:30 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 05:45:31 +0200 | elvishjerricco | (sid237756@id-237756.helmsley.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-19 05:45:31 +0200 | Boarders | (sid425905@id-425905.lymington.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-19 05:45:31 +0200 | grfn | (sid449115@id-449115.helmsley.irccloud.com) (Ping timeout: 245 seconds) |
2021-10-19 05:46:19 +0200 | edmundnoble | (sid229620@id-229620.helmsley.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-19 05:46:42 +0200 | ehamberg | (sid18208@id-18208.hampstead.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-19 05:46:42 +0200 | sclv | (sid39734@haskell/developer/sclv) (Ping timeout: 258 seconds) |
2021-10-19 05:46:46 +0200 | tritlo | (sid58727@user/tritlo) (Ping timeout: 245 seconds) |
2021-10-19 05:46:46 +0200 | astra` | (sid289983@user/amish) (Ping timeout: 245 seconds) |
2021-10-19 05:47:05 +0200 | econo | (uid147250@user/econo) (Ping timeout: 258 seconds) |
2021-10-19 05:47:11 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Ping timeout: 264 seconds) |
2021-10-19 05:47:11 +0200 | dmj` | (sid72307@id-72307.hampstead.irccloud.com) (Ping timeout: 264 seconds) |
2021-10-19 05:47:28 +0200 | SrPx | (sid108780@id-108780.uxbridge.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-19 05:47:47 +0200 | etrepum | (sid763@id-763.uxbridge.irccloud.com) (Ping timeout: 264 seconds) |
2021-10-19 05:47:51 +0200 | SanchayanMaity | (sid478177@id-478177.hampstead.irccloud.com) (Ping timeout: 258 seconds) |
2021-10-19 05:48:01 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 245 seconds) |
2021-10-19 05:48:18 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-10-19 05:48:40 +0200 | edmundnoble | (sid229620@helmsley.irccloud.com) |
2021-10-19 05:49:26 +0200 | tritlo | (sid58727@user/tritlo) |
2021-10-19 05:49:27 +0200 | SrPx | (sid108780@id-108780.uxbridge.irccloud.com) |
2021-10-19 05:49:29 +0200 | ehamberg | (sid18208@id-18208.hampstead.irccloud.com) |
2021-10-19 05:49:29 +0200 | dmj` | (sid72307@id-72307.hampstead.irccloud.com) |
2021-10-19 05:49:30 +0200 | econo | (uid147250@user/econo) |
2021-10-19 05:49:32 +0200 | SanchayanMaity | (sid478177@hampstead.irccloud.com) |
2021-10-19 05:49:34 +0200 | astra` | (sid289983@user/amish) |
2021-10-19 05:49:45 +0200 | etrepum | (sid763@id-763.uxbridge.irccloud.com) |
2021-10-19 05:49:49 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) |
2021-10-19 05:50:11 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 264 seconds) |
2021-10-19 05:59:57 +0200 | grfn | (sid449115@id-449115.helmsley.irccloud.com) |
2021-10-19 05:59:57 +0200 | elvishjerricco | (sid237756@id-237756.helmsley.irccloud.com) |
2021-10-19 06:00:26 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 06:00:59 +0200 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-10-19 06:01:57 +0200 | sclv | (sid39734@haskell/developer/sclv) |
2021-10-19 06:02:04 +0200 | Boarders | (sid425905@id-425905.lymington.irccloud.com) |
2021-10-19 06:05:06 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 06:05:41 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2021-10-19 06:08:36 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2021-10-19 06:19:10 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-10-19 06:31:11 +0200 | phma | (~phma@host-67-44-209-44.hnremote.net) (Read error: Connection reset by peer) |
2021-10-19 06:31:36 +0200 | jeffz | (~user@lambda.xen.prgmr.com) |
2021-10-19 06:32:09 +0200 | phma | (~phma@host-67-44-208-9.hnremote.net) |
2021-10-19 06:35:07 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 06:35:20 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-19 06:35:20 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-19 06:35:20 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-19 06:39:23 +0200 | MQ-17J | (~MQ-17J@8.6.144.172) (Ping timeout: 264 seconds) |
2021-10-19 06:39:43 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 06:39:59 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
2021-10-19 06:40:37 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 06:40:59 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-10-19 06:43:52 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 06:44:47 +0200 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 264 seconds) |
2021-10-19 06:46:35 +0200 | rekahsoft | (~rekahsoft@52.129.35.150) (Ping timeout: 264 seconds) |
2021-10-19 06:53:59 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2021-10-19 06:54:02 +0200 | cjb | (~cjb@user/cjb) () |
2021-10-19 06:56:13 +0200 | Axma85485 | Axman6 |
2021-10-19 07:06:00 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 07:08:00 +0200 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2021-10-19 07:08:17 +0200 | coot | (~coot@37.30.48.91.nat.umts.dynamic.t-mobile.pl) |
2021-10-19 07:09:59 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-19 07:10:11 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 07:10:31 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Ping timeout: 252 seconds) |
2021-10-19 07:12:12 +0200 | zmt00 | (~zmt00@user/zmt00) |
2021-10-19 07:13:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-19 07:14:41 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 245 seconds) |
2021-10-19 07:15:15 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 07:15:23 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-19 07:18:14 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-19 07:26:25 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 07:30:47 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.123) |
2021-10-19 07:30:56 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 245 seconds) |
2021-10-19 07:33:53 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-10-19 07:34:42 +0200 | rembo10 | (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-19 07:35:45 +0200 | rembo10 | (~rembo10@remulis.com) |
2021-10-19 07:42:53 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 07:47:22 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 07:49:26 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.123) (Quit: mikoto-chan) |
2021-10-19 07:50:31 +0200 | falafel | (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) (Ping timeout: 245 seconds) |
2021-10-19 07:55:10 +0200 | _\_ | (~o@user/ding) (Read error: Connection reset by peer) |
2021-10-19 07:55:38 +0200 | _\_ | (~o@user/ding) |
2021-10-19 07:59:04 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-10-19 07:59:20 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-19 07:59:43 +0200 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2021-10-19 08:15:47 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 08:18:33 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Remote host closed the connection) |
2021-10-19 08:18:48 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 08:19:59 +0200 | _xor | (~xor@72.49.199.147) (Read error: Connection reset by peer) |
2021-10-19 08:20:31 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 245 seconds) |
2021-10-19 08:20:51 +0200 | pmk | (~user@2a02:587:9418:a234:40de:ca53:4e3:4a70) |
2021-10-19 08:20:52 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-10-19 08:21:59 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-10-19 08:24:25 +0200 | brainfreeze | (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection) |
2021-10-19 08:25:02 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-10-19 08:25:51 +0200 | _xor | (~xor@72.49.199.147) |
2021-10-19 08:26:23 +0200 | michalz | (~michalz@185.246.204.77) |
2021-10-19 08:26:50 +0200 | _xor | (~xor@72.49.199.147) (Read error: Connection reset by peer) |
2021-10-19 08:27:11 +0200 | _xor | (~xor@72.49.199.147) |
2021-10-19 08:28:37 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-10-19 08:34:15 +0200 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-19 08:36:22 +0200 | unmanbearpig | (~unmanbear@user/unmanbearpig) (Ping timeout: 260 seconds) |
2021-10-19 08:38:49 +0200 | p3n | (~p3n@217.198.124.246) |
2021-10-19 08:44:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 08:44:52 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-10-19 08:48:11 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-10-19 08:48:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-19 08:49:28 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-19 08:50:57 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2021-10-19 08:51:12 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-10-19 08:52:05 +0200 | Neuromancer | (~Neuromanc@user/neuromancer) (Ping timeout: 265 seconds) |
2021-10-19 08:52:40 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 08:56:28 +0200 | fendor | (~fendor@77.119.169.61.wireless.dyn.drei.com) |
2021-10-19 08:57:46 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 08:59:04 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:62eb:f958:5dc3:c1b9) |
2021-10-19 08:59:48 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-19 09:06:42 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-10-19 09:12:03 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-10-19 09:12:53 +0200 | fendor | (~fendor@77.119.169.61.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-19 09:13:29 +0200 | ubert | (~Thunderbi@178.115.56.221.wireless.dyn.drei.com) |
2021-10-19 09:18:40 +0200 | Neuromancer | (~Neuromanc@user/neuromancer) |
2021-10-19 09:19:03 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) |
2021-10-19 09:19:29 +0200 | Guest4852 | (~Guest48@82.40.121.143) |
2021-10-19 09:21:00 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds) |
2021-10-19 09:21:05 +0200 | <jollygood2> | hi. what hash table should I use? I have perfect hash, several tens of thousands of elements, and look up will be used in a very tight loop |
2021-10-19 09:21:32 +0200 | <jollygood2> | I don't need mutability |
2021-10-19 09:21:34 +0200 | ub | (~Thunderbi@178.115.56.221.wireless.dyn.drei.com) |
2021-10-19 09:23:53 +0200 | nschoe | (~quassel@178.251.84.79) |
2021-10-19 09:24:22 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 09:24:35 +0200 | nschoe | (~quassel@178.251.84.79) (Client Quit) |
2021-10-19 09:28:54 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-10-19 09:30:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 09:30:29 +0200 | Cajun | (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
2021-10-19 09:31:48 +0200 | Inst_ | (~Inst@2601:6c4:4080:3f80:6134:7ceb:5f94:e843) |
2021-10-19 09:32:06 +0200 | <Guest4852> | Why does `f :: Either Bool Void -> Char; f (Left True) = 'T'; f (Left False) = 'F'` give a non-exhaustive pattern match error? It covers every possible pattern. |
2021-10-19 09:33:54 +0200 | <Inst_> | so |
2021-10-19 09:34:09 +0200 | chele | (~chele@user/chele) |
2021-10-19 09:39:06 +0200 | <pavonia> | Guest4852: What about Right? |
2021-10-19 09:40:14 +0200 | <Guest4852> | Right what? There's nothing that can be inside it. |
2021-10-19 09:40:30 +0200 | <pavonia> | Right undefined |
2021-10-19 09:41:19 +0200 | <Guest4852> | Oh. Good point. |
2021-10-19 09:44:10 +0200 | <lortabac> | Guest4852: that's what 'absurd' is for |
2021-10-19 09:44:31 +0200 | retroid_ | (~retro@2e41e9c8.skybroadband.com) (Ping timeout: 252 seconds) |
2021-10-19 09:44:41 +0200 | <lortabac> | f (Right x) = absurd x |
2021-10-19 09:45:23 +0200 | retroid_ | (~retro@2e41e9c8.skybroadband.com) |
2021-10-19 09:47:13 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 09:50:57 +0200 | <Guest4852> | I was hoping to avoid the extra code. But I guess I can't. Thanks. |
2021-10-19 09:51:39 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-10-19 09:55:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:39a4:166a:24e9:f255) (Remote host closed the connection) |
2021-10-19 09:56:14 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-19 09:57:23 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-10-19 10:00:42 +0200 | edwtjo_ | edwtjo |
2021-10-19 10:04:52 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 252 seconds) |
2021-10-19 10:05:24 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-10-19 10:06:13 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-19 10:08:33 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 10:09:06 +0200 | kuribas | (~user@ptr-25vy0i72e2u2h548zvl.18120a2.ip6.access.telenet.be) |
2021-10-19 10:09:06 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
2021-10-19 10:11:02 +0200 | mei6 | (~mei@user/mei) |
2021-10-19 10:13:36 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Remote host closed the connection) |
2021-10-19 10:14:35 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-10-19 10:14:39 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
2021-10-19 10:14:53 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 10:17:29 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-19 10:17:54 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-19 10:18:08 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-10-19 10:18:14 +0200 | stengah | (~stengah@user/stengah) |
2021-10-19 10:19:31 +0200 | ubert1 | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) |
2021-10-19 10:19:32 +0200 | ub1 | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) |
2021-10-19 10:19:35 +0200 | ub | (~Thunderbi@178.115.56.221.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
2021-10-19 10:19:35 +0200 | ubert | (~Thunderbi@178.115.56.221.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
2021-10-19 10:19:35 +0200 | ub1 | ubert |
2021-10-19 10:19:40 +0200 | Guest4852 | (~Guest48@82.40.121.143) (Quit: Client closed) |
2021-10-19 10:20:34 +0200 | <fgaz> | I have a question about laziness |
2021-10-19 10:20:34 +0200 | <fgaz> | suppose there is a `data MapWrap a b = MapWrap !(Map a b)` |
2021-10-19 10:20:36 +0200 | <fgaz> | and I'm using the strict Map interface |
2021-10-19 10:20:40 +0200 | <fgaz> | and I define `f x (MapWrap m) = insert x m` |
2021-10-19 10:20:44 +0200 | <fgaz> | am I right that it doesn't make a difference whether i bang x or not, since it will be evaluated anyway due to the fact that MapWrap's field is strict and so is insert? |
2021-10-19 10:21:03 +0200 | unmanbearpig | (~unmanbear@user/unmanbearpig) |
2021-10-19 10:22:00 +0200 | <fgaz> | s/x/k v/ |
2021-10-19 10:28:05 +0200 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Read error: Connection reset by peer) |
2021-10-19 10:29:29 +0200 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-10-19 10:30:38 +0200 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2021-10-19 10:31:17 +0200 | zaquest | (~notzaques@5.128.210.178) |
2021-10-19 10:33:04 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Remote host closed the connection) |
2021-10-19 10:34:10 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-10-19 10:36:40 +0200 | pavonia | (~user@user/siracusa) |
2021-10-19 10:37:35 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Ping timeout: 264 seconds) |
2021-10-19 10:40:49 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-19 10:43:24 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c::3d56) |
2021-10-19 10:46:58 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-10-19 10:47:10 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-10-19 10:50:39 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-19 10:55:30 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb87055cde397d58ef4b.dip0.t-ipconnect.de) |
2021-10-19 10:55:33 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 10:56:28 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-19 10:57:41 +0200 | aegon | (~mike@174.127.249.180) (Remote host closed the connection) |
2021-10-19 10:59:41 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Ping timeout: 245 seconds) |
2021-10-19 11:02:04 +0200 | <tomsmeding> | fgaz: if s/i bang x/i bang v/ then yes; the k is always evaluated anyway because otherwise map doesn't know where to insert it |
2021-10-19 11:02:21 +0200 | <tomsmeding> | also you should return MapWrap (insert k v m), not just 'insert k v m' ;) |
2021-10-19 11:03:13 +0200 | <tomsmeding> | with regards to strict/lazy map, be aware that while the functions in Data.Map.Strict ensure evaluation of the inserted values, the Map type is the same and hence the instances (in particular Functor) are lazy |
2021-10-19 11:04:14 +0200 | Inst_ | (~Inst@2601:6c4:4080:3f80:6134:7ceb:5f94:e843) (Read error: Connection reset by peer) |
2021-10-19 11:04:33 +0200 | Inst_ | (~Inst@2601:6c4:4080:3f80:6134:7ceb:5f94:e843) |
2021-10-19 11:08:48 +0200 | <fgaz> | yeah there's a big warning at the top of the module |
2021-10-19 11:09:47 +0200 | <fgaz> | i wonder if there are plans to fix that |
2021-10-19 11:09:58 +0200 | <fgaz> | thanks tomsmeding |
2021-10-19 11:10:05 +0200 | <fgaz> | <tomsmeding> "also you should return MapWrap..." <- yes, that's what i meant :) |
2021-10-19 11:11:08 +0200 | <tomsmeding> | fgaz: https://github.com/haskell/containers/issues/74 |
2021-10-19 11:12:51 +0200 | <fgaz> | i see.. edward does have a point |
2021-10-19 11:13:46 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb87055cde397d58ef4b.dip0.t-ipconnect.de) |
2021-10-19 11:17:08 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb87055cde397d58ef4b.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 11:21:15 +0200 | stengah | (~stengah@user/stengah) (Quit: stengah) |
2021-10-19 11:21:52 +0200 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-10-19 11:22:09 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-19 11:24:48 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 11:27:57 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2021-10-19 11:28:40 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-10-19 11:33:00 +0200 | __monty__ | (~toonn@user/toonn) |
2021-10-19 11:36:16 +0200 | ArtVandelayer | (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) |
2021-10-19 11:37:39 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 11:42:13 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 11:52:25 +0200 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-10-19 11:53:22 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-10-19 12:00:26 +0200 | <dminuoso> | Im looking for some toolkits to derive some interrogative console interfaces from. wizards seems like a good starter, is there something similar that allows for tab completion as well? |
2021-10-19 12:01:46 +0200 | sayola | (~vekto@dslb-002-201-085-156.002.201.pools.vodafone-ip.de) |
2021-10-19 12:01:56 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-10-19 12:10:40 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 12:10:59 +0200 | <ncopa> | hi. I'm trying to upgrade ghc to 9.0.1 for alpine, but I am struggling with updating cabal-install. I have burned too many days on this already and this is blocking the alpine 3.15 release. My question is: does it really make sense to ship cabal and haskell with a distro in the first place? |
2021-10-19 12:11:12 +0200 | <ncopa> | or would it be ok to remove those packages |
2021-10-19 12:15:59 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 264 seconds) |
2021-10-19 12:18:22 +0200 | aplainze1akind | aplainzetakind |
2021-10-19 12:20:21 +0200 | <dminuoso> | Mmm, maybe haskeline is waht I want |
2021-10-19 12:30:16 +0200 | <Hecate> | dminuoso: seems like it yeah |
2021-10-19 12:31:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-19 12:32:00 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 12:37:11 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-10-19 12:37:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 12:40:24 +0200 | <dminuoso> | Ohh hah, wizards and haskeline seem to go together. |
2021-10-19 12:43:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-10-19 12:43:49 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 12:45:51 +0200 | rkrishnan | (~user@2402:e280:215c:2cd:1c4a:bf17:a651:381c) |
2021-10-19 12:46:25 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 12:47:03 +0200 | stengah | (~stengah@user/stengah) |
2021-10-19 12:47:11 +0200 | rond_ | (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
2021-10-19 12:47:28 +0200 | <stengah> | hey! so I'm trying to understand monads |
2021-10-19 12:47:35 +0200 | <stengah> | and just had a thought |
2021-10-19 12:47:44 +0200 | <stengah> | (>>= |
2021-10-19 12:47:53 +0200 | <stengah> | >>= |
2021-10-19 12:48:06 +0200 | <stengah> | is like a continuation |
2021-10-19 12:48:23 +0200 | <stengah> | is there anything wrong with this thinking? |
2021-10-19 12:48:45 +0200 | <dminuoso> | stengah: For the specific IO instance that seems like one possible approach. |
2021-10-19 12:49:05 +0200 | <Franciman> | stengah: I also like to think about it as «effectful let» |
2021-10-19 12:49:13 +0200 | <dminuoso> | stengah: The thing is, Monad doesnt have an instrinsitic meaning where you can phrase: (>>=) is <insert something> |
2021-10-19 12:49:13 +0200 | <Franciman> | it binds a variable to the result of an effectufl operation |
2021-10-19 12:49:23 +0200 | <Franciman> | it's like you did: |
2021-10-19 12:49:35 +0200 | <Franciman> | «let» x = action |
2021-10-19 12:49:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-19 12:49:38 +0200 | <dminuoso> | stengah: All explanations you likely see are just from people who have built up an intuition that is developed by practicing many instances. |
2021-10-19 12:49:40 +0200 | <Franciman> | in f x |
2021-10-19 12:49:42 +0200 | <stengah> | a>>=f means after getting a do something (described by f) |
2021-10-19 12:49:43 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 12:50:15 +0200 | <dminuoso> | stengah: For IO this is a rough (inaccurate) description, but it should work as an initial step. |
2021-10-19 12:50:38 +0200 | <stengah> | ok |
2021-10-19 12:50:46 +0200 | <dminuoso> | stengah: The key thing to realize is that Monad is just a typeclass/interface, so >>= means different things for different instances. |
2021-10-19 12:50:52 +0200 | <dminuoso> | But that's perfectly okay |
2021-10-19 12:51:05 +0200 | <dminuoso> | stengah: So let me rephrase your statement a little bit: |
2021-10-19 12:51:14 +0200 | <dminuoso> | >>= for IO is (sort of) like a continuation |
2021-10-19 12:51:21 +0200 | <dminuoso> | The key addition is "for IO" |
2021-10-19 12:51:31 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 12:51:56 +0200 | <dminuoso> | Go with that mind model until you encounter a different instance. At that point, you can gain some intution what >>= means for that type. |
2021-10-19 12:52:08 +0200 | <kuribas> | there's a interesting link between monads and continations. |
2021-10-19 12:52:16 +0200 | <dminuoso> | Yeah which is probably not helpful. |
2021-10-19 12:52:40 +0200 | <kuribas> | well, a monad is not a continuation, if that is what you mean. |
2021-10-19 12:52:42 +0200 | <dminuoso> | stengah: And you repeat that process, and without extra effort you will overtime begin to understand what monad abstracts over. |
2021-10-19 12:52:51 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2021-10-19 12:52:54 +0200 | <kuribas> | but they are likely equally powerful. |
2021-10-19 12:53:39 +0200 | <stengah> | so I should just look at many instances of monad in the wild |
2021-10-19 12:53:50 +0200 | <kuribas> | stengah: yes |
2021-10-19 12:54:02 +0200 | <dminuoso> | stengah: Personally Id say no. |
2021-10-19 12:54:07 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-10-19 12:54:08 +0200 | <dminuoso> | stengah: Let this occur on its own. |
2021-10-19 12:54:20 +0200 | <dminuoso> | Forcibly understanding what Monad is about is not particularly helpful when learning Haskell. |
2021-10-19 12:54:32 +0200 | <dminuoso> | So if you understand what >>= does for IO, that's great. Keep it at that. |
2021-10-19 12:54:41 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 12:54:59 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-19 12:55:00 +0200 | <dminuoso> | Then later, you might discover that there is Monad Maybe, so >>= has some different behavior for that. So just explore it then |
2021-10-19 12:55:24 +0200 | <dminuoso> | Because really, almost every instance is ridiculously simple to understand |
2021-10-19 12:55:38 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 12:55:38 +0200 | stengah | initiates path to monad enlightenment |
2021-10-19 12:55:56 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 12:56:04 +0200 | rkrishnan | (~user@2402:e280:215c:2cd:1c4a:bf17:a651:381c) (Remote host closed the connection) |
2021-10-19 12:56:47 +0200 | <dminuoso> | stengah: My key realization was, when something is written polymorphically over monad - that its its type signature mentions something like `Monad m => ...`, it just means *you* get to pick some arbitrary m as long as it has an instance Monad. So you can pick `m ~ IO`, for instance. |
2021-10-19 12:57:05 +0200 | <dminuoso> | So you dont necessarily must understand what Monad is about, you just pick some type you like. |
2021-10-19 12:57:20 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) (Client Quit) |
2021-10-19 12:57:31 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 12:57:34 +0200 | <stengah> | hmmm |
2021-10-19 12:57:56 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 12:58:41 +0200 | <dminuoso> | So for `IO` it's a very natural thing to want and sequence two actions in such a way, that one depends on the other. So for example you want to fetch some data from a database, and use the result to do something else. |
2021-10-19 12:59:03 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 12:59:05 +0200 | <dminuoso> | We could have simply made a function called `then :: IO a -> (a -> IO b) -> IO b` that does this. |
2021-10-19 12:59:24 +0200 | <dminuoso> | And in all likelihood, if users got presented with `then` it would have just taken you 2 minutes to understand what this is and how to use it |
2021-10-19 12:59:29 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 13:00:04 +0200 | <dminuoso> | There's nothing magical about this, nothing mathematical, nothing overly complicated. |
2021-10-19 13:00:51 +0200 | alx741 | (~alx741@186.178.108.68) |
2021-10-19 13:00:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-19 13:00:59 +0200 | <dminuoso> | And in fact: |
2021-10-19 13:01:12 +0200 | <dminuoso> | We put it into a typeclass called Monad, and `then` is just named (>>=) |
2021-10-19 13:01:16 +0200 | <dminuoso> | % :t (>>=) |
2021-10-19 13:01:17 +0200 | <yahb> | dminuoso: Monad m => m a -> (a -> m b) -> m b |
2021-10-19 13:01:44 +0200 | <lortabac> | this function exists, it's just not in Prelude |
2021-10-19 13:01:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 13:01:58 +0200 | <dminuoso> | stengah: ^- recall what I said above? If it mentions `Monad m => ...` it means *you* get to decide what `m` is, as long as there is an `instance Monad m`, and then this does whatever the implementor wrote for that. |
2021-10-19 13:02:09 +0200 | nehsou^ | (~nehsou@70.166.66.234) (Remote host closed the connection) |
2021-10-19 13:02:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Ping timeout: 264 seconds) |
2021-10-19 13:02:17 +0200 | <dminuoso> | So if you pick IO, it becomes this boring and simple `then` |
2021-10-19 13:02:21 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-10-19 13:02:37 +0200 | rkrishnan | (~user@2402:e280:215c:2cd:1c4a:bf17:a651:381c) |
2021-10-19 13:02:59 +0200 | <lortabac> | in GHC.Base there are bindIO, thenIO and returnIO |
2021-10-19 13:03:10 +0200 | <dminuoso> | lortabac: Ah interesting. :) |
2021-10-19 13:03:20 +0200 | <dminuoso> | % import GHC.Base |
2021-10-19 13:03:21 +0200 | <yahb> | dminuoso: |
2021-10-19 13:03:22 +0200 | <dminuoso> | % :t thenIO |
2021-10-19 13:03:22 +0200 | <yahb> | dminuoso: IO a -> IO b -> IO b |
2021-10-19 13:03:26 +0200 | <dminuoso> | % :t bindIO |
2021-10-19 13:03:26 +0200 | <yahb> | dminuoso: IO a -> (a -> IO b) -> IO b |
2021-10-19 13:04:53 +0200 | <dminuoso> | lortabac: Maybe this whole Monad confusion would have never happened, it you'd start with these primitives and properly educate about adhoc polymorphism - and after that simply say that `instance Monad IO where (>>=) = bindIO; return = returnIO` |
2021-10-19 13:04:55 +0200 | <stengah> | nice |
2021-10-19 13:05:14 +0200 | dminuoso | wonders |
2021-10-19 13:05:15 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-10-19 13:05:38 +0200 | <c_wraith> | it's really hard to make people stop believing there's a deep meaning they don't understand |
2021-10-19 13:05:52 +0200 | <lortabac> | dminuoso: personally I would have exposed these functions in Prelude |
2021-10-19 13:06:11 +0200 | Cajun | (~Cajun@user/cajun) |
2021-10-19 13:06:12 +0200 | <lortabac> | no need to use Monad until you need to generalize over all monads |
2021-10-19 13:06:24 +0200 | <dminuoso> | Indeed! |
2021-10-19 13:06:36 +0200 | <dminuoso> | Could have had mapMaybe, concatMap, bindIO |
2021-10-19 13:06:37 +0200 | <lortabac> | maybe it's for the do notation |
2021-10-19 13:06:55 +0200 | <dminuoso> | lortabac: there's a pretty nifty formatting where you can avoid the do notation |
2021-10-19 13:06:56 +0200 | <lortabac> | you can't have do notation with the monomorphic functions |
2021-10-19 13:07:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-19 13:07:27 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 13:07:55 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-19 13:07:56 +0200 | <dminuoso> | lortabac: https://gist.github.com/dminuoso/16bd907d520325722cfcf1f148395814 |
2021-10-19 13:07:57 +0200 | <dminuoso> | This gets close |
2021-10-19 13:08:09 +0200 | <dminuoso> | So as long as you use a dedicated monomorphized operator variant of bindIO and thenIO... |
2021-10-19 13:08:47 +0200 | <lortabac> | nice, but I have to say it's less readable than do notation |
2021-10-19 13:09:03 +0200 | <dminuoso> | Which could be a good motivation to introduce do-notation later on. |
2021-10-19 13:09:15 +0200 | <lortabac> | yes |
2021-10-19 13:09:40 +0200 | <dminuoso> | And actually, you can use do-notation with RebindableSyntax. |
2021-10-19 13:09:41 +0200 | <dminuoso> | :p |
2021-10-19 13:09:56 +0200 | <lortabac> | also (not useful for beginners) IO itself is exposed in GHC.Types |
2021-10-19 13:11:37 +0200 | <dminuoso> | c_wraith: I guess so. Urban myths are particularly hard to get rid of. |
2021-10-19 13:12:25 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-10-19 13:12:27 +0200 | <c_wraith> | it's sort of like believing in a programming illuminati. They're the ones holding the true secret meaning of "monad" |
2021-10-19 13:12:33 +0200 | <lortabac> | in one occasion it allowed me to recreate a custom "bind" function that works with my own types |
2021-10-19 13:13:08 +0200 | <lortabac> | that's a rare use case, but it's just to show that IO is not as special as you might think initially |
2021-10-19 13:13:59 +0200 | <stengah> | dminuoso: I'll meditate on what you said. |
2021-10-19 13:14:01 +0200 | <stengah> | ty |
2021-10-19 13:14:40 +0200 | mbuf | (~Shakthi@27.58.140.141) |
2021-10-19 13:14:53 +0200 | hiruji` | (~hiruji@2606:6080:1002:8:3285:30e:de43:8809) |
2021-10-19 13:15:58 +0200 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 258 seconds) |
2021-10-19 13:19:10 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 13:19:31 +0200 | <jneira[m]> | <ncopa> "hi. I'm trying to upgrade ghc to..." <- well several linux distros does it, but it is not a good argument ;-) |
2021-10-19 13:20:05 +0200 | <jneira[m]> | otoh we also have ghcup nowadays and it is usually recommended to install the haskell toolchain |
2021-10-19 13:20:43 +0200 | <jneira[m]> | do you have some stats of its actual real use? |
2021-10-19 13:20:51 +0200 | <ncopa> | thats why i ask, since the recommended way is normally not to use the distro package |
2021-10-19 13:21:14 +0200 | <ncopa> | well, we have at least two relatively important packages using it: shellcheck and pandoc |
2021-10-19 13:21:36 +0200 | <ncopa> | unfortunately we have only ghc for x86_64 and it is a pain to bootstrap for new architectures |
2021-10-19 13:22:35 +0200 | <ncopa> | we use shellcheck for our CI, and i dont think we want install shellcheck with ghcup |
2021-10-19 13:22:55 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-10-19 13:23:13 +0200 | <ncopa> | so i guess i will have to spend another few days to fix the ghc distro package |
2021-10-19 13:23:55 +0200 | <jneira[m]> | hmm you did mention cabal before |
2021-10-19 13:24:57 +0200 | <dminuoso> | lortabac: Yeah what can go wrong with poking in the internals of IO. See top comment https://web.archive.org/web/20200111052206/https://www.reddit.com/r/haskell/comments/2cbgpz/flee_t… |
2021-10-19 13:24:59 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 264 seconds) |
2021-10-19 13:25:21 +0200 | <jneira[m]> | you could open an issue in the cabal repo about, are you using https://github.com/haskell/cabal/tree/master/bootstrap? |
2021-10-19 13:27:08 +0200 | <merijn> | ncopa: You can just install the bindists directly? |
2021-10-19 13:27:16 +0200 | <merijn> | ncopa: That's what I've been doing for years |
2021-10-19 13:27:58 +0200 | <merijn> | otoh, that's basically what ghcup does for you :p |
2021-10-19 13:28:47 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-19 13:29:16 +0200 | <lortabac> | dminuoso: haha, I swear that in that particular case it was safe (and I didn't have any other option) |
2021-10-19 13:31:46 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
2021-10-19 13:32:55 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-19 13:36:42 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-19 13:36:47 +0200 | <dminuoso> | lortabac: The times I thought "Oh now this unsafePerformIO is really safe", and got bitten back mysterious ways... :p |
2021-10-19 13:36:58 +0200 | <lortabac> | :D |
2021-10-19 13:37:14 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 13:37:22 +0200 | <unit73e> | yeah I haven't used xmonad for a while. Maybe I should get back since I know haskell a lot more now. I'm using i3wm instead. |
2021-10-19 13:37:51 +0200 | <unit73e> | xmonad is more configurable |
2021-10-19 13:37:56 +0200 | <merijn> | I mean |
2021-10-19 13:38:05 +0200 | <merijn> | The real insight is that xmonad isn't a window manager |
2021-10-19 13:38:16 +0200 | <merijn> | It's a library/DSL for writing custom window managers :p |
2021-10-19 13:38:24 +0200 | <dminuoso> | That's not really correct |
2021-10-19 13:38:33 +0200 | <dminuoso> | xmonad comes with plenty defaults that make it a proper window manager |
2021-10-19 13:38:47 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 13:39:17 +0200 | <unit73e> | I still get what merijn meant. it's just vim/emacs aren't editors, they're DSL for writing custom editors |
2021-10-19 13:39:24 +0200 | <unit73e> | but both are editors |
2021-10-19 13:39:34 +0200 | <merijn> | tbh, I kinda disagree on vim, there, tbh |
2021-10-19 13:39:51 +0200 | <unit73e> | there was that haskell one |
2021-10-19 13:39:56 +0200 | <dminuoso> | In case of emacs its sort of wrong too. |
2021-10-19 13:40:16 +0200 | <unit73e> | both are sort of wrong but I think you get the point |
2021-10-19 13:40:21 +0200 | <dminuoso> | The C core is essentially a buffer framework, but emacs comes with plenty of elisp making it an editor out of the box. |
2021-10-19 13:41:03 +0200 | <unit73e> | it was this guy here: https://yi-editor.github.io/ |
2021-10-19 13:41:08 +0200 | <dminuoso> | And Id consider the elisp code to be part of emacs. |
2021-10-19 13:41:14 +0200 | <unit73e> | looks dead |
2021-10-19 13:41:39 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 13:41:48 +0200 | <geekosaur> | yeh, every so often someoine picks it up, hacks on it for a few months, and gives up |
2021-10-19 13:42:15 +0200 | <unit73e> | hum, it looked like a nice project |
2021-10-19 13:42:25 +0200 | <geekosaur> | mostly because everyone who tries wants to turn it into a full-fledged IDE instead of just an editor. it's already pretty usable just as an editor |
2021-10-19 13:42:42 +0200 | <merijn> | Custom editors are like people's "dream game" |
2021-10-19 13:42:52 +0200 | <merijn> | More fun in theory than in practice :p |
2021-10-19 13:43:01 +0200 | <unit73e> | doesn't language server solve that problem? |
2021-10-19 13:43:03 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-19 13:43:06 +0200 | <unit73e> | of being an "IDE" |
2021-10-19 13:43:07 +0200 | <dminuoso> | lortabac: My favourite was using `D { ..., someRef = unsafePerformIO (newIORef Nothing) }` inside a traversal. Turns out that GHC let-floated this ioref out, aliasing some hundred thousand IORefs in a tree to a single shared mutable buffer. |
2021-10-19 13:43:15 +0200 | <dminuoso> | It looked so innocent... |
2021-10-19 13:43:17 +0200 | <geekosaur> | sure, but HLS onlyt sprang into existence a year ago |
2021-10-19 13:43:49 +0200 | <unit73e> | right. well yi just has to support that. language server is one of the few things microsoft did right lol |
2021-10-19 13:45:02 +0200 | <unit73e> | vscode is kind of cheesy though |
2021-10-19 13:45:16 +0200 | <unit73e> | it's okayish but kind of quirky |
2021-10-19 13:45:45 +0200 | <unit73e> | I just use neovim |
2021-10-19 13:47:35 +0200 | <Cajun> | in what way is vscode kinda quirky? it feels pretty solid, and its much easier to tell someone new to the language to use vscode than vim, especially when they are accustomed to IDEs |
2021-10-19 13:47:48 +0200 | <ncopa> | merijn: i guess I can install the bindists directly, but that cannot be used as dependencies for any other alpine packages |
2021-10-19 13:47:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-10-19 13:48:14 +0200 | <ncopa> | basically, what i wonder is if i can remove the ghc package and cabal package and let the users use the bindists directly |
2021-10-19 13:48:20 +0200 | <merijn> | ncopa: True, but why would GHC be a dependency of a package you build? |
2021-10-19 13:48:36 +0200 | <merijn> | ncopa: Bindists don't come with cabal, but other than that, yes |
2021-10-19 13:48:52 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@2.95.44.252) (Read error: Connection reset by peer) |
2021-10-19 13:49:10 +0200 | <ncopa> | so i dont need ghc to build shellcheck or pandoc? |
2021-10-19 13:49:31 +0200 | <merijn> | ncopa: I work a lot on university/research cluster machines where I can't use the distro package manager ('cause no root) and just dumping the bindist in my homedir is fine |
2021-10-19 13:49:43 +0200 | <merijn> | ncopa: You need it to build those, but not to *use* them |
2021-10-19 13:50:07 +0200 | <merijn> | ncopa: Unless you're saying alpine packages require installing build dependencies of packages to use those packages? |
2021-10-19 13:51:09 +0200 | <ncopa> | well, alpine normally build the binaries from source and provides the binaries as distro packages so distro package manager can use the as dependencies for other distro packages |
2021-10-19 13:51:49 +0200 | <merijn> | ncopa: Right, but the shellcheck/pandoc binaries don't need GHC or cabal installed |
2021-10-19 13:51:55 +0200 | ubert2 | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) |
2021-10-19 13:52:07 +0200 | <ncopa> | correct. not when they are built |
2021-10-19 13:52:28 +0200 | <unit73e> | Cajun, it's definitely easier to begin but I got into a lot of weirdness I can't really remember right now |
2021-10-19 13:52:38 +0200 | <ncopa> | how do i install the shellcheck precompiled binary on alpine? |
2021-10-19 13:52:43 +0200 | <unit73e> | one had to do with git features |
2021-10-19 13:53:10 +0200 | <unit73e> | still, better than the other GUI only editors |
2021-10-19 13:53:22 +0200 | <unit73e> | imo |
2021-10-19 13:53:32 +0200 | ubert1 | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-10-19 13:53:39 +0200 | phma | (~phma@host-67-44-208-9.hnremote.net) (Read error: Connection reset by peer) |
2021-10-19 13:54:39 +0200 | phma | (~phma@host-67-44-209-75.hnremote.net) |
2021-10-19 13:55:47 +0200 | <ncopa> | ok the precompiled binary actually works. https://github.com/koalaman/shellcheck/releases |
2021-10-19 13:55:59 +0200 | <ncopa> | maybe i can kick ghc out of alpine after all |
2021-10-19 13:59:17 +0200 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
2021-10-19 13:59:54 +0200 | <merijn> | ncopa: I mean, GHC uses static linking (for haskell libraries, anwyay) by default. So if you don't have crazy external dependencies the only thing most Haskell binaries depend on is libc |
2021-10-19 14:01:10 +0200 | amk | (~amk@109.255.169.126) (Remote host closed the connection) |
2021-10-19 14:02:12 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-10-19 14:02:18 +0200 | amk | (~amk@109.255.169.126) |
2021-10-19 14:03:02 +0200 | <ncopa> | alpine linux uses musl libc so normally a rebuild is needed for precompiled things that links to libc.so.6 |
2021-10-19 14:03:34 +0200 | <merijn> | ncopa: Yes, but if the binary is built on alpine it will just statically link musl |
2021-10-19 14:03:51 +0200 | <merijn> | (or dynamically, dunno what the default is) |
2021-10-19 14:04:00 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) |
2021-10-19 14:04:16 +0200 | <ncopa> | hum... this is very tempting |
2021-10-19 14:04:38 +0200 | <ncopa> | im pretty sure i will get a handful angry users if i remove ghc package |
2021-10-19 14:04:56 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-19 14:05:03 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) |
2021-10-19 14:05:23 +0200 | <ncopa> | but i'll just point them to the "recommended" way to install and manage and keep the haskell stuff up dated |
2021-10-19 14:05:37 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-10-19 14:05:43 +0200 | <ncopa> | would simplify things |
2021-10-19 14:06:10 +0200 | <merijn> | ncopa: Basically, I feel that if installing, say, vim doesn't pull in gcc/clang on a distro, then shellcheck/pandoc shouldn't pull in GHC |
2021-10-19 14:06:23 +0200 | <ncopa> | oh ofcourse not |
2021-10-19 14:06:36 +0200 | <ncopa> | apk add vim does of course not install gcc |
2021-10-19 14:06:44 +0200 | <ncopa> | and apk add shellcheck does not pull in ghc |
2021-10-19 14:06:54 +0200 | <ncopa> | the problem is that we need those at build time |
2021-10-19 14:07:14 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-19 14:07:14 +0200 | <ncopa> | we cannot provide andy vim package without having a gcc compiler. nore can we build any kernel or anything else |
2021-10-19 14:08:06 +0200 | <ncopa> | what im saying is that we need a ghc package to be able to build other packages that are written in haskell |
2021-10-19 14:09:11 +0200 | <ncopa> | but if we can say: alpine does not use haskell (no shellcheck, no pandoc etc) then we can remove ghc package |
2021-10-19 14:09:57 +0200 | <ncopa> | but that also means that we cannot provide any packages for anything in the (build time) dependency chain |
2021-10-19 14:11:41 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-19 14:13:11 +0200 | <merijn> | Does the alpine package infrastructure not support separate build and runtime dependencies? |
2021-10-19 14:13:13 +0200 | mei6 | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-10-19 14:13:24 +0200 | <ncopa> | nope |
2021-10-19 14:13:34 +0200 | <merijn> | Well, RIP |
2021-10-19 14:13:43 +0200 | <ncopa> | alpine is very small and simple |
2021-10-19 14:13:58 +0200 | <ncopa> | well |
2021-10-19 14:14:00 +0200 | <ncopa> | sorry |
2021-10-19 14:14:11 +0200 | <ncopa> | it does support separate build and runtime deps. i misread |
2021-10-19 14:19:35 +0200 | Guest|27 | (~Guest|27@185.207.140.160) |
2021-10-19 14:20:11 +0200 | Guest|27 | (~Guest|27@185.207.140.160) (Client Quit) |
2021-10-19 14:20:22 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds) |
2021-10-19 14:21:58 +0200 | jollygood2 | (~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
2021-10-19 14:26:26 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-10-19 14:29:45 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-10-19 14:31:15 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 14:35:56 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-10-19 14:36:14 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2021-10-19 14:36:24 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-10-19 14:39:33 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-10-19 14:40:14 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 265 seconds) |
2021-10-19 14:41:40 +0200 | Farzad | (~FarzadBek@178.131.28.133) |
2021-10-19 14:41:58 +0200 | waleee | (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
2021-10-19 14:42:23 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-10-19 14:43:39 +0200 | <janus> | how do people feel about replacing 'Nothing -> pure Nothing' branches with foldMapM? I think that should be possible but i wonder why that isn't a base function |
2021-10-19 14:45:44 +0200 | <janus> | and why isn't there a flipped version of it so that i can use it like 'whenJust' ? |
2021-10-19 14:46:04 +0200 | <merijn> | What's whenJust? |
2021-10-19 14:46:11 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-10-19 14:46:22 +0200 | <janus> | merijn: https://hackage.haskell.org/package/extra-1.7.10/docs/Control-Monad-Extra.html#v:whenJust |
2021-10-19 14:46:25 +0200 | <merijn> | Isn't that just for/for_ |
2021-10-19 14:46:35 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2021-10-19 14:46:41 +0200 | <merijn> | Yeah, that's just for_ :p |
2021-10-19 14:46:43 +0200 | <merijn> | :t for_ |
2021-10-19 14:46:45 +0200 | <lambdabot> | (Foldable t, Applicative f) => t a -> (a -> f b) -> f () |
2021-10-19 14:46:46 +0200 | <merijn> | :t forM_ |
2021-10-19 14:46:48 +0200 | <lambdabot> | (Foldable t, Monad m) => t a -> (a -> m b) -> m () |
2021-10-19 14:46:59 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-10-19 14:47:16 +0200 | <janus> | aaah cool! thank you so much! i should ask relude devs to point that out, hmm |
2021-10-19 14:48:08 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-10-19 14:49:00 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-10-19 14:50:53 +0200 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-10-19 14:51:36 +0200 | zebrag | (~chris@user/zebrag) |
2021-10-19 14:51:44 +0200 | <janus> | i'll try to ask neil mitchell to point that out in the whenJust docs |
2021-10-19 14:53:30 +0200 | shapr | (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
2021-10-19 14:53:36 +0200 | <janus> | how do i reference Data.Foldable.for in haddock syntax? |
2021-10-19 14:53:45 +0200 | <sshine> | 'Data.Foldable.for' ? |
2021-10-19 14:54:37 +0200 | <janus> | sshine: aah ok right, according to section 3.8.7 https://www.haskell.org/haddock/doc/html/ch03s08.html |
2021-10-19 14:55:00 +0200 | <sshine> | yup :) |
2021-10-19 14:55:18 +0200 | <sshine> | not sure how that works across package boundaries. |
2021-10-19 14:56:05 +0200 | <merijn> | sshine: It does, if the module is imported/in scope |
2021-10-19 14:56:08 +0200 | <sshine> | it probably needs to be present when generating the haddock. |
2021-10-19 14:56:25 +0200 | <sshine> | yeah, I was gonna say "in scope", but not in the sense that it needs to be imported in the particular file. right? |
2021-10-19 14:56:32 +0200 | uGest372 | (~xxx@47.245.54.240) (Remote host closed the connection) |
2021-10-19 14:56:39 +0200 | <geekosaur> | doesn't need to be imported, just known |
2021-10-19 14:57:26 +0200 | <sshine> | it is known, Khaleesi. |
2021-10-19 14:57:38 +0200 | stengah | (~stengah@user/stengah) (Ping timeout: 260 seconds) |
2021-10-19 14:57:38 +0200 | <geekosaur> | I think you can point a haddock run to other haddock metadata to use for such references |
2021-10-19 14:58:38 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@2.95.44.252) |
2021-10-19 14:58:46 +0200 | jespada | (~jespada@2803:9800:9842:7a62:5d33:6404:2aef:9813) |
2021-10-19 14:58:58 +0200 | Guest372 | (~xxx@47.245.54.240) |
2021-10-19 14:59:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 14:59:50 +0200 | ArctVaulMarsHMPJ | (~pjetcetal@2.95.44.252) (Remote host closed the connection) |
2021-10-19 15:03:31 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Ping timeout: 252 seconds) |
2021-10-19 15:05:00 +0200 | xiongxin | (~quassel@113.116.34.23) |
2021-10-19 15:11:07 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:62eb:f958:5dc3:c1b9) (Quit: WeeChat 2.8) |
2021-10-19 15:13:24 +0200 | slack1256 | (~slack1256@45.4.2.52) |
2021-10-19 15:13:45 +0200 | max22- | (~maxime@2a01cb08833598001d1f311113516d41.ipv6.abo.wanadoo.fr) |
2021-10-19 15:18:22 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-19 15:30:30 +0200 | max22- | (~maxime@2a01cb08833598001d1f311113516d41.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2021-10-19 15:30:56 +0200 | stengah | (~stengah@user/stengah) |
2021-10-19 15:42:52 +0200 | <ph88> | what type should i make to use blaze-html with State monad ? |
2021-10-19 15:42:59 +0200 | <ph88> | https://hackage.haskell.org/package/blaze-html-0.9.1.2 |
2021-10-19 15:46:21 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-10-19 15:46:50 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-10-19 15:51:05 +0200 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-10-19 15:51:59 +0200 | max22- | (~maxime@2a01cb0883359800342ef13833bd6f3b.ipv6.abo.wanadoo.fr) |
2021-10-19 15:52:05 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-10-19 15:52:05 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-10-19 15:52:05 +0200 | wroathe | (~wroathe@user/wroathe) |
2021-10-19 15:57:58 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb87055cde397d58ef4b.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-10-19 15:58:10 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-19 15:59:07 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 16:01:48 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-10-19 16:05:33 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-19 16:05:43 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
2021-10-19 16:07:44 +0200 | jonathanx | (~jonathan@dyn-8-sc.cdg.chalmers.se) |
2021-10-19 16:07:44 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-19 16:11:22 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 16:12:11 +0200 | xff0x | (~xff0x@2001:1a81:5338:8400:6a8d:1ab1:8641:5267) (Ping timeout: 245 seconds) |
2021-10-19 16:12:35 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 16:13:50 +0200 | stengah | (~stengah@user/stengah) (Quit: stengah) |
2021-10-19 16:15:05 +0200 | Guest|60 | (~Guest|60@ip-95-223-74-231.hsi16.unitymediagroup.de) |
2021-10-19 16:15:35 +0200 | Guest|60 | (~Guest|60@ip-95-223-74-231.hsi16.unitymediagroup.de) (Client Quit) |
2021-10-19 16:15:54 +0200 | <ph88> | i forgot how to work with two monads at the same time and when to use lift, is there a good tutorial for it ? |
2021-10-19 16:16:08 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 258 seconds) |
2021-10-19 16:22:52 +0200 | xff0x | (~xff0x@2001:1a81:5338:8400:6a8d:1ab1:8641:5267) |
2021-10-19 16:23:14 +0200 | <Hecate> | ph88: book of monads I think |
2021-10-19 16:25:55 +0200 | amk | (~amk@109.255.169.126) (Remote host closed the connection) |
2021-10-19 16:28:01 +0200 | ASSISTENZA | (~Username@net-47-53-74-164.cust.vodafonedsl.it) |
2021-10-19 16:28:19 +0200 | ASSISTENZA | (~Username@net-47-53-74-164.cust.vodafonedsl.it) (Excess Flood) |
2021-10-19 16:41:23 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) |
2021-10-19 16:41:37 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) |
2021-10-19 16:42:11 +0200 | ASSISTENZA | (~Username@net-47-53-74-164.cust.vodafonedsl.it) |
2021-10-19 16:42:30 +0200 | ASSISTENZA | (~Username@net-47-53-74-164.cust.vodafonedsl.it) (Excess Flood) |
2021-10-19 16:42:48 +0200 | ASSISTENZA | (~Username@net-47-53-74-164.cust.vodafonedsl.it) |
2021-10-19 16:44:02 +0200 | xiongxin | (~quassel@113.116.34.23) (Ping timeout: 260 seconds) |
2021-10-19 16:44:12 +0200 | xiongxin_ | (~quassel@113.116.35.81) |
2021-10-19 16:44:57 +0200 | ASSISTENZA | (~Username@net-47-53-74-164.cust.vodafonedsl.it) (Client Quit) |
2021-10-19 16:45:52 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 16:46:02 +0200 | ubert | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-10-19 16:46:48 +0200 | o1lo01ol1o | (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Ping timeout: 258 seconds) |
2021-10-19 16:48:14 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:62eb:f958:5dc3:c1b9) |
2021-10-19 16:48:20 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
2021-10-19 16:50:46 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) (Ping timeout: 252 seconds) |
2021-10-19 16:51:28 +0200 | Farzad | (~FarzadBek@178.131.28.133) (Quit: Leaving) |
2021-10-19 16:51:40 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 16:56:46 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Ping timeout: 258 seconds) |
2021-10-19 16:58:31 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) |
2021-10-19 16:59:01 +0200 | wonko | (~wjc@62.115.229.50) |
2021-10-19 16:59:55 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-19 17:00:50 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 17:04:37 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Client Quit) |
2021-10-19 17:05:37 +0200 | hendursaga | (~weechat@user/hendursaga) (Remote host closed the connection) |
2021-10-19 17:05:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Ping timeout: 264 seconds) |
2021-10-19 17:07:21 +0200 | sprout | (~quassel@2a02:a467:ccd6:1:75c6:cb1e:9970:92ae) |
2021-10-19 17:08:19 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-10-19 17:09:06 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-10-19 17:09:40 +0200 | hnOsmium0001 | (uid453710@id-453710.hampstead.irccloud.com) |
2021-10-19 17:09:42 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-19 17:09:49 +0200 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-10-19 17:16:29 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-10-19 17:17:24 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 17:18:10 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:62eb:f958:5dc3:c1b9) (Quit: WeeChat 2.8) |
2021-10-19 17:19:40 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-19 17:19:48 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) |
2021-10-19 17:24:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-10-19 17:26:49 +0200 | meltedbrain_y2k | (~tekserf@94.73.36.197) |
2021-10-19 17:32:30 +0200 | jstolarek | (~jstolarek@137.220.120.162) |
2021-10-19 17:33:34 +0200 | xiongxin_ | (~quassel@113.116.35.81) (Ping timeout: 258 seconds) |
2021-10-19 17:33:42 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-10-19 17:34:10 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 17:34:32 +0200 | <sshine> | ph88, you mean nested? |
2021-10-19 17:35:10 +0200 | <sshine> | ph88, https://www.fpcomplete.com/haskell/tutorial/monad-transformers/ |
2021-10-19 17:36:30 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 17:36:54 +0200 | <sshine> | I wonder how many kittens god kills when someone writes a tutorial about transformers in particular. |
2021-10-19 17:38:04 +0200 | <monochrom> | I thought there has been too many blogs on that. |
2021-10-19 17:38:33 +0200 | <monochrom> | typeclassopedia has monad transformers |
2021-10-19 17:39:08 +0200 | <maerwald> | and it's a rather disappointing design pattern, is it not? |
2021-10-19 17:39:41 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) (Quit: k60) |
2021-10-19 17:39:55 +0200 | <monochrom> | Yesterday I found a MuniHac 2020 talk explaining monad transformers too (and then it goes on to free monads and polysemy, basically exploring your options). |
2021-10-19 17:40:12 +0200 | <monochrom> | I don't find it disappointing. |
2021-10-19 17:41:07 +0200 | <monochrom> | I teach my students String -> Maybe (String, a) as a parser monad, but secretly it's a transformed monad, too. |
2021-10-19 17:41:15 +0200 | <maerwald> | Well, I don't miss them in any other language :p |
2021-10-19 17:41:19 +0200 | <monochrom> | StateT String Maybe |
2021-10-19 17:41:27 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 17:42:13 +0200 | <maerwald> | exactly, state, reader etc are so easy to express without it |
2021-10-19 17:43:08 +0200 | <maerwald> | but given the ecosystem support, it's easier to just give in |
2021-10-19 17:44:17 +0200 | <monochrom> | No. Writing >>= by hand for even String -> Maybe (String, a) gets old pretty quickly. |
2021-10-19 17:44:55 +0200 | <maerwald> | it's our way to emulate OOP, because we want to hide the state object parameter |
2021-10-19 17:45:00 +0200 | <monochrom> | And the code really cries "I am a transformed monad". |
2021-10-19 17:45:57 +0200 | <monochrom> | Let me put it this way. |
2021-10-19 17:46:11 +0200 | <monochrom> | I don't teach monad transformers to students. |
2021-10-19 17:46:56 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-10-19 17:47:46 +0200 | <monochrom> | This allows me to give "challenging" assignments and exam questions that are like, "make this a monad: Bool -> Integer -> ([(a, Integer)], String)" |
2021-10-19 17:48:51 +0200 | <janus> | monochrom: is it this one ? https://www.youtube.com/watch?v=XZxNp7wgA4Q&t=9m20s "MuniHac 2020 Workshop: Michael Sperber - Control your Effects" |
2021-10-19 17:48:56 +0200 | <monochrom> | If only you knew monad transformers, those would be trivial, not challenging. |
2021-10-19 17:49:04 +0200 | <monochrom> | Yeah! |
2021-10-19 17:50:13 +0200 | <monochrom> | Also, I don't think OOP covers the Alternative-ness of my String -> Maybe (String, a) parser monad. |
2021-10-19 17:51:06 +0200 | <monochrom> | Only Haskell and Prolog come close to making choice a first-class thing. |
2021-10-19 17:51:23 +0200 | rkrishnan | (~user@2402:e280:215c:2cd:1c4a:bf17:a651:381c) (Ping timeout: 264 seconds) |
2021-10-19 17:51:26 +0200 | <monochrom> | I miss it in any other language. |
2021-10-19 17:52:06 +0200 | <monochrom> | The reason you don't miss it in other languages is because you haven't tried to express algorithms in terms of choice. |
2021-10-19 17:52:26 +0200 | <monochrom> | Sapir-Worf strikes once again. |
2021-10-19 17:52:54 +0200 | <monochrom> | If your vocab does not have <|>, you will never miss it, sure. |
2021-10-19 17:53:00 +0200 | <maerwald> | I've completed an entire computational geometry algorithms course in Haskell with zero monad transformers |
2021-10-19 17:53:27 +0200 | <ph88> | do i need a monad transformer when i want to combine blaze-html and state ? |
2021-10-19 17:53:29 +0200 | coot | (~coot@37.30.48.91.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-19 17:53:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 17:54:21 +0200 | <monochrom> | I don't know about "need". You can always try StateT X <which monad blaze-html dictates>". |
2021-10-19 17:54:34 +0200 | <monochrom> | s/which/whichever/ |
2021-10-19 17:54:55 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving) |
2021-10-19 17:57:20 +0200 | <ph88> | hmm i read here: It is worth noting that the Blaze builder overloads do-notation as some EDSLs do, but the Html type is not a monad. It is functionally a monoid. |
2021-10-19 17:57:23 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-19 17:57:26 +0200 | <ph88> | https://www.stephendiehl.com/posts/haskell_web.html |
2021-10-19 17:57:39 +0200 | <ph88> | i guess i can not use transformer when i don't have an inner monad |
2021-10-19 17:58:35 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-10-19 17:59:30 +0200 | <monochrom> | Syntactically, you can say that you would complete my course with zero monad transformers, too. |
2021-10-19 18:00:30 +0200 | <monochrom> | You can always handcode >>= for String -> Maybe (String, a), and then again for String -> Either Error (String, a), and then again for Bool -> Integer -> ([(a, Integer)], String). |
2021-10-19 18:00:38 +0200 | <monochrom> | Is that supposed to be healthy? |
2021-10-19 18:00:41 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-10-19 18:00:53 +0200 | <maerwald> | rust does fine with that |
2021-10-19 18:01:08 +0200 | <monochrom> | But rust is not in my course. |
2021-10-19 18:01:12 +0200 | <maerwald> | not massively more unergonomic |
2021-10-19 18:01:30 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-10-19 18:01:31 +0200 | <maerwald> | and the tooling works better, so that my code completion actually works :) |
2021-10-19 18:02:00 +0200 | <maerwald> | of course you lack all the neat stuff you can do with monadic combinators |
2021-10-19 18:02:02 +0200 | <maerwald> | but meh |
2021-10-19 18:02:32 +0200 | <maerwald> | I get much more angry about languages that don't provide my with proper ADTs |
2021-10-19 18:02:36 +0200 | <monochrom> | Well yeah I need <|> |
2021-10-19 18:02:41 +0200 | <kronicmage> | maerwald: whats wrong with hls completion? it works beautifully for me |
2021-10-19 18:02:48 +0200 | <maerwald> | kronicmage: not for me |
2021-10-19 18:02:54 +0200 | <maerwald> | probably due to TH |
2021-10-19 18:03:07 +0200 | <maerwald> | crashes a lot |
2021-10-19 18:03:14 +0200 | <kronicmage> | :( |
2021-10-19 18:03:26 +0200 | <monochrom> | which is not even a monadic combinator. It's an alternative combinator. |
2021-10-19 18:03:26 +0200 | <maerwald> | not that I miss TH in any other language ;) |
2021-10-19 18:03:52 +0200 | <maerwald> | TH is probably the least thought-through feature in Haskell |
2021-10-19 18:04:07 +0200 | <geekosaur> | you give it too much credit |
2021-10-19 18:04:19 +0200 | geekosaur | doesn't think it was thought through at all |
2021-10-19 18:04:55 +0200 | <maerwald> | also... do you really want access to the entire AST of the language? |
2021-10-19 18:05:00 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-10-19 18:05:05 +0200 | <maerwald> | and then, it's still not the actual AST |
2021-10-19 18:05:09 +0200 | <maerwald> | confusing |
2021-10-19 18:06:10 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
2021-10-19 18:06:29 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-19 18:06:35 +0200 | <gentauro> | Does GHC run on the M1's? |
2021-10-19 18:06:37 +0200 | <gentauro> | :) |
2021-10-19 18:06:47 +0200 | <ph88> | my code type checks now using blaze-html and state https://bpa.st/4QHQ just that i had to give only 1 element on line 9 .. how can i go from a list of these [H.Html] pieces to one big one ? like roll-up as if i would have written it in do notation which each one on it's own line |
2021-10-19 18:06:54 +0200 | <maerwald> | gentauro: yes |
2021-10-19 18:06:56 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-19 18:07:16 +0200 | <ph88> | gentauro, would be cool if you can benchmark it |
2021-10-19 18:07:33 +0200 | <maerwald> | monochrom: well, I did use <|> |
2021-10-19 18:07:58 +0200 | <maerwald> | https://git.io/J6l6m |
2021-10-19 18:08:41 +0200 | <maerwald> | but attoparsecs parser isn't really a monad transformer |
2021-10-19 18:09:17 +0200 | <gentauro> | maerwald: nice |
2021-10-19 18:09:42 +0200 | <maerwald> | I doubt I would have cared whether it's <|> or some other combinator |
2021-10-19 18:09:48 +0200 | <gentauro> | ph88: by week 44 I will be able to (the M1 MAX) :) |
2021-10-19 18:10:25 +0200 | <gentauro> | ph88: somebody already ask me to benchmark `rust` x |
2021-10-19 18:10:27 +0200 | <gentauro> | xD |
2021-10-19 18:11:09 +0200 | <monochrom> | Sure, my Bool -> Integer -> ([(a, Integer)], String) montrosity is "not" a monad transformer either. Syntactically. |
2021-10-19 18:11:13 +0200 | <monochrom> | Or is it? |
2021-10-19 18:12:11 +0200 | <monochrom> | What does "is" mean? |
2021-10-19 18:12:47 +0200 | <maerwald> | monad transformer to me means ">>= is so overloaded with meaning that you end up reasoning about code operationally" |
2021-10-19 18:13:13 +0200 | poljar | (~poljar@93-139-113-226.adsl.net.t-com.hr) (Remote host closed the connection) |
2021-10-19 18:13:36 +0200 | poljar | (~poljar@93-139-113-226.adsl.net.t-com.hr) |
2021-10-19 18:13:37 +0200 | <maerwald> | and then it becomes intellectual complexity you carry around, unless you're fine with "it roughly does this" |
2021-10-19 18:14:27 +0200 | <maerwald> | but when you get used to it, then it becomes fine too |
2021-10-19 18:14:30 +0200 | <maerwald> | you train it, so... |
2021-10-19 18:14:35 +0200 | <maerwald> | still doesn't make it a good thing |
2021-10-19 18:15:27 +0200 | <maerwald> | but that's the difference between "I use it" and "I miss this in other languages" |
2021-10-19 18:15:36 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-10-19 18:15:49 +0200 | <monochrom> | I am not sure that you, or anyone, ever do any better than "it roughly does this", in/for/with any language. |
2021-10-19 18:15:53 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2021-10-19 18:16:09 +0200 | <maerwald> | there are levels of uncertainty |
2021-10-19 18:16:33 +0200 | <maerwald> | ultimately, we're uncertain what our code does |
2021-10-19 18:16:39 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-10-19 18:16:43 +0200 | <maerwald> | but that doesn't mean we have to throw away the nuances |
2021-10-19 18:16:45 +0200 | <gentauro> | maerwald: I tend to use `>>=` as the pipe operator in bash: `someLogic >>= \ value -> fooBar value` |
2021-10-19 18:16:54 +0200 | <gentauro> | I find it kind of readable |
2021-10-19 18:17:07 +0200 | <gentauro> | if you are in a monadic context and you use a lot of line-spaces |
2021-10-19 18:17:09 +0200 | <gentauro> | :) |
2021-10-19 18:17:27 +0200 | <maerwald> | would we really use monads that much if we didn't have do-notation? |
2021-10-19 18:17:30 +0200 | <maerwald> | Change my mind! |
2021-10-19 18:17:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 18:17:47 +0200 | <monochrom> | I would. I already did. |
2021-10-19 18:17:54 +0200 | amk | (~amk@109.255.169.126) |
2021-10-19 18:18:06 +0200 | <geekosaur> | I use >>= directly a fair amount, if it's short enough |
2021-10-19 18:18:20 +0200 | <geekosaur> | really I only use do because I hate long lines |
2021-10-19 18:18:39 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-10-19 18:19:20 +0200 | <maerwald> | what I'm getting at is... is it really monads that we care about or a concise way to describe sequential effect computations? If there was a different way to write and do it, so what? |
2021-10-19 18:19:28 +0200 | Vajb | (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) |
2021-10-19 18:19:54 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2021-10-19 18:19:55 +0200 | <monochrom> | A concise way to describe effects. |
2021-10-19 18:20:30 +0200 | <monochrom> | Indeed I have found a way to stick to Alternative in parsers. |
2021-10-19 18:21:29 +0200 | <geekosaur> | if you're using monads just to use monads, you're doing something wrong |
2021-10-19 18:21:31 +0200 | <monochrom> | That doesn't change the real point behind my stance of taking monad transforming as useful though. |
2021-10-19 18:21:42 +0200 | <monochrom> | Because I'm just s/monad/alternative/ |
2021-10-19 18:21:48 +0200 | <geekosaur> | but monads do useful things beyond just sequencing effects |
2021-10-19 18:22:07 +0200 | <maerwald> | monochrom: sure, but useful isn't elegant :p |
2021-10-19 18:22:19 +0200 | jstolarek | (~jstolarek@137.220.120.162) (Quit: leaving) |
2021-10-19 18:22:50 +0200 | <maerwald> | monads aren't burritos |
2021-10-19 18:22:56 +0200 | <maerwald> | they are cows: useful, but not elegant |
2021-10-19 18:23:26 +0200 | <monochrom> | Handwriting <*> and <|> for String -> [(a, String)] is the inelegant choice. And the missing-the-forest-for-the-trees choice. |
2021-10-19 18:24:29 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-19 18:24:38 +0200 | <monochrom> | Recognizing that it is a certain composition of StateT and [], and using that knowledge to connect the <*> and <|> of State with the <*> and <|> of [], is better, and useful to know. |
2021-10-19 18:24:46 +0200 | <gentauro> | I only used monads if I need to `take some decision` on the `outputted` value. Example: `fooBar >>= \ foo -> if foo then …`. Otherwise I opt for `<$>` or `_ <$> … <*>` |
2021-10-19 18:24:50 +0200 | <monochrom> | err |
2021-10-19 18:24:59 +0200 | <maerwald> | I dunno, maybe we'll figure out a better way to express effects/computations one day |
2021-10-19 18:25:12 +0200 | <monochrom> | using that knowledge to connect the <*> and <|> of String -> [(a, String)] to those of State and []. |
2021-10-19 18:25:19 +0200 | <gentauro> | maerwald: I like monadic effects |
2021-10-19 18:25:20 +0200 | <maerwald> | especially in light of combining them |
2021-10-19 18:25:37 +0200 | <monochrom> | There will always be better ways in the future. |
2021-10-19 18:25:52 +0200 | <maerwald> | and there I agree that algebraic effects seem saner, but also more intellectual complexity (polysemy and friends) |
2021-10-19 18:26:04 +0200 | <maerwald> | to the point that no one really understands semantics anymore either |
2021-10-19 18:26:31 +0200 | <monochrom> | For here and now, StateT String [] is the best known fit to my use case. |
2021-10-19 18:26:33 +0200 | <maerwald> | I haven't made up my mind about verbosity |
2021-10-19 18:26:52 +0200 | <maerwald> | I'm fine with verbose languages like rust and python... but damn they make my fingers hurt |
2021-10-19 18:27:32 +0200 | <monochrom> | Indeed StateT String [] is less remotely-abstract than all the more advanced theories. Given that you are against remotely-abstract as a principle. |
2021-10-19 18:28:48 +0200 | <monochrom> | StateT String [] is sufficiently concrete and sufficiently elegant for its purpose. |
2021-10-19 18:29:12 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 18:29:19 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-10-19 18:29:28 +0200 | <maerwald> | the thing with concise expressions is... how sharp can you mentally isolate the underlying concept. Sometimes you can't, but there's a way to express it very concise regardless |
2021-10-19 18:29:30 +0200 | <maerwald> | what to do? |
2021-10-19 18:29:33 +0200 | ph88 | (~ph88@2a02:8109:9e00:7e5c::3d56) (Remote host closed the connection) |
2021-10-19 18:29:45 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-10-19 18:30:32 +0200 | <maerwald> | while... once you got used to verbose code (and there are a couple of rules everyone follows), then reading verbose code can be very efficient |
2021-10-19 18:30:55 +0200 | <maerwald> | (like not introducing new variables in the middle of a C function) |
2021-10-19 18:31:10 +0200 | <monochrom> | I do that all the time. Bite me. |
2021-10-19 18:31:49 +0200 | <monochrom> | I can be talked into "if you do that, add { } around its real scope" though. |
2021-10-19 18:32:24 +0200 | <monochrom> | But I will refuse "there are only two levels, top and function". Because there aren't. |
2021-10-19 18:32:26 +0200 | <maerwald> | ok, I'm off buying soap (need to clean myself after this conversation) |
2021-10-19 18:32:28 +0200 | <maerwald> | :D |
2021-10-19 18:33:02 +0200 | <monochrom> | There is nothing wrong with "for (int i = ...) { int s = 0; ... }" |
2021-10-19 18:33:14 +0200 | <maerwald> | I think I'd allow that exception |
2021-10-19 18:33:32 +0200 | <maerwald> | also, in rust it's a bit harder to follow this rule |
2021-10-19 18:33:53 +0200 | <maerwald> | because of all the shenanigans you have to do to trick the borrow checker into thinking your code is safe |
2021-10-19 18:34:35 +0200 | <monochrom> | The only thing you can complain about is if I have "x = 0; int y; ...", it is a bit harder to spot the introduction of y, and it's also a bit harder to spot the end of relevance of y. |
2021-10-19 18:35:14 +0200 | <monochrom> | For the former, I have blank lines already. For the latter, that's why I offer "x = 0; { int y; ... } ..." |
2021-10-19 18:35:34 +0200 | <monochrom> | That rule is stupid. |
2021-10-19 18:36:02 +0200 | <monochrom> | I can take everything you said and say it about that rule, too. |
2021-10-19 18:36:08 +0200 | segfaultfizzbuzz | (~segfaultf@135-180-0-138.static.sonic.net) |
2021-10-19 18:36:31 +0200 | <maerwald[m]> | That was just an example :D |
2021-10-19 18:36:35 +0200 | fendor | (~fendor@77.119.169.61.wireless.dyn.drei.com) |
2021-10-19 18:36:59 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 264 seconds) |
2021-10-19 18:37:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 18:37:36 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 18:38:27 +0200 | <maerwald[m]> | My point was that expressing things, that you can't easily isolate mentally, in a concise way is an open question |
2021-10-19 18:38:41 +0200 | <maerwald[m]> | As to whether that's a good idea |
2021-10-19 18:38:47 +0200 | <maerwald[m]> | I don't really know |
2021-10-19 18:38:58 +0200 | <monochrom> | Oh sure, I balance many factors. |
2021-10-19 18:39:23 +0200 | <maerwald[m]> | My mtl code usually ends up like that: a mess. |
2021-10-19 18:39:34 +0200 | <monochrom> | Mine doesn't. |
2021-10-19 18:39:46 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
2021-10-19 18:39:54 +0200 | <maerwald[m]> | You look at the type signature and go "yeah right, whatever" |
2021-10-19 18:40:54 +0200 | <monochrom> | I don't use MonadState all that much either, if that's what you mean. |
2021-10-19 18:41:25 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-10-19 18:41:25 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-19 18:41:42 +0200 | <maerwald[m]> | MonadIO, MonadUnliftIO, MonadFail, MonadMask, MonadThrow, MonadMe... |
2021-10-19 18:41:50 +0200 | <monochrom> | But I have "eof :: Parser ()" and Parser is either "newtype Parser a = P (String -> Maybe (String, a))" or "newtype Parser a = P (StateT String Maybe a)" |
2021-10-19 18:42:02 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 18:42:36 +0200 | <monochrom> | And I would really love to use the latter in my course if I had time to teach StateT. |
2021-10-19 18:43:15 +0200 | <monochrom> | Then again, if I did that, I would run out of assignment and exam questions. |
2021-10-19 18:43:34 +0200 | <monochrom> | In the same sense as: |
2021-10-19 18:43:43 +0200 | <maerwald[m]> | I forgot obscure LabelOptics |
2021-10-19 18:45:12 +0200 | <monochrom> | Suppose a teacher concealed "x+y = y+x" from you. Then they would have a larger pool of homework questions for you, for example they could put both "34 + 57 = ?" and "57 + 34 = ?" on the same exam, even right next to each other. |
2021-10-19 18:45:58 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-19 18:50:25 +0200 | mastarija | (~mastarija@31.217.25.149) |
2021-10-19 18:50:40 +0200 | <maerwald[m]> | So does flexibility to add effects freely lead to better or worse design? And what about custom monad newtypes, like `App`? Are they really better? |
2021-10-19 18:50:48 +0200 | <maerwald[m]> | Questions |
2021-10-19 18:51:23 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-10-19 18:52:46 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 18:53:47 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-10-19 18:55:11 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-10-19 18:56:00 +0200 | Vajb | (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2021-10-19 18:56:32 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-10-19 18:58:35 +0200 | mbuf | (~Shakthi@27.58.140.141) (Quit: Leaving) |
2021-10-19 19:00:41 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) |
2021-10-19 19:01:34 +0200 | mastarija_ | (~mastarija@31.217.25.149) |
2021-10-19 19:01:53 +0200 | mastarija_ | (~mastarija@31.217.25.149) (Client Quit) |
2021-10-19 19:02:00 +0200 | mastarija | (~mastarija@31.217.25.149) (Quit: Leaving) |
2021-10-19 19:02:18 +0200 | emf | (~emf@2620:10d:c090:400::5:c0de) |
2021-10-19 19:03:27 +0200 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-10-19 19:03:47 +0200 | alzgh | (~alzgh@user/alzgh) |
2021-10-19 19:08:29 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-10-19 19:08:54 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-10-19 19:12:43 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 19:13:19 +0200 | xff0x | (~xff0x@2001:1a81:5338:8400:6a8d:1ab1:8641:5267) (Ping timeout: 265 seconds) |
2021-10-19 19:13:38 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-19 19:15:28 +0200 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-10-19 19:16:39 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-10-19 19:17:23 +0200 | xff0x | (~xff0x@2001:1a81:5338:8400:382c:44d1:e85b:95f9) |
2021-10-19 19:23:12 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-10-19 19:23:33 +0200 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-10-19 19:26:07 +0200 | fendor_ | (~fendor@77.119.200.149.wireless.dyn.drei.com) |
2021-10-19 19:26:26 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-19 19:27:14 +0200 | ubert2 | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-19 19:27:14 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
2021-10-19 19:28:18 +0200 | fendor | (~fendor@77.119.169.61.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2021-10-19 19:29:37 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: No route to host) |
2021-10-19 19:30:05 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
2021-10-19 19:31:51 +0200 | mmhat | (~mmh@55d45bcb.access.ecotel.net) |
2021-10-19 19:35:17 +0200 | _________ | __________ |
2021-10-19 19:35:19 +0200 | __________ | noodly |
2021-10-19 19:35:23 +0200 | noodly | _________ |
2021-10-19 19:41:50 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-10-19 19:41:56 +0200 | fendor__ | (~fendor@212095005159.public.telering.at) |
2021-10-19 19:42:22 +0200 | fendor_ | (~fendor@77.119.200.149.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-10-19 19:43:45 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-10-19 19:46:26 +0200 | kuribas | (~user@ptr-25vy0i72e2u2h548zvl.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-10-19 19:50:09 +0200 | coot | (~coot@37.30.48.91.nat.umts.dynamic.t-mobile.pl) |
2021-10-19 19:51:07 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) |
2021-10-19 19:55:34 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 19:56:33 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Ping timeout: 258 seconds) |
2021-10-19 19:58:50 +0200 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) |
2021-10-19 19:59:19 +0200 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
2021-10-19 20:05:10 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb56-2.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-10-19 20:12:44 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2021-10-19 20:12:59 +0200 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2021-10-19 20:14:16 +0200 | fendor_ | (~fendor@178.115.49.60.wireless.dyn.drei.com) |
2021-10-19 20:15:36 +0200 | Null_A | (~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-10-19 20:15:36 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-10-19 20:15:44 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 20:16:11 +0200 | Null_A | (~null_a@2601:645:8700:2290:30d6:67dd:64ca:a12a) |
2021-10-19 20:16:50 +0200 | fendor__ | (~fendor@212095005159.public.telering.at) (Ping timeout: 260 seconds) |
2021-10-19 20:20:47 +0200 | Null_A | (~null_a@2601:645:8700:2290:30d6:67dd:64ca:a12a) (Ping timeout: 264 seconds) |
2021-10-19 20:23:18 +0200 | Null_A | (~null_a@2601:645:8700:2290:30d6:67dd:64ca:a12a) |
2021-10-19 20:24:46 +0200 | marinelli | (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli) |
2021-10-19 20:25:11 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-19 20:25:59 +0200 | ubert | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) |
2021-10-19 20:28:03 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-10-19 20:36:27 +0200 | econo | (uid147250@user/econo) |
2021-10-19 20:37:16 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 265 seconds) |
2021-10-19 20:38:43 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 258 seconds) |
2021-10-19 20:53:45 +0200 | <zzz> | class Commutative (f :: a -> b -> c) where ? |
2021-10-19 20:54:19 +0200 | <monochrom> | no understand |
2021-10-19 20:54:37 +0200 | <awpr> | `swap :: f a b -> f b a` + law that `swap . swap` is `id`? |
2021-10-19 20:54:50 +0200 | <awpr> | although s/c/Type/ I think |
2021-10-19 20:55:01 +0200 | <[exa]> | I vote for `commute` |
2021-10-19 20:55:04 +0200 | <zzz> | it's not supposed to be understood. just writing nonsense |
2021-10-19 20:55:26 +0200 | <zzz> | [exa]: commute (f a b) = f b a ? |
2021-10-19 20:55:29 +0200 | <awpr> | although it can't have poly-kinds with different kinds for the two sides either |
2021-10-19 20:55:38 +0200 | <awpr> | `f :: k -> k -> Type` |
2021-10-19 20:55:59 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 20:57:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 20:57:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 20:58:36 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 21:02:22 +0200 | MQ-17J | (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
2021-10-19 21:03:02 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-10-19 21:04:35 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 264 seconds) |
2021-10-19 21:08:56 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:dde2:6c49:6076:e5ad) (Remote host closed the connection) |
2021-10-19 21:10:54 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-10-19 21:11:24 +0200 | <xerox> | does anybody know how to find which branch/commit made up the ghc release 9.2.0.20210821 ? |
2021-10-19 21:11:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 21:12:05 +0200 | <geekosaur> | you can query git log by date, that should at least narrow it down |
2021-10-19 21:12:57 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-19 21:13:11 +0200 | <geekosaur> | the branch should be the 9.2 branch |
2021-10-19 21:13:18 +0200 | hyiltiz | (~quassel@31.220.5.250) (Ping timeout: 260 seconds) |
2021-10-19 21:13:32 +0200 | <xerox> | the 9.2 branch does not build for me, 0.2 seconds into make I get this https://i.imgur.com/DJOMeiZ.png |
2021-10-19 21:14:14 +0200 | <geekosaur> | that one you'll have to ask about in #ghc |
2021-10-19 21:14:25 +0200 | <xerox> | but I guessed since that one built... :) |
2021-10-19 21:14:44 +0200 | <xerox> | nothing comes up green with a search like this https://gitlab.haskell.org/ghc/ghc/-/tags?sort=updated_desc&search=9.2 |
2021-10-19 21:14:46 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 21:15:00 +0200 | <xerox> | nor on the branches |
2021-10-19 21:15:28 +0200 | <xerox> | maerwald: how did you figure out that one in particular built, so you could add it to ghcup? |
2021-10-19 21:16:21 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-10-19 21:19:04 +0200 | Null_A | (~null_a@2601:645:8700:2290:30d6:67dd:64ca:a12a) (Remote host closed the connection) |
2021-10-19 21:20:41 +0200 | hyiltiz | (~quassel@31.220.5.250) |
2021-10-19 21:22:25 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 258 seconds) |
2021-10-19 21:23:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 21:27:51 +0200 | amirouche | amazigh |
2021-10-19 21:36:43 +0200 | <maerwald> | what? |
2021-10-19 21:37:41 +0200 | <maerwald> | https://downloads.haskell.org/~ghc/9.2.1-rc1/ |
2021-10-19 21:39:44 +0200 | <xerox> | ah that's what it is |
2021-10-19 21:39:57 +0200 | <maerwald> | probably this https://gitlab.haskell.org/ghc/ghc/-/pipelines/33913 |
2021-10-19 21:40:06 +0200 | <maerwald> | go to the pipelines and click on tags |
2021-10-19 21:40:11 +0200 | <maerwald> | https://gitlab.haskell.org/ghc/ghc/-/pipelines?scope=tags&page=1 |
2021-10-19 21:40:12 +0200 | <xerox> | maybe I'm asking for trouble using *that* to build another ghc |
2021-10-19 21:40:33 +0200 | <xerox> | everything fails with that error about safe haskell |
2021-10-19 21:41:05 +0200 | <monochrom> | Is that why 9.2 is stalled? That no one knows how to build it now? :) |
2021-10-19 21:42:02 +0200 | <xerox> | using 8.10.7 seems to be liking at least starting to build master, yay |
2021-10-19 21:42:25 +0200 | <maerwald> | xerox: you usually go one major version back |
2021-10-19 21:42:29 +0200 | <maerwald> | for building |
2021-10-19 21:43:00 +0200 | <xerox> | didn't know that! |
2021-10-19 21:43:37 +0200 | Null_A | (~null_a@2601:645:8700:2290:30d6:67dd:64ca:a12a) |
2021-10-19 21:44:20 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:d1f9:60a1:52fb:92f3) |
2021-10-19 21:44:21 +0200 | <geekosaur> | 1-2 versions currently accepted. using 9.2 to build 9.2 is I think known not to work |
2021-10-19 21:44:30 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:d1f9:60a1:52fb:92f3) (Remote host closed the connection) |
2021-10-19 21:44:31 +0200 | <geekosaur> | so 9.0.1 or 8.10.7 |
2021-10-19 21:44:38 +0200 | <xerox> | how peculiar |
2021-10-19 21:45:02 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:d1f9:60a1:52fb:92f3) |
2021-10-19 21:45:06 +0200 | <xerox> | does this mean you have to do a chain of compilations if you are stuck with having an old binary, or no binary (yuck!) |
2021-10-19 21:45:28 +0200 | <geekosaur> | yes |
2021-10-19 21:45:31 +0200 | <xerox> | wow |
2021-10-19 21:46:00 +0200 | <geekosaur> | and I think there's no way to bootstrap from scratch any more because yoou need to find a working hbc binary to start the bootstrap chain |
2021-10-19 21:46:37 +0200 | <geekosaur> | the alternative is -funregisterised which outputs ANSI C |
2021-10-19 21:47:30 +0200 | <geekosaur> | and requires a custom built compiler to enable -funregisterised, since release compilers have it disabled |
2021-10-19 21:47:43 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) (Quit: k60) |
2021-10-19 21:47:50 +0200 | <xerox> | but can you build such custom comppiler |
2021-10-19 21:48:00 +0200 | evocatus | (~evocatus@84.51.113.13) |
2021-10-19 21:49:14 +0200 | <geekosaur> | you'd start on a platform with a working ghc and use that to build a dev compiler that supports -funregisterised, then use that to build ghc again with -funregisterised, then collect the output sources and take them to the target machine |
2021-10-19 21:49:20 +0200 | <geekosaur> | it's a royal pain |
2021-10-19 21:49:25 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:d1f9:60a1:52fb:92f3) (Ping timeout: 252 seconds) |
2021-10-19 21:50:11 +0200 | <geekosaur> | a newer way if LLVM is supported is compile with -fllvm -keep-llvm-files (I think that's the option) and run llc/opt/lld on the target |
2021-10-19 21:50:37 +0200 | <xerox> | that seems nice |
2021-10-19 21:50:40 +0200 | <geekosaur> | basically ghc is really not friendly to this kind of thing currently |
2021-10-19 21:50:54 +0200 | <geekosaur> | there's supposedly some work going on to improve things a bit |
2021-10-19 21:52:31 +0200 | nckx | (~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>) |
2021-10-19 21:52:33 +0200 | <geekosaur> | but this general issue is a problem with any self-hosted compiler. I think you have to dig up some ancient gcc that could be built with non-gcc (1.40?) to bootstrap a current one from scratch |
2021-10-19 21:53:18 +0200 | Null_A | (~null_a@2601:645:8700:2290:30d6:67dd:64ca:a12a) (Ping timeout: 265 seconds) |
2021-10-19 21:54:08 +0200 | lionrouge_ | (~evocatus@84.51.113.13) |
2021-10-19 21:54:33 +0200 | lionrouge_ | (~evocatus@84.51.113.13) (Remote host closed the connection) |
2021-10-19 21:54:43 +0200 | nckx | (~nckx@tobias.gr) |
2021-10-19 21:55:23 +0200 | wonko | (~wjc@62.115.229.50) (Ping timeout: 258 seconds) |
2021-10-19 21:57:00 +0200 | evocatus_ | (~evocatus@84.51.113.13) |
2021-10-19 21:57:10 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-10-19 21:58:48 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-10-19 22:04:41 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) |
2021-10-19 22:05:34 +0200 | juhp | (~juhp@128.106.188.220) (Ping timeout: 260 seconds) |
2021-10-19 22:06:20 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep) |
2021-10-19 22:07:24 +0200 | Midjak | (~Midjak@82-65-111-221.subs.proxad.net) |
2021-10-19 22:07:48 +0200 | juhp | (~juhp@128.106.188.220) |
2021-10-19 22:09:35 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 22:12:31 +0200 | alx741 | (~alx741@186.178.108.68) (Ping timeout: 252 seconds) |
2021-10-19 22:12:46 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb87055cde397d58ef4b.dip0.t-ipconnect.de) |
2021-10-19 22:14:51 +0200 | <xerox> | Build completed in 28m59s -- there we go |
2021-10-19 22:15:39 +0200 | <shapr> | 4883 weeds *cries* |
2021-10-19 22:15:51 +0200 | <shapr> | that's from https://github.com/ocharles/weeder |
2021-10-19 22:16:51 +0200 | mikoto-chan | (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 258 seconds) |
2021-10-19 22:17:01 +0200 | k60 | (~k60@broadband-95-84-168-218.ip.moscow.rt.ru) |
2021-10-19 22:18:43 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.114) |
2021-10-19 22:19:19 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-10-19 22:20:07 +0200 | <sshine> | I'm trying to add a package to stackage, but I'm told that sqlite-simple isn't found: https://gist.github.com/sshine/d3a715326791746eb20d7bc857f4686e -- it's kinda strange, because if I look up that package, it does appear to be in nightly-2021-06-14 and in lts-18.13. but apparently not in nightly-2021-10-19. I wonder how I find out why. |
2021-10-19 22:20:09 +0200 | o1lo01ol1o | (~o1lo01ol1@2001:8a0:6d7a:df01:d1f9:60a1:52fb:92f3) |
2021-10-19 22:20:16 +0200 | _xor | (~xor@72.49.199.147) (Read error: Connection reset by peer) |
2021-10-19 22:20:45 +0200 | <juri_> | ugh. property tests and doubles are sadness. |
2021-10-19 22:21:02 +0200 | <sshine> | juri_, doubles are sadness. |
2021-10-19 22:21:14 +0200 | <Hecate> | sadness. |
2021-10-19 22:21:50 +0200 | <juri_> | Hecate: you win. |
2021-10-19 22:22:46 +0200 | <sshine> | ha, I was going to demonstrate that at least you can prove that anything plus NaN is NaN, but you can't, because it isn't equal to itself. |
2021-10-19 22:23:28 +0200 | evocatus_ | (~evocatus@84.51.113.13) (Quit: Leaving) |
2021-10-19 22:23:33 +0200 | <sshine> | and saying it isn't equal to NaN is about as trivial as saying it isn't equal to anything else. |
2021-10-19 22:23:35 +0200 | evocatus | (~evocatus@84.51.113.13) (Quit: Leaving) |
2021-10-19 22:23:37 +0200 | <awpr> | > :t isNaN -- can do this though |
2021-10-19 22:23:39 +0200 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
2021-10-19 22:23:46 +0200 | <sshine> | awpr, nice. |
2021-10-19 22:23:48 +0200 | <geekosaur> | :t isNaN |
2021-10-19 22:23:49 +0200 | <lambdabot> | RealFloat a => a -> Bool |
2021-10-19 22:25:10 +0200 | elmoloko | (~Adium@2600:6c64:4a7f:faa6:2863:d742:7416:5b9e) |
2021-10-19 22:26:03 +0200 | _xor | (~xor@72.49.199.147) |
2021-10-19 22:26:30 +0200 | alx741 | (~alx741@186.178.109.50) |
2021-10-19 22:27:52 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) |
2021-10-19 22:29:06 +0200 | peterhil | (~peterhil@mobile-access-56734e-227.dhcp.inet.fi) |
2021-10-19 22:29:09 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 22:30:16 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.114) (Ping timeout: 258 seconds) |
2021-10-19 22:32:01 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.122) |
2021-10-19 22:32:25 +0200 | mikoto-chan | (~mikoto-ch@185.237.102.122) (Client Quit) |
2021-10-19 22:37:04 +0200 | connrs | (~connrs@conners.plus.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-10-19 22:38:01 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-10-19 22:38:14 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-10-19 22:38:17 +0200 | connrs | (~connrs@conners.plus.com) |
2021-10-19 22:39:42 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2021-10-19 22:46:24 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb879d3ec1aa44300f05.dip0.t-ipconnect.de) |
2021-10-19 22:46:47 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-10-19 22:49:49 +0200 | acidjnk_new | (~acidjnk@p200300d0c703cb87055cde397d58ef4b.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 22:54:00 +0200 | fawful | (~guy@c-76-104-217-93.hsd1.wa.comcast.net) |
2021-10-19 22:55:35 +0200 | <monochrom> | > isNan (sqrt (-1)) |
2021-10-19 22:55:37 +0200 | <lambdabot> | error: |
2021-10-19 22:55:37 +0200 | <lambdabot> | • Variable not in scope: isNan :: t0 -> t |
2021-10-19 22:55:37 +0200 | <lambdabot> | • Perhaps you meant ‘isNaN’ (imported from Prelude) |
2021-10-19 22:55:45 +0200 | <monochrom> | > isNaN (sqrt (-1)) |
2021-10-19 22:55:47 +0200 | <lambdabot> | True |
2021-10-19 22:55:51 +0200 | <monochrom> | > isNaN (1 + sqrt (-1)) |
2021-10-19 22:55:52 +0200 | <lambdabot> | True |
2021-10-19 22:55:54 +0200 | <monochrom> | :) |
2021-10-19 22:56:11 +0200 | <fawful> | :) |
2021-10-19 22:57:28 +0200 | <monochrom> | I am not very sympathetic to "you can't use (==)". If I have x :: [Int->Int], you can't use "x == []" either. You are supposed to use null. |
2021-10-19 23:00:33 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-10-19 23:02:24 +0200 | <sm> | sshine: you can look at https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml , eg for a line like https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml#L6535 |
2021-10-19 23:02:52 +0200 | <sm> | and there might be an issue discussing it |
2021-10-19 23:04:50 +0200 | peterhil | (~peterhil@mobile-access-56734e-227.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2021-10-19 23:04:53 +0200 | Megant | (megant@user/megant) (Ping timeout: 264 seconds) |
2021-10-19 23:04:53 +0200 | Moyst | (~moyst@user/moyst) (Ping timeout: 264 seconds) |
2021-10-19 23:06:22 +0200 | aln448 | (~aln448@2a00:23c7:3480:b700:fdb9:39e2:1024:88b1) |
2021-10-19 23:06:32 +0200 | acidjnk_new | (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) |
2021-10-19 23:07:23 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) (Remote host closed the connection) |
2021-10-19 23:07:40 +0200 | <aln448> | fluent in maths and functional programming. wrote a postgrad thesis on a maths topic in haskell, but haven't touched and barely thought about FP in close to a decade. looking to play with it again, but can't think of a toy project to implement - any ideas? |
2021-10-19 23:07:54 +0200 | <sm> | (I didn't find it, otherwise dig in the history to find out who done it) |
2021-10-19 23:07:58 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) |
2021-10-19 23:08:15 +0200 | Moyst | (~moyst@user/moyst) |
2021-10-19 23:08:40 +0200 | <aln448> | not looking for anything flashy, no 'how to develop a game in x days' - i used to enjoy solving maths problems, deriving logic from first principles (played around with idris etc a lot) |
2021-10-19 23:08:58 +0200 | <aln448> | agda with few to no libraries, etc |
2021-10-19 23:09:08 +0200 | <fawful> | :) |
2021-10-19 23:09:22 +0200 | <aln448> | can anyone suggest something fun that might pique my interest and give me a reason to re-learn FP paradigm? |
2021-10-19 23:09:31 +0200 | <fawful> | do you like visual art |
2021-10-19 23:09:32 +0200 | <sm> | project euler problems |
2021-10-19 23:09:45 +0200 | acidjnk_new3 | (~acidjnk@p200300d0c703cb879d3ec1aa44300f05.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2021-10-19 23:09:56 +0200 | <aln448> | fawful: i'm afraid not |
2021-10-19 23:10:16 +0200 | <fawful> | I find creative projects to motivate me, but you might be different |
2021-10-19 23:10:24 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) (Remote host closed the connection) |
2021-10-19 23:10:28 +0200 | <aln448> | sm: have done this in a dozen programming languages a dozen times, they get boring. i'd like something that allows me to rely on my own intuition and be a little creative |
2021-10-19 23:10:32 +0200 | <monochrom> | Parsing or interpreting of a toy language. |
2021-10-19 23:10:39 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) |
2021-10-19 23:10:57 +0200 | <sm> | aln448: ok, then the christmas puzzles.. darn what's it called |
2021-10-19 23:11:03 +0200 | <fawful> | try to create a mind out of code |
2021-10-19 23:11:08 +0200 | <c_wraith> | advent of code |
2021-10-19 23:11:18 +0200 | <aln448> | cannot count how many times i've started writing a lisp but gotten bored half-way through :( been a long time since i've done it functionally, but still looking for something more 'fresh' |
2021-10-19 23:11:22 +0200 | <sm> | ^^ |
2021-10-19 23:11:22 +0200 | <fawful> | maybe you will succeed who knows |
2021-10-19 23:11:25 +0200 | <aln448> | advent of code is coming up, that's right |
2021-10-19 23:11:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-10-19 23:11:41 +0200 | <monochrom> | No, interpreting lisp is boring. Try interpreting a toy prolog. |
2021-10-19 23:11:55 +0200 | <c_wraith> | if you go back to the year with intcode and try to build your interpreter in a really reusable way, that's an interesting challenge. |
2021-10-19 23:12:18 +0200 | <geekosaur> | interpret a toy sml and confuse everyone :þ |
2021-10-19 23:12:22 +0200 | <aln448> | hah |
2021-10-19 23:12:33 +0200 | <monochrom> | intepret C, and turn the table around :) |
2021-10-19 23:12:43 +0200 | <aln448> | was thinking maybe a static site generator, pushing the 'practical' element here |
2021-10-19 23:12:45 +0200 | <monochrom> | In fact it would turn two tables around. |
2021-10-19 23:13:07 +0200 | <awpr> | or a language with linear logic at its core. that's similar enough to Haskell's core to have something to draw inspiration from, but novel enough to have room for creativity |
2021-10-19 23:13:15 +0200 | <aln448> | would be interested in anything involved in prop/first/maybe even second (been a while) level logic though |
2021-10-19 23:13:38 +0200 | <aln448> | i kinda missed out on hott the first time around and from blog posts at least, it sounds interesting |
2021-10-19 23:13:46 +0200 | <monochrom> | theorem prover? |
2021-10-19 23:13:51 +0200 | <sm> | if you want practical, how about some new accounting/investing reports for hledger |
2021-10-19 23:14:26 +0200 | <monochrom> | HOL4 is a theorem prover written in SML. So implement an SML interpreter, there you have it? |
2021-10-19 23:15:34 +0200 | <monochrom> | OTOH a theorem prover in Haskell directly has its upsides too. In particular, tactical theorem proving is a monad. HOL4 misses out on that. |
2021-10-19 23:16:48 +0200 | <aln448> | perhaps i could implement prelude in some other language? |
2021-10-19 23:16:58 +0200 | <monochrom> | StateT Goal [] to be exact. |
2021-10-19 23:18:55 +0200 | <monochrom> | Err oops, no, more complicated than StateT Goal [] |
2021-10-19 23:19:35 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-10-19 23:19:57 +0200 | <aln448> | thanks for the thoughts here guys, some nice ideas |
2021-10-19 23:20:35 +0200 | <geekosaur> | you could also consider contributing to a project; hledger was already mentioned, and xmonad-contrib is always open to new submissions |
2021-10-19 23:21:44 +0200 | <aln448> | i'm familiar with xmonad, and daily-drive dwm, have contributed a bunch of stuff (C though) |
2021-10-19 23:22:02 +0200 | <aln448> | that's perhaps a nice idea - i'm sure there are some plugins for dwm that i could port to xmonad |
2021-10-19 23:24:55 +0200 | cjay | (cjay@nerdbox.nerd2nerd.org) (Quit: peepoLeave) |
2021-10-19 23:25:15 +0200 | cjay | (cjay@nerdbox.nerd2nerd.org) |
2021-10-19 23:26:04 +0200 | boxscape_ | (~boxscape_@p54a3581e.dip0.t-ipconnect.de) |
2021-10-19 23:26:14 +0200 | <aln448> | thanks, people - i should head off now, but one last question given i'm here and there's a good chance someone here will know |
2021-10-19 23:27:19 +0200 | <aln448> | is conor mcbride still active/around? last i heard from a friend was that he was having some health problems, but the only contact i had with him was on twitter, and i believe he was banned/left/deactivated from the platform a while back |
2021-10-19 23:31:05 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) (Remote host closed the connection) |
2021-10-19 23:31:16 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:9105:355e:98db:81cc) |
2021-10-19 23:31:32 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-10-19 23:31:45 +0200 | coot | (~coot@37.30.48.91.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-10-19 23:35:39 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) (Remote host closed the connection) |
2021-10-19 23:35:46 +0200 | fendor_ | (~fendor@178.115.49.60.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-19 23:40:27 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2021-10-19 23:42:14 +0200 | michalz | (~michalz@185.246.204.77) (Remote host closed the connection) |
2021-10-19 23:43:16 +0200 | Null_A | (~null_a@2601:645:8700:2290:a94b:e46c:6690:e477) |
2021-10-19 23:44:32 +0200 | <dsal> | aln448: A couple years ago AoC was basically a course in interpretation and stuff. I tend to write more parsers than necessary, but you had to build an interpreter, then you'd get puzzles that were built for programs your interpreter's language and you had to build solutions on top of that runtime with foreign programs. It was pretty good. |
2021-10-19 23:44:42 +0200 | <dsal> | I think a few from last year were solved almost entirely in the parser. |
2021-10-19 23:45:01 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-10-19 23:49:02 +0200 | pavonia | (~user@user/siracusa) |
2021-10-19 23:49:38 +0200 | slack1256 | (~slack1256@45.4.2.52) (Ping timeout: 265 seconds) |
2021-10-19 23:53:04 +0200 | pmk | (~user@2a02:587:9418:a234:40de:ca53:4e3:4a70) (Ping timeout: 258 seconds) |
2021-10-19 23:54:12 +0200 | ubert | (~Thunderbi@91.141.50.28.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-10-19 23:59:28 +0200 | burnsidesLlama | (~burnsides@dhcp168-039.wadham.ox.ac.uk) (Remote host closed the connection) |