Logs: freenode/#haskell
| 2020-10-01 20:33:49 | <Cale> | Most of the time, you can just return a value that represents the failure explicitly, and that will both make the user aware of the possibility, and pretty much ensure that it gets handled. |
| 2020-10-01 20:34:23 | <maerwald> | we had the discussion once why haskell didn't to the rust way of not having exceptions at all (just panic) |
| 2020-10-01 20:34:27 | <maralorn> | Then always someone comes around and tells me that there are exceptions (notably oom or async stuff) you can‘t force the dev to handle. |
| 2020-10-01 20:34:35 | <maerwald> | I don't remember the conclusion, it was a convoluted discussion |
| 2020-10-01 20:35:18 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 2020-10-01 20:36:17 | <Cale> | Or of course, there are a wide range of things you can do with special monads |
| 2020-10-01 20:37:05 | <Cale> | I've never wished that Haskell had more ways to express failure... there are almost too many already :) |
| 2020-10-01 20:37:18 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 2020-10-01 20:37:20 | <maralorn> | Yeah, that's true. |
| 2020-10-01 20:38:01 | <maerwald> | it's just Maybe, Either, These, ExceptT, MonadThrow, MonadFail, open variants, IO exceptions (async and sync), ... |
| 2020-10-01 20:38:21 | × | shatriff quits (~vitaliish@haunt.prize.volia.net) (Remote host closed the connection) |
| 2020-10-01 20:38:28 | <maralorn> | MonadPlus |
| 2020-10-01 20:38:39 | <maerwald> | MonadErrorFactory |
| 2020-10-01 20:39:02 | <maralorn> | And of course "error" … |
| 2020-10-01 20:39:33 | <Cale> | (and throw) |
| 2020-10-01 20:39:36 | <maralorn> | @hoogle MonadErrorFactory |
| 2020-10-01 20:39:36 | <lambdabot> | No results found |
| 2020-10-01 20:39:42 | <maerwald> | :D |
| 2020-10-01 20:39:59 | <maerwald> | I would have killed myself if that had returned any results |
| 2020-10-01 20:40:36 | ski | . o O ( restarts <https://mumble.net/~campbell/proposals/restart.text>,<http://www.gnu.org/software/mit-scheme/documentation/stable/mit-scheme-ref/Restarts.html>,<https://lisper.in/restarts>,<http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html>,<https://en.wikibooks.org/wiki/Common_Lisp/Advanced_topics/Condition_System> ) |
| 2020-10-01 20:41:24 | <maerwald> | I guess the only thing we don't do in haskell is signal failure with Int |
| 2020-10-01 20:41:35 | <maerwald> | everything else we got covered |
| 2020-10-01 20:42:57 | → | acidjnk_new joins (~acidjnk@p200300d0c723788040fc08bec5cc5c11.dip0.t-ipconnect.de) |
| 2020-10-01 20:44:17 | × | xff0x quits (~fox@2001:1a81:5220:1600:f180:f194:ac6e:4ac8) (Ping timeout: 260 seconds) |
| 2020-10-01 20:44:37 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:4135:276:e32f:4d13) |
| 2020-10-01 20:44:54 | → | xff0x joins (~fox@2001:1a81:5220:1600:3ce1:e817:dda8:9f17) |
| 2020-10-01 20:44:57 | <koz_> | @info asum |
| 2020-10-01 20:44:58 | <lambdabot> | asum |
| 2020-10-01 20:45:02 | <koz_> | @hoogle asum |
| 2020-10-01 20:45:03 | <lambdabot> | Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a |
| 2020-10-01 20:45:03 | <lambdabot> | Data.Conduit.Combinators asum :: (Monad m, Alternative f) => ConduitT (f a) o m (f a) |
| 2020-10-01 20:45:03 | <lambdabot> | Protolude asum :: (Foldable t, Alternative f) => t (f a) -> f a |
| 2020-10-01 20:45:30 | × | mav1 quits (~mav@83.135.139.36) (Ping timeout: 272 seconds) |
| 2020-10-01 20:47:52 | <ski> | @. hoogle type (asum .) . fmap |
| 2020-10-01 20:47:55 | <lambdabot> | Util altMap :: (Alternative p, Foldable f) => (a -> p b) -> f a -> p b |
| 2020-10-01 20:47:55 | <lambdabot> | Relude.Foldable.Fold asumMap :: forall b m f a . (Foldable f, Alternative m) => (a -> m b) -> f a -> m b |
| 2020-10-01 20:47:56 | <lambdabot> | Control.Effect.NonDet foldMapA :: (Foldable t, Alternative m) => (a -> m b) -> t a -> m b |
| 2020-10-01 20:49:07 | <koz_> | @hoogle ($>) |
| 2020-10-01 20:49:08 | <lambdabot> | Data.Functor ($>) :: Functor f => f a -> b -> f b |
| 2020-10-01 20:49:08 | <lambdabot> | Data.Functor.Compat ($>) :: Functor f => f a -> b -> f b |
| 2020-10-01 20:49:08 | <lambdabot> | Data.Functor.Apply ($>) :: Functor f => f a -> b -> f b |
| 2020-10-01 20:50:06 | × | mmohammadi9812 quits (~mmohammad@188.210.100.86) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 2020-10-01 20:50:56 | <koz_> | > ['0' .. '2'] |
| 2020-10-01 20:50:58 | <lambdabot> | "012" |
| 2020-10-01 20:51:37 | × | borne quits (~fritjof@200116b864e6dd0007933c164a08810c.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 2020-10-01 20:52:31 | → | rprije joins (~rprije@203.214.95.251) |
| 2020-10-01 20:53:58 | hackage | b9 3.1.0 - A tool and library for building virtual machine images. https://hackage.haskell.org/package/b9-3.1.0 (SvenHeyll) |
| 2020-10-01 20:54:55 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection) |
| 2020-10-01 20:55:34 | → | day_ joins (~Unknown@unaffiliated/day) |
| 2020-10-01 20:57:26 | → | o1lo01ol_ joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) |
| 2020-10-01 20:57:33 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2020-10-01 20:57:57 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2020-10-01 20:58:25 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 240 seconds) |
| 2020-10-01 20:58:25 | day_ | is now known as day |
| 2020-10-01 20:58:41 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 2020-10-01 20:58:53 | × | chaosmasttter quits (~chaosmast@p200300c4a711ea01117f5b872fbc48e3.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 2020-10-01 21:00:22 | × | o1lo01ol1o quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 244 seconds) |
| 2020-10-01 21:03:13 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
| 2020-10-01 21:05:08 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 2020-10-01 21:05:25 | <koz_> | @hoogle replicateM |
| 2020-10-01 21:05:25 | <lambdabot> | Control.Monad replicateM :: Applicative m => Int -> m a -> m [a] |
| 2020-10-01 21:05:25 | <lambdabot> | Data.Sequence replicateM :: Applicative m => Int -> m a -> m (Seq a) |
| 2020-10-01 21:05:26 | <lambdabot> | Data.Sequence.Internal replicateM :: Applicative m => Int -> m a -> m (Seq a) |
| 2020-10-01 21:05:31 | <koz_> | Ah, Control.Monad. |
| 2020-10-01 21:05:38 | <koz_> | The odd sock drawer of base. |
| 2020-10-01 21:06:39 | ← | nwoob parts (~apple@unaffiliated/nwoob) () |
| 2020-10-01 21:08:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2020-10-01 21:09:27 | × | mahene quits (~mahene@2a02:8109:86c0:8d68:5400:2bfd:d746:732c) (Ping timeout: 272 seconds) |
| 2020-10-01 21:09:58 | × | st8less quits (~st8less@ip72-204-59-82.fv.ks.cox.net) (Ping timeout: 260 seconds) |
| 2020-10-01 21:10:42 | → | ashbreeze joins (~mark@72-161-254-200.dyn.centurytel.net) |
| 2020-10-01 21:12:24 | → | andoluca joins (~andoluca@2800:810:42b:2b4d:7956:556c:5013:7afa) |
| 2020-10-01 21:12:50 | → | borne joins (~fritjof@200116b864e6dd0007933c164a08810c.dip.versatel-1u1.de) |
| 2020-10-01 21:13:03 | ← | andoluca parts (~andoluca@2800:810:42b:2b4d:7956:556c:5013:7afa) () |
| 2020-10-01 21:13:07 | × | _ashbreeze_ quits (~mark@72-161-254-200.dyn.centurytel.net) (Ping timeout: 240 seconds) |
| 2020-10-01 21:14:40 | → | knupfer joins (~Thunderbi@i59F7FFF3.versanet.de) |
| 2020-10-01 21:16:47 | × | argent0 quits (~argent0@168.227.96.2) (Ping timeout: 240 seconds) |
| 2020-10-01 21:21:48 | <dolio> | Well, there's also replicateA, I think. |
| 2020-10-01 21:22:04 | <koz_> | @info replicateA |
| 2020-10-01 21:22:05 | <lambdabot> | replicateA |
| 2020-10-01 21:22:09 | <koz_> | @hoogle replicateA |
| 2020-10-01 21:22:10 | <lambdabot> | Data.Sequence replicateA :: Applicative f => Int -> f a -> f (Seq a) |
| 2020-10-01 21:22:10 | <lambdabot> | Data.Sequence.Internal replicateA :: Applicative f => Int -> f a -> f (Seq a) |
| 2020-10-01 21:22:10 | <lambdabot> | RIO.Seq replicateA :: Applicative f => Int -> f a -> f (Seq a) |
| 2020-10-01 21:22:55 | <dolio> | Oh, they just generalized the M one? Weird. |
| 2020-10-01 21:23:12 | <koz_> | dolio: Yep. It should really be named replicateA. |
| 2020-10-01 21:23:23 | <koz_> | But then again, MonadZip should really be ApplicativeZip... |
| 2020-10-01 21:23:40 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-zotxyxtmvllkllma) |
| 2020-10-01 21:23:44 | <dolio> | Well, it predates Applicative. |
| 2020-10-01 21:23:53 | <Uniaika> | nah it should be "replicA" |
| 2020-10-01 21:24:28 | <Uniaika> | and for a version that returns f (Seq ()), "repliCant" |
| 2020-10-01 21:24:52 | <Rembane> | You need that test to see if the function goes psycho and kills you. |
| 2020-10-01 21:25:02 | <Uniaika> | :D |
| 2020-10-01 21:25:04 | <koz_> | Uniaika: I vote then that it should be 'repliCan'. |
| 2020-10-01 21:25:19 | <Uniaika> | koz_: not with that attitude |
| 2020-10-01 21:25:24 | <koz_> | Uniaika: :D |
| 2020-10-01 21:25:35 | <koz_> | I am, after all, by your own labelling, a 'trash boi'. |
| 2020-10-01 21:26:30 | <Uniaika> | oh yes absolutely |
| 2020-10-01 21:26:33 | <Uniaika> | :D |
| 2020-10-01 21:26:47 | × | LKoen quits (~LKoen@81.255.219.130) (Remote host closed the connection) |
| 2020-10-01 21:28:20 | <nshepperd> | let don't replicate a = [a] in don't replicate "this" |
All times are in UTC.