Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2021-03-27 02:14:06 × ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds)
2021-03-27 02:17:18 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2021-03-27 02:18:31 average joins (uid473595@gateway/web/irccloud.com/x-bfrylaicmxxrzmte)
2021-03-27 02:22:38 × pfurla quits (~pfurla@mx141.canadialed.com) (Ping timeout: 240 seconds)
2021-03-27 02:22:48 <gnumonic> Is there a typeclass anywhere for monads that you can "take things out of"? (i.e. that have a function :: m a -> a)
2021-03-27 02:23:40 <shachaf> Probably not anything meaningful.
2021-03-27 02:23:55 apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net)
2021-03-27 02:24:05 <shachaf> It's not a very sensible thing to abstract over, I think.
2021-03-27 02:24:46 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-03-27 02:25:36 <infinisil> gnumonic: There's MonoPointed: https://hackage.haskell.org/package/mono-traversable-1.0.15.1/docs/Data-MonoTraversable.html#t:MonoPointed
2021-03-27 02:26:26 <infinisil> gnumonic: Also, Comonad: https://hackage.haskell.org/package/comonad-5.0.8/docs/Control-Comonad.html#v:extract
2021-03-27 02:27:43 <shachaf> That former one does not look like a class that's very applicable here.
2021-03-27 02:28:10 <shachaf> Nor is Comonad, really. I guess the real question is what you want this sort of class for.
2021-03-27 02:28:26 <shachaf> And what instances are you imagining for it?
2021-03-27 02:29:03 <infinisil> Well gnumonic hasn't given any context yet, so hard to say if it's applicable
2021-03-27 02:29:51 <shachaf> The context is that it should be something applicable to monads.
2021-03-27 02:30:12 <shachaf> Also, wait, MonoPointed isn't even going in the right direction.
2021-03-27 02:30:29 <gnumonic> Oh I didn't want it for anything in particular, I'm just playing around (somewhat aimlessly) with ways of mixing the store comonad with other things
2021-03-27 02:30:38 <shachaf> You'd want a class with a name like "Copointed".
2021-03-27 02:30:55 <infinisil> Oh right, nevermind monopointed
2021-03-27 02:30:57 <shachaf> (Or, I mean, you probably don't. But that's what the class would be called.)
2021-03-27 02:31:11 <shachaf> My suggestion is that abstractions don't exist on their own, they exist to abstract over things.
2021-03-27 02:31:42 <shachaf> If you have two or three concrete things that can share a sensible function :: m a -> a, then it might reasonable to have an abstraction.
2021-03-27 02:32:01 × azure1 quits (~azure@103.154.230.130) (Read error: Connection reset by peer)
2021-03-27 02:32:27 azure1 joins (~azure@103.154.230.130)
2021-03-27 02:33:38 × Guest55480 quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
2021-03-27 02:34:16 hackage hasql-notifications 0.2.0.0 - LISTEN/NOTIFY support for Hasql https://hackage.haskell.org/package/hasql-notifications-0.2.0.0 (diogob)
2021-03-27 02:35:06 × waskell quits (~quassel@d66-183-124-203.bchsia.telus.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-03-27 02:35:15 <gnumonic> That's fair. I was really just curious, and a class like that would have made the types line up for an experiment that I can't actually think of an application for. Sometimes it's fun to just see what you can stick together while appeasing the compiler. But thanks :)
2021-03-27 02:35:39 × ericsagnes quits (~ericsagne@2405:6580:0:5100:3ab0:9401:ddfa:4aa4) (Ping timeout: 250 seconds)
2021-03-27 02:35:41 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-03-27 02:37:08 <shachaf> No, of course it's a reasonable question, but I think there's no particularly good general answer.
2021-03-27 02:37:57 × solvr quits (57e3c46d@87.227.196.109) (Quit: Connection closed)
2021-03-27 02:41:44 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-03-27 02:43:54 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-27 02:43:59 benkolera joins (uid285671@gateway/web/irccloud.com/x-xxmlbqheparjayob)
2021-03-27 02:44:27 astronavt joins (~astronavt@unaffiliated/astronavt)
2021-03-27 02:46:32 solvr joins (57e3c46d@87.227.196.109)
2021-03-27 02:46:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-03-27 02:47:18 × apache8080 quits (~rishi@wsip-70-168-153-252.oc.oc.cox.net) (Ping timeout: 240 seconds)
2021-03-27 02:47:52 ericsagnes joins (~ericsagne@2405:6580:0:5100:eee0:b3e1:482f:12f7)
2021-03-27 02:48:44 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-03-27 02:48:44 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 252 seconds)
2021-03-27 02:49:47 plutoniix joins (~q@node-unw.pool-125-24.dynamic.totinternet.net)
2021-03-27 02:50:01 × xff0x quits (~xff0x@2001:1a81:524d:5b00:4876:a583:9de0:62c1) (Ping timeout: 276 seconds)
2021-03-27 02:51:16 xff0x joins (~xff0x@2001:1a81:5267:7900:f33d:bbef:8155:bb1d)
2021-03-27 02:55:59 curiousgay using GHC 9.0.1
2021-03-27 02:56:26 <curiousgay> I want to cry, many packages are impossible to install because they require base to be version less than 4.15
2021-03-27 03:01:40 <dmj`> curiousgay: try 8.10.4
2021-03-27 03:02:50 <dmj`> curiousgay: you must be patient grasshopper
2021-03-27 03:08:35 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
2021-03-27 03:10:23 × elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.1)
2021-03-27 03:11:28 × elusive quits (~Jeanne-Ka@static-198-54-134-153.cust.tzulo.com) (Ping timeout: 252 seconds)
2021-03-27 03:14:33 elliott_ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-03-27 03:17:04 <curiousgay> dmj`: yeah, also it appears even with GHC 8.10.4 reflex is not available to me
2021-03-27 03:17:26 <dmj`> curiousgay: should be
2021-03-27 03:17:43 <curiousgay> base (>=4.9 && <4.14)
2021-03-27 03:18:28 <curiousgay> just why people have such inadequate requirements to dependencies
2021-03-27 03:19:04 <dmj`> curiousgay: well then heaven forbid use 8.10.3
2021-03-27 03:19:08 <dmj`> nix-shell -p 'haskellPackages.ghcWithPackages(p: with p; [reflex])' --run 'ghc-pkg list reflex'
2021-03-27 03:19:14 <dmj`> > reflex-0.8.0.0
2021-03-27 03:19:16 <lambdabot> error: Variable not in scope: reflex :: a -> c
2021-03-27 03:19:40 <dmj`> no flex zone
2021-03-27 03:20:54 <curiousgay> I mean every new release of base 4 is backwards compatible, right?
2021-03-27 03:20:58 × elliott_ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2021-03-27 03:21:11 × alx741 quits (~alx741@186.178.109.203) (Ping timeout: 240 seconds)
2021-03-27 03:21:16 <dmj`> curiousgay: there's a base-compat library that's meant to help with this sort of thing
2021-03-27 03:22:09 <dmj`> curiousgay: I just wouldn't upgrade the compiler until library authors are on board, stackage process will pressure people to upgrade
2021-03-27 03:22:28 <dmj`> pressure library authors* to upgrade
2021-03-27 03:22:37 <curiousgay> dmj`: I mean that base 4.15 is compatible with base 4.9, right?
2021-03-27 03:23:07 <curiousgay> otherwise I don't understand the versioning
2021-03-27 03:24:14 <curiousgay> minor version number increase is supposed to mean that API is stable
2021-03-27 03:24:19 dbmikus joins (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2021-03-27 03:24:21 <ephemient> curiousgay: most Haskell packages follow PVP not semver
2021-03-27 03:25:09 <Clint> curiousgay: just file bugs and accept this as a phenomenon that isn't getting fixed anytime soon
2021-03-27 03:25:14 <ephemient> if you want to think of it like semver, treat "4.9" as the major version, not "4"
2021-03-27 03:25:56 <curiousgay> ephemient: then many packages use base "<5" in dependencies by mistake?
2021-03-27 03:26:38 <int-e> curiousgay: tbf, base is too big for meaningful semantic versioning
2021-03-27 03:27:02 <ephemient> not everybody agrees on whether to use narrow bounds or wide bounds
2021-03-27 03:27:09 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2021-03-27 03:27:21 <int-e> every release there's a breaking change in some part of it... but for most changes, almost all code will be fine.
2021-03-27 03:27:27 <ephemient> in practice, base and GHC versions are tied
2021-03-27 03:27:28 × solidus-river quits (~mike@174.127.249.180) (Remote host closed the connection)
2021-03-27 03:27:34 <int-e> also base is tied to the compiler anyway
2021-03-27 03:27:45 aarvar joins (~foewfoiew@2601:602:a080:fa0:e589:d5cd:80fb:258d)
2021-03-27 03:27:56 <ephemient> if you're coming from GHC 8.0/base 4.9, MonadFail probably broke the most code
2021-03-27 03:28:13 <int-e> so taking those two together... the lazy approach where you make a loose upper bound (base <5) and revise it when your code does break seems quite reasonable
2021-03-27 03:28:14 <dmj`> I don't think Foldable Traversable was backwards compatible (i.e. burning bridges)
2021-03-27 03:28:42 <int-e> it wasn't
2021-03-27 03:29:08 × dbmikus quits (~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 246 seconds)
2021-03-27 03:29:58 × zebrag quits (~inkbottle@aaubervilliers-654-1-109-157.w86-212.abo.wanadoo.fr) (Ping timeout: 265 seconds)
2021-03-27 03:30:09 <dmj`> Oh
2021-03-27 03:30:20 <dmj`> I meant to say incompatible, sorry
2021-03-27 03:30:44 <int-e> sure?
2021-03-27 03:30:56 <dmj`> Nah, I had it right the first time.
2021-03-27 03:30:59 <dmj`> sorry again
2021-03-27 03:31:01 <int-e> what you wrote made sense to me... okay :)
2021-03-27 03:31:10 <int-e> negations are hard
2021-03-27 03:31:10 <dmj`> wine + IRC
2021-03-27 03:31:47 <dmj`> truth

All times are in UTC.