Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
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.