Logs: freenode/#haskell
| 2021-03-13 05:22:52 | <monochrom> | There were two questions. First one was about old code from The Gentle Introduction not compiling today. Second was a history question. |
| 2021-03-13 05:23:00 | <glguy> | hololeap, Long ago we just had IOError. You could throw IO error, you could catch them, That was the type of exceptions. Want to make your own exception? userError :: String -> IOError |
| 2021-03-13 05:23:33 | <glguy> | A simpler time when nothing went wrong and there weren't any interesting errors to speak about |
| 2021-03-13 05:23:42 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds) |
| 2021-03-13 05:24:22 | <glguy> | ioError :: IOError -> IO a |
| 2021-03-13 05:24:23 | <glguy> | catch :: IO a -> (IOError -> IO a) -> IO a |
| 2021-03-13 05:24:26 | <infinisil> | But then everything changed when the fir.. functions wanted to throw their own exceptions |
| 2021-03-13 05:24:27 | <c_wraith> | it was sad when we invented a flaky external world |
| 2021-03-13 05:25:03 | <glguy> | and then people started writing programs that could fail in elaborate ways and they wanted elaborate, new exception types to throw and catch |
| 2021-03-13 05:25:42 | × | monadmatt quits (~user@119-17-128-101.771180.mel.nbn.aussiebb.net) (Ping timeout: 246 seconds) |
| 2021-03-13 05:26:32 | <Lycurgus> | let a hundred fleurs de mal blossom! |
| 2021-03-13 05:28:13 | <infinisil> | I'm kind of hoping for some open-union Either way of throwing errors is getting adopted |
| 2021-03-13 05:29:25 | → | CMCDragonkai2 joins (~Thunderbi@60-242-118-130.tpgi.com.au) |
| 2021-03-13 05:30:37 | <Lycurgus> | in soviet FP, safe-exceptions is a sacred profanity |
| 2021-03-13 05:30:45 | × | Lycurgus quits (~niemand@98.4.114.199) (Quit: Exeunt) |
| 2021-03-13 05:32:31 | <monochrom> | First you have to get open unions. :) |
| 2021-03-13 05:32:52 | <curiousgay> | monochrom: btw, have you tried declarative programming languages that are not functional (for example, logic, dataflow)? I want the picture of declarative programming as a whole |
| 2021-03-13 05:34:18 | <hololeap> | so, i take it that the "async exception" paper has nothing to do with AsyncException that safe-exceptions tries to handle? |
| 2021-03-13 05:35:56 | <c_wraith> | no, that's what it's about. but that isn't the problem being discussed |
| 2021-03-13 05:37:06 | <monochrom> | safe-exceptions is way after both the paper and the type existed. |
| 2021-03-13 05:39:30 | <hololeap> | i just read the relevant part of the tutorial mentioned and i think i understand now. |
| 2021-03-13 05:39:44 | <monochrom> | I did some Prolog homework a long time ago. Recently I realized that logic programming would be great for writing down type inference algorithms. You just transcribe the type rules, then the computer will fill in unification for you, no need to call "unify" explicitly and manually thread metavariables. |
| 2021-03-13 05:41:35 | <hololeap> | i didn't expect it to have a definition of `catch` that is so different from the current version |
| 2021-03-13 05:41:40 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 2021-03-13 05:41:59 | <hololeap> | s/definition/type signature/ |
| 2021-03-13 05:43:14 | <curiousgay> | haha, I'll need to adjust to current standard after I finish reading this tutorial |
| 2021-03-13 05:43:15 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer) |
| 2021-03-13 05:43:38 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 2021-03-13 05:44:57 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 2021-03-13 05:47:33 | × | poscat1 quits (~poscat@123.116.89.28) (Ping timeout: 245 seconds) |
| 2021-03-13 05:48:36 | → | poscat joins (~poscat@123.112.148.153) |
| 2021-03-13 05:51:37 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 2021-03-13 05:53:00 | × | myShoggoth quits (~myShoggot@75.164.81.55) (Ping timeout: 246 seconds) |
| 2021-03-13 05:54:03 | → | ddellacosta joins (~ddellacos@86.106.143.10) |
| 2021-03-13 05:55:26 | × | kensanata quits (~kensanata@195.140.213.38) (Remote host closed the connection) |
| 2021-03-13 05:56:00 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-03-13 05:59:19 | × | ddellacosta quits (~ddellacos@86.106.143.10) (Ping timeout: 276 seconds) |
| 2021-03-13 06:00:36 | × | poscat quits (~poscat@123.112.148.153) (Remote host closed the connection) |
| 2021-03-13 06:01:03 | × | Jd007 quits (~Jd007@162.156.11.151) (Quit: Jd007) |
| 2021-03-13 06:01:09 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 2021-03-13 06:02:54 | → | poscat joins (~poscat@123.112.148.153) |
| 2021-03-13 06:08:09 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 2021-03-13 06:09:01 | → | yalm joins (~yalm@unaffiliated/yalm) |
| 2021-03-13 06:09:38 | → | frozenErebus joins (~frozenEre@94.128.82.20) |
| 2021-03-13 06:14:23 | → | jeremybennett joins (~jeremyben@37.120.211.188) |
| 2021-03-13 06:16:52 | × | joebobjoe quits (~joebobjoe@unaffiliated/joebobjoe) (Ping timeout: 276 seconds) |
| 2021-03-13 06:17:26 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-skqtalghxubvhphg) (Quit: Connection closed for inactivity) |
| 2021-03-13 06:18:47 | → | slack1256 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
| 2021-03-13 06:22:30 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 2021-03-13 06:23:58 | → | kam1 joins (~kam1@83.123.154.198) |
| 2021-03-13 06:25:09 | × | xsperry quits (~as@unaffiliated/xsperry) (Ping timeout: 264 seconds) |
| 2021-03-13 06:26:57 | × | kam1 quits (~kam1@83.123.154.198) (Read error: Connection reset by peer) |
| 2021-03-13 06:27:21 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 2021-03-13 06:27:44 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 2021-03-13 06:29:07 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 2021-03-13 06:29:26 | × | spoonm quits (~spoonm@tokyo.spoonm.org) (Ping timeout: 264 seconds) |
| 2021-03-13 06:30:23 | → | ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 2021-03-13 06:33:48 | × | azure1 quits (~azure@103.154.230.130) (Ping timeout: 245 seconds) |
| 2021-03-13 06:34:45 | → | azure1 joins (~azure@103.154.230.130) |
| 2021-03-13 06:35:03 | × | ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds) |
| 2021-03-13 06:43:36 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 256 seconds) |
| 2021-03-13 06:45:25 | → | mmohammadi9812 joins (~mmohammad@2.178.240.243) |
| 2021-03-13 06:46:11 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 2021-03-13 06:46:46 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 276 seconds) |
| 2021-03-13 06:49:34 | → | v75-AsSeNtE joins (~Raul@host-87-18-109-234.retail.telecomitalia.it) |
| 2021-03-13 06:49:47 | <v75-AsSeNtE> | hello |
| 2021-03-13 06:49:54 | <v75-AsSeNtE> | !info |
| 2021-03-13 06:50:25 | <v75-AsSeNtE> | !request |
| 2021-03-13 06:50:56 | <glguy> | v75-AsSeNtE, are you looking for something Haskell related? |
| 2021-03-13 06:53:56 | → | raym joins (~ray@45.64.220.113) |
| 2021-03-13 06:55:11 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Quit: leaving) |
| 2021-03-13 06:55:39 | → | stree joins (~stree@68.36.8.116) |
| 2021-03-13 06:56:30 | × | v75-AsSeNtE quits (~Raul@host-87-18-109-234.retail.telecomitalia.it) (Quit: over35 la mia scelta! http://chatover35.altervista.org/) |
| 2021-03-13 06:58:31 | <dmwit> | infinisil: Hm. Is the current exception mechanism not essentially an open union-alike? |
| 2021-03-13 06:59:23 | × | slack1256 quits (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Read error: Connection reset by peer) |
| 2021-03-13 06:59:31 | → | slac36247 joins (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
| 2021-03-13 07:00:23 | → | kam1 joins (~kam1@83.123.154.198) |
| 2021-03-13 07:00:42 | <infinisil> | dmwit: Hm yeah, though untyped |
| 2021-03-13 07:01:00 | <dmwit> | err, untyped? |
| 2021-03-13 07:01:59 | → | ddellacosta joins (~ddellacos@86.106.143.70) |
| 2021-03-13 07:02:15 | <infinisil> | dmwit: Well, functions don't tell you what they throw |
| 2021-03-13 07:02:19 | <infinisil> | from the type signature |
| 2021-03-13 07:02:27 | <dmwit> | Ah, yeah, that is true. |
| 2021-03-13 07:02:32 | <dmwit> | It's an interesting tradeoff. |
| 2021-03-13 07:02:46 | × | toorevitimirp quits (~tooreviti@117.182.180.50) (Remote host closed the connection) |
| 2021-03-13 07:03:22 | <dmwit> | For industrial-strength stuff you obviously want that, and the attending annoyance is just enforcing good practices. |
| 2021-03-13 07:03:24 | × | kam1 quits (~kam1@83.123.154.198) (Read error: Connection reset by peer) |
| 2021-03-13 07:03:46 | <dmwit> | For your one-off weekend projects, you usually don't want that because it gets in the way of throwing together an MVP. |
| 2021-03-13 07:04:20 | <infinisil> | I'm not sure if that has to be the case |
| 2021-03-13 07:05:08 | <infinisil> | What if an open union for errors was part of base, and all libraries used it |
| 2021-03-13 07:05:29 | <dmwit> | I expect most IO-y type signatures would be littered with extra stuff, and most numerical calculations, too. |
| 2021-03-13 07:05:31 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-ilslhqpdgnemujjo) (Quit: Connection closed for inactivity) |
| 2021-03-13 07:05:47 | <dmwit> | Do you think they wouldn't? |
| 2021-03-13 07:06:21 | <infinisil> | Yeah they might, but that sounds better in the long term |
| 2021-03-13 07:06:25 | <dmwit> | (And the closer you get to `main` the larger the collection of litter.) |
| 2021-03-13 07:06:41 | <dmwit> | Right. Long-term projects definitely want that, I agree. |
| 2021-03-13 07:07:09 | × | ddellacosta quits (~ddellacos@86.106.143.70) (Ping timeout: 264 seconds) |
| 2021-03-13 07:07:26 | <dmwit> | Mmm, well. Projects where you care about doing things right want that. ^_^ |
| 2021-03-13 07:07:49 | <dmwit> | A lot of hobby programming is just sort of fine with exceptional behavior just being exceptional and crashing. |
| 2021-03-13 07:07:56 | <infinisil> | I'm actually not sure how an interface for easily bubbling up errors from arbitrary functions would look like |
All times are in UTC.