Logs: liberachat/#haskell
| 2021-06-26 19:58:19 | → | xkuru joins (~xkuru@user/xkuru) |
| 2021-06-26 19:58:48 | <dminuoso> | Due to the recent discussion on the haskell mailing list, I think such proposals create a lot of friction unless -Wcompat was included by -Wall |
| 2021-06-26 19:58:59 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 244 seconds) |
| 2021-06-26 19:59:21 | <dminuoso> | Even if -Wall was included -Wall, Im not convinced most people actually have -Wall turned on. |
| 2021-06-26 19:59:32 | <qrpnxz> | i like that it would make it impossible for pure /= return and such |
| 2021-06-26 19:59:46 | <maralorn> | At some point I have largely stopped worrying about Haskell being to large (i.e. to many passing programs) and just cared about it becoming large enough for me. So that I can write the program I want to write. |
| 2021-06-26 20:00:29 | → | chisui joins (~chisui@200116b8665ca2000dd322c548f95515.dip.versatel-1u1.de) |
| 2021-06-26 20:00:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-06-26 20:01:03 | × | dunkeln quits (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds) |
| 2021-06-26 20:01:24 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2021-06-26 20:03:20 | <dmj`> | maralorn: haskell programs are too big to fail |
| 2021-06-26 20:03:25 | <qrpnxz> | lol |
| 2021-06-26 20:06:07 | <spruit11> | or too big to succeed |
| 2021-06-26 20:06:53 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds) |
| 2021-06-26 20:08:03 | <dminuoso> | dmj`: Do you think we get government bailouts when GHC no longer compiles our programs? |
| 2021-06-26 20:08:49 | <dminuoso> | Considering the presence of Haskell in fintech, who knows... |
| 2021-06-26 20:09:04 | → | dunkeln_ joins (~dunkeln@188.71.193.140) |
| 2021-06-26 20:09:16 | <chisui> | Before that happens they would have to provide Java Apps with RAM. |
| 2021-06-26 20:09:31 | <dmj`> | dminuoso: If you're in a higher-kinded class then yes. |
| 2021-06-26 20:10:18 | × | dunkeln_ quits (~dunkeln@188.71.193.140) (Client Quit) |
| 2021-06-26 20:15:15 | <dmj`> | dminuoso: I'm working on a project to type check SQL queries against a SQL schema generated using GHC.Generics |
| 2021-06-26 20:15:25 | <dmj`> | in a quasi quoter |
| 2021-06-26 20:16:03 | × | Guest9 quits (~Guest9@103.86.19.137) (Quit: Connection closed) |
| 2021-06-26 20:19:12 | → | acidjnk joins (~acidjnk@p200300d0c72b9515dd29d5fa98a40466.dip0.t-ipconnect.de) |
| 2021-06-26 20:24:21 | <qrpnxz> | ' |
| 2021-06-26 20:28:09 | → | iridescent joins (~iridescen@41337027.cst.lightpath.net) |
| 2021-06-26 20:28:17 | <iridescent> | anyone have a good explanation to algebraic effects? |
| 2021-06-26 20:28:25 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 2021-06-26 20:28:26 | <iridescent> | i don't really want to read the original paper |
| 2021-06-26 20:28:36 | <iridescent> | i tried and it was too dense :( |
| 2021-06-26 20:29:36 | <davean> | iridescent: what level do you want it at? That matters a lot |
| 2021-06-26 20:29:44 | <iridescent> | oh, i'm a complete beginner |
| 2021-06-26 20:29:58 | <iridescent> | people were talking about it at a PL discussion |
| 2021-06-26 20:30:01 | <iridescent> | and i got curious :) |
| 2021-06-26 20:30:30 | <qrpnxz> | foldable class has a lot of methods, but is not complete. There's like 50 versions of fold, yet no fold1, or fold', weird. |
| 2021-06-26 20:30:41 | <davean> | iridescent: ok, then "effects" = things happen, "algebraic" = you get laws about how they interact |
| 2021-06-26 20:30:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-06-26 20:31:01 | <iridescent> | oh oops i meant like, do you have a good article that explains it :P |
| 2021-06-26 20:31:08 | <davean> | iridescent: "effects" libraries when you see them under that name often have an issue with knowing what happens when you use more than one |
| 2021-06-26 20:33:06 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
| 2021-06-26 20:35:22 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 2021-06-26 20:42:43 | <dsal> | qrpnxz: what would `fold1` look like? |
| 2021-06-26 20:43:20 | <qrpnxz> | it would take a foldable of semigroups and give you a semigroup |
| 2021-06-26 20:43:31 | <dsal> | Oh. There's one in semigroupoids that does that. |
| 2021-06-26 20:44:12 | <qrpnxz> | yeah i was sure someone wrote it, i'm just saying idk the logic about what does get into Foldable and what doesn't, cause it already has like a bazillion combinations of properties lol |
| 2021-06-26 20:44:42 | <dsal> | Is it partial? The signature isn't super clear. |
| 2021-06-26 20:44:55 | <qrpnxz> | not sure what you are asking sorry |
| 2021-06-26 20:45:54 | <dsal> | > foldl1 (+) [] :: Int -- foldl1 is partial |
| 2021-06-26 20:45:55 | <lambdabot> | *Exception: Prelude.foldl1: empty list |
| 2021-06-26 20:46:08 | <dsal> | But the one in semigroups isn't defined for [], so that's probably fine. |
| 2021-06-26 20:46:29 | <dsal> | It has a special typeclass `Foldable1` |
| 2021-06-26 20:46:31 | <qrpnxz> | it would error on empty foldable since semigroup has no mempty |
| 2021-06-26 20:46:37 | <qrpnxz> | like foldl1 and foldr1 |
| 2021-06-26 20:46:45 | <dsal> | Yes, those are partial functions. Partial functions are bad. :) |
| 2021-06-26 20:47:08 | <qrpnxz> | well how do you say "give me a nonempty foldable" :) |
| 2021-06-26 20:47:15 | <qrpnxz> | no way currenty |
| 2021-06-26 20:47:16 | <dsal> | @hoogle NonEmpty |
| 2021-06-26 20:47:16 | <lambdabot> | module Data.List.NonEmpty |
| 2021-06-26 20:47:16 | <lambdabot> | Data.List.NonEmpty data NonEmpty a |
| 2021-06-26 20:47:16 | <lambdabot> | GHC.Base data NonEmpty a |
| 2021-06-26 20:47:21 | <qrpnxz> | NonEmpty is for lists no? |
| 2021-06-26 20:47:41 | <dsal> | Oh, sure, but this is how they did it in semigroupoids: https://hackage.haskell.org/package/semigroupoids-5.3.5/docs/Data-Semigroup-Foldable.html#v:fold1 |
| 2021-06-26 20:47:47 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@192.252.212.45) (Quit: Leaving) |
| 2021-06-26 20:48:46 | <qrpnxz> | so a law would be like toNonEmpty cannot be partial? but you can just say there's a law that says fold1 is also not partial |
| 2021-06-26 20:49:31 | <dsal> | Well, fold1 is only not partial if the thing you're feeding it can't be empty. |
| 2021-06-26 20:49:43 | <dsal> | So you just have to worry about the Foldable1 class lawfulness. |
| 2021-06-26 20:49:48 | <qrpnxz> | right the only guarantee of that is the programmer promisses |
| 2021-06-26 20:50:04 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 2021-06-26 20:52:05 | <dsal> | Sort of? I mean, you can make an empty non-empty if you considered `undefined :| []` a valid result, but you can throw `undefined` anywhere if you want to be chaotic. |
| 2021-06-26 20:52:35 | <dsal> | (and even then, it's technically not empty depending on what you're going to do with it) |
| 2021-06-26 20:53:06 | × | SoF quits (~skius@user/skius) (Quit: Ping timeout (120 seconds)) |
| 2021-06-26 20:53:24 | → | SoF joins (~skius@user/skius) |
| 2021-06-26 20:56:41 | × | dhil quits (~dhil@80.208.56.181) (Read error: Connection reset by peer) |
| 2021-06-26 20:57:29 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 2021-06-26 20:58:55 | × | chisui quits (~chisui@200116b8665ca2000dd322c548f95515.dip.versatel-1u1.de) (Ping timeout: 246 seconds) |
| 2021-06-26 21:03:23 | → | Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 2021-06-26 21:05:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 2021-06-26 21:11:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 2021-06-26 21:13:59 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 2021-06-26 21:16:06 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 2021-06-26 21:18:11 | × | eco quits (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (Ping timeout: 250 seconds) |
| 2021-06-26 21:19:27 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 2021-06-26 21:30:47 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2021-06-26 21:33:57 | <qrpnxz> | would (Monad m, Monad t, Traversable t) => Compose m t always be a monad? |
| 2021-06-26 21:35:06 | <qrpnxz> | given that join = fmap join . join . fmap sequenceA (which ik you can't make an instance with this, but would it follow the monad laws anyway is the question) |
| 2021-06-26 21:39:27 | × | norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds) |
| 2021-06-26 21:42:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-06-26 21:43:22 | → | chisui joins (~chisui@200116b864537a005c14c63c4df5fc2e.dip.versatel-1u1.de) |
| 2021-06-26 21:50:49 | → | m7zs3gzw joins (~m7zs3gzw@178.155.6.220) |
| 2021-06-26 21:56:55 | × | m7zs3gzw quits (~m7zs3gzw@178.155.6.220) (Remote host closed the connection) |
| 2021-06-26 21:58:40 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 2021-06-26 21:59:11 | → | a6a45081-2b83 joins (~aditya@106.214.225.112) |
| 2021-06-26 21:59:44 | × | yoctocell quits (~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 268 seconds) |
| 2021-06-26 21:59:45 | <a6a45081-2b83> | {f::[Int];f=do{return 2; return 3;}} |
| 2021-06-26 21:59:50 | <a6a45081-2b83> | f==[2,3] ?? |
| 2021-06-26 22:01:34 | <geekosaur> | > let f :: [Int]; f = do { return 2; return 3; } |
| 2021-06-26 22:01:35 | <lambdabot> | <no location info>: error: |
| 2021-06-26 22:01:35 | <lambdabot> | not an expression: ‘let f :: [Int]; f = do { return 2; return 3; }’ |
| 2021-06-26 22:01:41 | <geekosaur> | > let f :: [Int]; f = do { return 2; return 3; } in f |
| 2021-06-26 22:01:42 | <lambdabot> | [3] |
All times are in UTC.