2024/02/11

2024-02-11 00:10:05 +0100 <Axman6> 3/exit
2024-02-11 00:10:15 +0100 <Axman6> oops... goodbye!
2024-02-11 00:10:19 +0100Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2024-02-11 00:24:31 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds)
2024-02-11 00:26:29 +0100Axman6(~Axman6@user/axman6)
2024-02-11 00:27:48 +0100azr4e1(~azr4e1@137.220.68.193) (Remote host closed the connection)
2024-02-11 00:33:30 +0100 <energizer> why does length (1,2) give 1?
2024-02-11 00:34:55 +0100 <c_wraith> Types
2024-02-11 00:35:02 +0100 <c_wraith> :t length
2024-02-11 00:35:03 +0100 <lambdabot> Foldable t => t a -> Int
2024-02-11 00:35:34 +0100 <energizer> so we have a Foldable and length returns an Int. so far so good
2024-02-11 00:35:44 +0100 <energizer> why is that Int 1
2024-02-11 00:35:54 +0100 <c_wraith> If you match that `t a` against `(,) b c` you get (t ~ ((,) b) and (a ~ c)
2024-02-11 00:36:15 +0100 <c_wraith> How many values of type c are there in a (b, c) value?
2024-02-11 00:38:14 +0100 <c_wraith> err, (t ~ ((,) b)) if I count my closing parens properly
2024-02-11 00:40:06 +0100 <energizer> oh that's pretty strange
2024-02-11 00:40:13 +0100 <c_wraith> length in terms of foldable gives the same result as (length . toList) does
2024-02-11 00:40:40 +0100 <c_wraith> > toList ("foo", False)
2024-02-11 00:40:41 +0100 <lambdabot> [False]
2024-02-11 00:41:08 +0100 <energizer> yeah that's just an unusual definition of ,
2024-02-11 00:41:59 +0100 <c_wraith> It's more or less what you have to end up with if you follow the types and keep things as simple as you can.
2024-02-11 00:42:27 +0100harveypwca(~harveypwc@2601:246:c201:d680:59a0:7761:1557:ead5) (Quit: Leaving)
2024-02-11 00:45:39 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2024-02-11 00:46:23 +0100 <energizer> > foldr1 (+) (1,2)
2024-02-11 00:46:24 +0100 <lambdabot> 2
2024-02-11 00:48:22 +0100 <probie> Is there a law for `Foldable` involving `length`?
2024-02-11 00:48:45 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 272 seconds)
2024-02-11 00:49:19 +0100acidjnk_new(~acidjnk@p200300d6e737e7742d33f4d70f70ba9d.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2024-02-11 00:49:58 +0100 <probie> `foldl' (+) 0 (1,2)` is necessarily 1, but given that a `Foldable` can define its own length, what's stopping it from being 2?
2024-02-11 00:50:22 +0100 <yushyin> "The length method must agree with a foldMap mapping each element to Sum 1" -- https://hackage.haskell.org/package/base-4.19.0.0/docs/Data-Foldable.html#laws
2024-02-11 00:50:28 +0100 <probie> sadness
2024-02-11 00:52:19 +0100 <dsal> > foldr1 (+) ('a', 1)
2024-02-11 00:52:21 +0100 <lambdabot> 1
2024-02-11 00:53:03 +0100 <dsal> There's not much else that could do other than refuse to compile which would be kind.
2024-02-11 00:53:07 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-02-11 00:55:42 +0100 <[Leary]> Apart from one optional law relating to Functor, the Foldable laws seem to just be coherence conditions ensuring that the secondary methods have the expected semantics relative to `foldMap`; the actual core of Foldable is virtually unconstrained. It would be completely lawful to write `instance Foldable ((,) a) where foldMap f (_, x) = f x <> f x` and obtain `length (1, 2) = 2`.
2024-02-11 00:55:47 +0100ell15(~ellie@user/ellie) (Quit: Leaving)
2024-02-11 00:56:53 +0100 <c_wraith> Yes, but then that instance would not be consistent with a lawful Traversable instance
2024-02-11 00:56:59 +0100 <c_wraith> which does in fact have more laws
2024-02-11 00:57:20 +0100 <c_wraith> and it's sort of expected that if you have a Traversable instance, your Foldable instance is consistent with it
2024-02-11 00:58:19 +0100 <monochrom> Javascript insists that sum ("1", 1) = 2 >:)
2024-02-11 00:58:27 +0100 <ncf> c_wraith: oh i guess that's true
2024-02-11 00:59:58 +0100 <c_wraith> I'm really not sure Traversable should have a Foldable requirement. There are a lot of cases where I want traverse or sequenceA where I think the consistent Foldable instance is sort of silly
2024-02-11 01:00:22 +0100motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 276 seconds)
2024-02-11 01:00:52 +0100 <energizer> (a,b) having length but (a,b,c) not having it makes me think (a,b) isnt quite the 2-tuple, it's really a separate Pair type
2024-02-11 01:01:17 +0100 <ncf> Foldable is just the "getter" half of Traversable
2024-02-11 01:01:34 +0100 <ski> a pair is a `2'-tuple
2024-02-11 01:01:49 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2024-02-11 01:02:26 +0100 <energizer> why would a 2 tuple have length but a 3 tuple not. no i think (a,b) is Pair
2024-02-11 01:02:58 +0100gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2024-02-11 01:03:50 +0100 <energizer> which is more like a single element k-v map
2024-02-11 01:04:08 +0100 <monochrom> Um is this the "Pair vs APair" debate again? >:)
2024-02-11 01:04:09 +0100 <ski> it's just that further instances are not present
2024-02-11 01:04:25 +0100 <yushyin> because no one bothered to implement the Foldable instance
2024-02-11 01:05:17 +0100 <ncf> you could have instances for n-tuples applied to n - 1 type parameters, and they would all have length constantly 1
2024-02-11 01:08:37 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 268 seconds)
2024-02-11 01:09:58 +0100 <ski> % length $(return (TupE [Just (LitE (IntegerL 42))]))
2024-02-11 01:09:58 +0100 <yahb2> 1
2024-02-11 01:10:36 +0100 <ncf> uh
2024-02-11 01:10:40 +0100 <ncf> is that Solo?
2024-02-11 01:10:43 +0100 <ski> yes
2024-02-11 01:10:54 +0100 <ski> % :t $(return (TupE [Just (LitE (IntegerL 42))]))
2024-02-11 01:10:54 +0100 <yahb2> $(return (TupE [Just (LitE (IntegerL 42))])) :: Num a => Solo a
2024-02-11 01:11:02 +0100 <geekosaur> "it's really a separate Pair type" --- that's how tuples work in Haskell
2024-02-11 01:11:09 +0100 <geekosaur> they are not funny-looking lists
2024-02-11 01:11:13 +0100yoo(~yo0O0o@user/mobivme) (Ping timeout: 264 seconds)
2024-02-11 01:12:12 +0100 <geekosaur> they are anonymous product types
2024-02-11 01:12:25 +0100 <geekosaur> (or "record types" if you prefer)
2024-02-11 01:13:19 +0100 <monochrom> I think there are people out there who insist "product types" because they make a big fuss about "record types" having field names. :)
2024-02-11 01:13:32 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2024-02-11 01:13:53 +0100 <monochrom> I was very surprised but they totally said "they are different!"
2024-02-11 01:14:02 +0100rvalue(~rvalue@user/rvalue)
2024-02-11 01:15:23 +0100 <ski> record types are labelled product types. tuple types are positional product types
2024-02-11 01:15:36 +0100 <energizer> `length (Person "alice" 25 "main")` doesnt work tho
2024-02-11 01:15:59 +0100 <monochrom> OK I guess there is a natural way to give a subtyping system to record types and we don't do it to tuple types.
2024-02-11 01:16:03 +0100 <ski> because there's no `Foldable' instance, for that type
2024-02-11 01:16:09 +0100 <geekosaur> it could if you provided a Foldable instance for it; most people don't
2024-02-11 01:17:01 +0100 <ncf> that doesn't look functorial
2024-02-11 01:17:04 +0100 <ski> tuple types, in SML, are merely record types, whose field names/labels are all positive integers up to the number of components
2024-02-11 01:18:29 +0100 <monochrom> You can always map (x,y,z) to ((x,y),z) and then you can enjoy Foldable methods.
2024-02-11 01:21:03 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 01:21:52 +0100waleee(~waleee@176.10.144.38) (Ping timeout: 268 seconds)
2024-02-11 01:23:48 +0100EvanR(~EvanR@user/evanr)
2024-02-11 01:33:20 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2024-02-11 01:34:25 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-11 01:40:30 +0100 <EvanR> > print(x)
2024-02-11 01:40:31 +0100 <lambdabot> <IO ()>
2024-02-11 01:53:36 +0100bilegeek(~bilegeek@2600:1008:b04e:c81e:502b:3dae:f3e9:cb13)
2024-02-11 01:57:01 +0100Square(~Square@user/square) (Ping timeout: 268 seconds)
2024-02-11 02:01:11 +0100 <monochrom> You're pretty late for print(x). :)
2024-02-11 02:13:35 +0100 <EvanR> figured
2024-02-11 02:15:08 +0100mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2024-02-11 02:15:13 +0100mjs2600_(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Read error: Connection reset by peer)
2024-02-11 02:15:46 +0100tessier(~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 276 seconds)
2024-02-11 02:17:01 +0100tessier(~treed@ip72-220-57-194.sd.sd.cox.net)
2024-02-11 02:22:02 +0100tessier(~treed@ip72-220-57-194.sd.sd.cox.net) (Ping timeout: 252 seconds)
2024-02-11 02:23:15 +0100tessier(~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
2024-02-11 02:25:00 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-02-11 02:46:19 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
2024-02-11 02:46:25 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-02-11 02:47:17 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds)
2024-02-11 02:47:47 +0100Lord_of_Life_Lord_of_Life
2024-02-11 02:53:53 +0100falafel(~falafel@141.156.241.57)
2024-02-11 02:54:36 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2024-02-11 02:58:01 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds)
2024-02-11 03:07:01 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.)
2024-02-11 03:12:38 +0100mulk(~mulk@pd9514242.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-02-11 03:13:47 +0100mulk(~mulk@p5b112899.dip0.t-ipconnect.de)
2024-02-11 03:18:49 +0100otto_s(~user@p5b04400d.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2024-02-11 03:20:00 +0100otto_s(~user@p4ff27640.dip0.t-ipconnect.de)
2024-02-11 03:22:35 +0100motherfsck(~motherfsc@user/motherfsck)
2024-02-11 03:38:07 +0100Feuermagier(~Feuermagi@user/feuermagier)
2024-02-11 03:47:38 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-11 03:50:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-02-11 04:05:03 +0100op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-02-11 04:05:31 +0100op_4(~tslil@user/op-4/x-9116473)
2024-02-11 04:08:32 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.8.2+deb4+b2 - https://znc.in)
2024-02-11 04:11:21 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-02-11 04:16:11 +0100falafel(~falafel@141.156.241.57) (Ping timeout: 264 seconds)
2024-02-11 04:33:29 +0100td_(~td@i53870917.versanet.de) (Ping timeout: 252 seconds)
2024-02-11 04:35:17 +0100td_(~td@i5387093C.versanet.de)
2024-02-11 04:45:18 +0100bilegeek(~bilegeek@2600:1008:b04e:c81e:502b:3dae:f3e9:cb13) (Quit: Leaving)
2024-02-11 04:49:29 +0100jargon(~jargon@157.sub-174-205-162.myvzw.com) (Remote host closed the connection)
2024-02-11 04:54:20 +0100falafel(~falafel@141.156.241.57)
2024-02-11 05:08:49 +0100falafel(~falafel@141.156.241.57) (Ping timeout: 264 seconds)
2024-02-11 05:21:35 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2024-02-11 05:39:52 +0100Guest30(~Guest57@2405:201:12:3dae:f726:6f38:f016:3459)
2024-02-11 05:40:07 +0100 <Guest30> @free fmap :: (a -> b) -> f a -> f b
2024-02-11 05:40:07 +0100 <lambdabot> Extra stuff at end of line
2024-02-11 05:40:55 +0100 <Guest30> @free fmap :: (a -> b) -> F a -> F b
2024-02-11 05:40:55 +0100 <lambdabot> g . h = k . f => $map_F g . fmap h = fmap k . $map_F f
2024-02-11 05:41:24 +0100 <Guest30> @free pure :: a -> F a
2024-02-11 05:41:24 +0100 <lambdabot> $map_F f . pure = pure . f
2024-02-11 05:42:00 +0100 <Guest30> @free bind :: F a -> (a -> F b) -> F b
2024-02-11 05:42:00 +0100 <lambdabot> $map_F g . h = k . f => $map_F g (bind x h) = bind ($map_F f x) k
2024-02-11 05:47:39 +0100aforemny_(~aforemny@i59F516F6.versanet.de)
2024-02-11 05:47:43 +0100aforemny(~aforemny@2001:9e8:6cfa:c300:ed38:1b4d:cf6e:9f22) (Ping timeout: 260 seconds)
2024-02-11 06:01:54 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 06:01:57 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Client Quit)
2024-02-11 06:02:07 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 06:03:08 +0100mulk(~mulk@p5b112899.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-02-11 06:05:10 +0100mulk(~mulk@p5b2dcdd6.dip0.t-ipconnect.de)
2024-02-11 06:05:54 +0100bilegeek(~bilegeek@2600:1008:b04e:c81e:502b:3dae:f3e9:cb13)
2024-02-11 06:10:01 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 264 seconds)
2024-02-11 06:12:04 +0100qqq(~qqq@92.43.167.61)
2024-02-11 06:12:12 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-11 06:16:37 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Ping timeout: 264 seconds)
2024-02-11 06:18:35 +0100fansly(~fansly@103.3.221.176)
2024-02-11 06:20:22 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-02-11 06:35:54 +0100Guest30(~Guest57@2405:201:12:3dae:f726:6f38:f016:3459) (Quit: Client closed)
2024-02-11 06:38:36 +0100fansly(~fansly@103.3.221.176) (Read error: Connection reset by peer)
2024-02-11 06:39:56 +0100fansly(~fansly@182.2.141.93)
2024-02-11 06:43:00 +0100fansly(~fansly@182.2.141.93) (Read error: Connection reset by peer)
2024-02-11 06:43:18 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 06:58:43 +0100Guest67(~Guest57@49.36.11.6)
2024-02-11 06:59:06 +0100 <Guest67> @free filter :: (a -> Boolean) -> F a -> F a
2024-02-11 06:59:06 +0100 <lambdabot> $map_F f . filter (g . f) = filter g . $map_F f
2024-02-11 07:01:16 +0100 <Guest67> @free safeExtract :: a -> F a -> a
2024-02-11 07:01:16 +0100 <lambdabot> f . safeExtract x = safeExtract (f x) . $map_F f
2024-02-11 07:02:02 +0100 <Guest67> @free unsafeExtract :: f a -> a
2024-02-11 07:02:02 +0100 <lambdabot> Extra stuff at end of line
2024-02-11 07:02:09 +0100 <Guest67> @free unsafeExtract :: F a -> a
2024-02-11 07:02:10 +0100 <lambdabot> f . unsafeExtract = unsafeExtract . $map_F f
2024-02-11 07:03:07 +0100 <Guest67> @free toEither :: e -> F a -> G e a
2024-02-11 07:03:08 +0100 <lambdabot> Plugin `free' failed with: Sorry, this type is too difficult for me.
2024-02-11 07:03:08 +0100 <lambdabot> CallStack (from HasCallStack):
2024-02-11 07:03:08 +0100 <lambdabot> error, called at src/Lambdabot/Plugin/Haskell/Free/FreeTheorem.hs:296:31 in lambdabot-haskell-plugins-5.3-KdjsqvMFsLeLZemJqobWap:Lambdabot.Plugin.Haskell.Free.FreeTheorem
2024-02-11 07:03:40 +0100 <Guest67> @free toEither :: b -> F a -> F b a
2024-02-11 07:03:41 +0100 <lambdabot> Plugin `free' failed with: Sorry, this type is too difficult for me.
2024-02-11 07:03:41 +0100 <lambdabot> CallStack (from HasCallStack):
2024-02-11 07:03:41 +0100 <lambdabot> error, called at src/Lambdabot/Plugin/Haskell/Free/FreeTheorem.hs:296:31 in lambdabot-haskell-plugins-5.3-KdjsqvMFsLeLZemJqobWap:Lambdabot.Plugin.Haskell.Free.FreeTheorem
2024-02-11 07:03:56 +0100 <Guest67> @free toEither :: b -> F a -> G b a
2024-02-11 07:03:56 +0100 <lambdabot> Plugin `free' failed with: Sorry, this type is too difficult for me.
2024-02-11 07:03:57 +0100 <lambdabot> CallStack (from HasCallStack):
2024-02-11 07:03:57 +0100 <lambdabot> error, called at src/Lambdabot/Plugin/Haskell/Free/FreeTheorem.hs:296:31 in lambdabot-haskell-plugins-5.3-KdjsqvMFsLeLZemJqobWap:Lambdabot.Plugin.Haskell.Free.FreeTheorem
2024-02-11 07:04:17 +0100Guest67(~Guest57@49.36.11.6) ()
2024-02-11 07:04:37 +0100mulk(~mulk@p5b2dcdd6.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-02-11 07:08:51 +0100johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2024-02-11 07:16:40 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Quit: Quit)
2024-02-11 07:20:51 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 07:23:18 +0100bzm3r(~bzm3r@d205-250-253-229.bchsia.telus.net)
2024-02-11 07:37:15 +0100mulk(~mulk@pd95144c1.dip0.t-ipconnect.de)
2024-02-11 07:41:01 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 07:41:57 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Remote host closed the connection)
2024-02-11 07:42:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 07:44:52 +0100RaspbellySwirl(~Raspbelly@host-213-235-142-6.ip.topnet.cz)
2024-02-11 07:45:22 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 07:50:45 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Read error: Connection reset by peer)
2024-02-11 07:50:55 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 07:52:59 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Remote host closed the connection)
2024-02-11 07:55:26 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-11 08:02:56 +0100CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
2024-02-11 08:08:31 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e)
2024-02-11 08:11:49 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
2024-02-11 08:12:07 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-11 08:12:18 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-11 08:12:30 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 08:12:40 +0100euleritian(~euleritia@dynamic-176-007-008-211.176.7.pool.telefonica.de)
2024-02-11 08:13:00 +0100euleritian(~euleritia@dynamic-176-007-008-211.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 08:13:18 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 08:19:46 +0100johnw(~johnw@69.62.242.138)
2024-02-11 08:20:00 +0100johnw(~johnw@69.62.242.138) (Remote host closed the connection)
2024-02-11 08:21:40 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 08:22:35 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 08:24:36 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 08:25:06 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 08:30:18 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-11 08:32:25 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 08:33:00 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 08:36:59 +0100qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-02-11 08:39:25 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-02-11 08:40:25 +0100johnw(~johnw@69.62.242.138)
2024-02-11 08:44:24 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 08:44:53 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 08:44:58 +0100gcdsefhu^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-02-11 08:45:39 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds)
2024-02-11 08:49:51 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-02-11 08:50:21 +0100trev(~trev@user/trev) (Ping timeout: 260 seconds)
2024-02-11 08:52:07 +0100trev(~trev@109-252-43-67.nat.spd-mgts.ru)
2024-02-11 08:55:08 +0100trev(~trev@109-252-43-67.nat.spd-mgts.ru) (Client Quit)
2024-02-11 08:56:03 +0100trev(~trev@109-252-43-67.nat.spd-mgts.ru)
2024-02-11 08:56:29 +0100trev(~trev@109-252-43-67.nat.spd-mgts.ru) (Changing host)
2024-02-11 08:56:29 +0100trev(~trev@user/trev)
2024-02-11 08:57:26 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 08:58:08 +0100euleritian(~euleritia@dynamic-176-007-008-211.176.7.pool.telefonica.de)
2024-02-11 08:58:30 +0100euleritian(~euleritia@dynamic-176-007-008-211.176.7.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 08:58:55 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 09:00:07 +0100tt1231(~tt123@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Quit: The Lounge - https://thelounge.chat)
2024-02-11 09:00:11 +0100Natch(~natch@92.34.7.158) (Remote host closed the connection)
2024-02-11 09:00:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-11 09:00:37 +0100trev(~trev@user/trev) (Client Quit)
2024-02-11 09:00:52 +0100trev(~trev@user/trev)
2024-02-11 09:02:08 +0100tt1231(~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-02-11 09:02:41 +0100bilegeek(~bilegeek@2600:1008:b04e:c81e:502b:3dae:f3e9:cb13) (Quit: Leaving)
2024-02-11 09:03:27 +0100gcdsefhu^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-02-11 09:05:29 +0100Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-02-11 09:06:38 +0100acidjnk_new(~acidjnk@p200300d6e737e77464baf57332386b26.dip0.t-ipconnect.de)
2024-02-11 09:35:49 +0100fansly(~fansly@2001:448a:2010:476e:fcb4:b4a9:3c44:892e) (Ping timeout: 264 seconds)
2024-02-11 09:38:16 +0100fansly(~fansly@103.3.221.176)
2024-02-11 09:38:49 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-02-11 09:39:19 +0100euleritian(~euleritia@dynamic-176-007-008-211.176.7.pool.telefonica.de)
2024-02-11 09:41:03 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-02-11 09:41:46 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-11 09:52:04 +0100euleritian(~euleritia@dynamic-176-007-008-211.176.7.pool.telefonica.de) (Ping timeout: 276 seconds)
2024-02-11 09:52:57 +0100euleritian(~euleritia@dynamic-176-000-156-161.176.0.pool.telefonica.de)
2024-02-11 09:55:48 +0100eb20(~eb@41.189.245.59)
2024-02-11 09:57:50 +0100rscastilho2024(~rscastilh@189.61.140.215)
2024-02-11 09:58:34 +0100fansly(~fansly@103.3.221.176) (Ping timeout: 276 seconds)
2024-02-11 09:59:28 +0100rscastilho2024(~rscastilh@189.61.140.215) (Remote host closed the connection)
2024-02-11 09:59:47 +0100 <eb20> anyone her use hugs?
2024-02-11 10:00:28 +0100fansly(~fansly@182.2.165.191)
2024-02-11 10:10:01 +0100 <kaol> Yes. Recently, unlikely. I last did anything with it when ghc 6 was new.
2024-02-11 10:10:29 +0100euleritian(~euleritia@dynamic-176-000-156-161.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 10:10:46 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 10:16:46 +0100elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 276 seconds)
2024-02-11 10:16:49 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-02-11 10:20:50 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-11 10:25:13 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2024-02-11 10:27:56 +0100fansly(~fansly@182.2.165.191) (Read error: Connection reset by peer)
2024-02-11 10:29:57 +0100euleritian(~euleritia@dynamic-176-000-156-161.176.0.pool.telefonica.de)
2024-02-11 10:31:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-11 10:31:48 +0100Tuplanolla(~Tuplanoll@91-159-68-95.elisa-laajakaista.fi)
2024-02-11 10:32:41 +0100euleritian(~euleritia@dynamic-176-000-156-161.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 10:32:59 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 10:33:32 +0100 <mauke> there was someone on matrix who still uses it
2024-02-11 10:33:49 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-11 10:35:32 +0100gmg(~user@user/gehmehgeh)
2024-02-11 10:37:16 +0100bzm3r(~bzm3r@d205-250-253-229.bchsia.telus.net) (Ping timeout: 250 seconds)
2024-02-11 10:42:31 +0100todi(~todi@p4fd1aef3.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-02-11 10:52:29 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2024-02-11 10:52:34 +0100todi(~todi@p4fd1aef3.dip0.t-ipconnect.de)
2024-02-11 10:52:54 +0100euleritian(~euleritia@dynamic-176-000-156-161.176.0.pool.telefonica.de)
2024-02-11 10:54:12 +0100megaTherion(~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-11 10:55:15 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-02-11 11:01:02 +0100megaTherion(~therion@unix.io)
2024-02-11 11:01:47 +0100euleritian(~euleritia@dynamic-176-000-156-161.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 11:02:05 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 11:02:53 +0100acidjnk_new(~acidjnk@p200300d6e737e77464baf57332386b26.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-02-11 11:06:06 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-02-11 11:09:56 +0100alexherbo2(~alexherbo@33.134.22.93.rev.sfr.net)
2024-02-11 11:15:55 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 276 seconds)
2024-02-11 11:18:04 +0100megaTherion(~therion@unix.io) (Remote host closed the connection)
2024-02-11 11:21:22 +0100megaTherion(~therion@unix.io)
2024-02-11 11:23:45 +0100michalz(~michalz@185.246.207.205)
2024-02-11 11:36:49 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-02-11 11:36:58 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-11 11:40:08 +0100alexherbo2(~alexherbo@33.134.22.93.rev.sfr.net) (Remote host closed the connection)
2024-02-11 11:40:29 +0100alexherbo2(~alexherbo@2a02-8440-3340-93db-fd9e-1a08-c9e1-df21.rev.sfr.net)
2024-02-11 11:58:57 +0100Lycurgus(~georg@user/Lycurgus)
2024-02-11 12:18:39 +0100sroso(~sroso@user/SrOso)
2024-02-11 12:20:59 +0100infinity0(~infinity0@pwned.gg)
2024-02-11 12:24:34 +0100infinity0_(~infinity0@pwned.gg)
2024-02-11 12:24:35 +0100infinity0Guest7389
2024-02-11 12:24:35 +0100infinity0_infinity0
2024-02-11 12:25:37 +0100Guest7389(~infinity0@pwned.gg) (Ping timeout: 264 seconds)
2024-02-11 12:27:20 +0100Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2024-02-11 12:33:12 +0100mmhat(~mmh@p200300f1c740af4dee086bfffe095315.dip0.t-ipconnect.de)
2024-02-11 12:38:06 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-02-11 12:39:12 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-02-11 12:51:43 +0100yotta(~cha0s@14.191.144.106)
2024-02-11 12:53:01 +0100mmhat(~mmh@p200300f1c740af4dee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
2024-02-11 12:56:23 +0100Square(~Square@user/square)
2024-02-11 12:58:13 +0100 <yotta> When passing multiple MutableByteArray# to a C function, it is correct to use Array# MutableByteArray# or MutableArray# MutableByteArray# ? The C function writes to the bytearrays.
2024-02-11 13:01:25 +0100mrmr155334(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2024-02-11 13:01:59 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2024-02-11 13:03:13 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-02-11 13:04:57 +0100 <int-e> yotta: oh https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/ffi.html actually has an example of this (look for sum_first)... you need to poke into RTS internals
2024-02-11 13:05:36 +0100mrmr155334(~mrmr@user/mrmr)
2024-02-11 13:05:44 +0100qqq(~qqq@92.43.167.61)
2024-02-11 13:08:34 +0100 <int-e> (For mutation, use Array# MutableByteArray#)
2024-02-11 13:10:29 +0100 <yotta> thank
2024-02-11 13:31:59 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-02-11 13:35:01 +0100yoo(~yo0O0o@130.105.162.162)
2024-02-11 13:46:59 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-11 13:47:20 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 13:58:26 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-11 14:03:54 +0100Axman6(~Axman6@user/axman6)
2024-02-11 14:05:31 +0100fbytez_(~uid@user/fbytez)
2024-02-11 14:08:00 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 14:08:41 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 14:10:36 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-02-11 14:11:49 +0100EvanR(~EvanR@user/evanr) (Read error: Connection reset by peer)
2024-02-11 14:11:59 +0100EvanR(~EvanR@user/evanr)
2024-02-11 14:12:44 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 14:14:20 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-11 14:22:10 +0100eb20(~eb@41.189.245.59) (Ping timeout: 250 seconds)
2024-02-11 14:25:36 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-02-11 14:33:05 +0100alexherbo2(~alexherbo@2a02-8440-3340-93db-fd9e-1a08-c9e1-df21.rev.sfr.net) (Remote host closed the connection)
2024-02-11 14:48:04 +0100__monty__(~toonn@user/toonn)
2024-02-11 14:48:49 +0100average(uid473595@user/average) (Quit: Connection closed for inactivity)
2024-02-11 14:54:41 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-02-11 14:54:56 +0100alexherbo2(~alexherbo@2a02-8440-3341-cfe3-0966-2558-23d8-f964.rev.sfr.net)
2024-02-11 14:58:20 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2024-02-11 15:04:00 +0100 <haskellbridge> <J​ade> I'm often seeing an idiom along the line of `length [ () | pat <- some_list ]` where the pattern match would be identical to an `==`. Would it not make sense to have something like `count :: Eq a => a -> [a] -> Int` for these?
2024-02-11 15:04:08 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-02-11 15:04:09 +0100 <haskellbridge> <J​ade> in base specifically*
2024-02-11 15:05:05 +0100 <haskellbridge> <J​ade> It could even be `count :: (a -> Bool) -> [a] -> Int`
2024-02-11 15:05:32 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-02-11 15:06:14 +0100elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
2024-02-11 15:06:27 +0100 <Axman6> the pattern match is likely to be more efficient, and that's not quite the same thing - the code you pasted counts how many items match a geven pattern, not what's equal to another value
2024-02-11 15:07:04 +0100 <haskellbridge> <J​ade> yeah I saw a lot of those with strings and the "pattern" being a character literal
2024-02-11 15:07:44 +0100 <haskellbridge> <J​ade> and it always takes a second or so to click, but with a `count 'x' list` that would be a lot easier
2024-02-11 15:07:46 +0100 <ski> > replicateM 2 (Const (Sum 7))
2024-02-11 15:07:48 +0100 <lambdabot> Const (Sum {getSum = 14})
2024-02-11 15:07:53 +0100 <haskellbridge> <J​ade> s/list/string
2024-02-11 15:08:09 +0100 <ski> > replicateM 2 (Const (Product 7))
2024-02-11 15:08:11 +0100 <lambdabot> Const (Product {getProduct = 49})
2024-02-11 15:08:11 +0100 <ski> i guess
2024-02-11 15:09:18 +0100 <haskellbridge> <J​ade> wait why is that happening
2024-02-11 15:09:31 +0100 <haskellbridge> <J​ade> Oh I see
2024-02-11 15:09:53 +0100 <int-e> https://wiki.haskell.org/Fairbairn_threshold is a factor here
2024-02-11 15:10:45 +0100 <haskellbridge> <J​ade> The Monad instances of these newtype wrappers for Monoids are the same as the identity monad
2024-02-11 15:12:05 +0100 <ncf> Applicative, not Monad (Const k isn't a monad unless k is ())
2024-02-11 15:12:14 +0100 <ncf> :t replicateM
2024-02-11 15:12:15 +0100 <lambdabot> Applicative m => Int -> m a -> m [a]
2024-02-11 15:13:15 +0100driib(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-02-11 15:14:04 +0100 <ncf> (and no, this isn't the identity applicative)
2024-02-11 15:14:44 +0100JordiGH(~jordi@user/jordigh)
2024-02-11 15:15:19 +0100 <ski> "No instance for (MonadFail (Const (Product Integer)))" :(
2024-02-11 15:17:01 +0100 <ncf> can't MonadFail if it Fails to Monad
2024-02-11 15:20:15 +0100Midjak(~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
2024-02-11 15:20:42 +0100MarciZ(~MarciZ@82.66.147.146)
2024-02-11 15:21:42 +0100 <ski> exactly
2024-02-11 15:26:37 +0100 <haskellbridge> <i​rregularsphere> ski: ...how exactly is it going to implement `String -> Product Integer` anyway
2024-02-11 15:27:20 +0100 <haskellbridge> <i​rregularsphere> sorry, `fail :: forall a. String -> Const (Product Integer) a`
2024-02-11 15:31:30 +0100 <haskellbridge> <i​rregularsphere> my best guess is to put a `Maybe` somewhere but I'm not sure
2024-02-11 15:32:39 +0100 <haskellbridge> <i​rregularsphere> maybe `Compose Maybe (Const (Product Integer))`?
2024-02-11 15:32:51 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-02-11 15:35:38 +0100driib(~driib@vmi931078.contaboserver.net)
2024-02-11 15:38:05 +0100 <haskellbridge> <i​rregularsphere> nvm about the compose thing
2024-02-11 15:40:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-02-11 15:42:04 +0100euleritian(~euleritia@77.22.252.56)
2024-02-11 15:42:23 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-02-11 15:43:02 +0100euleritian(~euleritia@77.22.252.56)
2024-02-11 15:43:50 +0100acidjnk_new(~acidjnk@p5dd87f44.dip0.t-ipconnect.de)
2024-02-11 15:45:14 +0100 <ncf> fail _ = Const mempty ?
2024-02-11 15:45:18 +0100 <ncf> Fail isn't the problem, it's Monad
2024-02-11 15:48:14 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 15:48:42 +0100MarciZ(~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
2024-02-11 15:50:59 +0100 <haskellbridge> <i​rregularsphere> Ah.
2024-02-11 15:57:02 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-02-11 15:57:14 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 268 seconds)
2024-02-11 16:01:01 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 264 seconds)
2024-02-11 16:01:29 +0100euleritian(~euleritia@dynamic-176-006-191-101.176.6.pool.telefonica.de)
2024-02-11 16:01:47 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 264 seconds)
2024-02-11 16:03:33 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-02-11 16:13:34 +0100euleritian(~euleritia@dynamic-176-006-191-101.176.6.pool.telefonica.de) (Ping timeout: 268 seconds)
2024-02-11 16:14:10 +0100euleritian(~euleritia@77.22.252.56)
2024-02-11 16:18:49 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 276 seconds)
2024-02-11 16:19:25 +0100Midjak(~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
2024-02-11 16:19:37 +0100euleritian(~euleritia@dynamic-046-114-170-060.46.114.pool.telefonica.de)
2024-02-11 16:19:55 +0100euleritian(~euleritia@dynamic-046-114-170-060.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 16:20:12 +0100euleritian(~euleritia@77.22.252.56)
2024-02-11 16:20:29 +0100JordiGH(~jordi@user/jordigh)
2024-02-11 16:21:04 +0100 <haskellbridge> <i​rregularsphere> If `Monad (Const (Product Integer))` were to ever happen, then `join`'s only expected behaviour is `id`, thus `xs >>= f = xs >>= (\x -> id (f x)) = xs >>= (\x -> return (f x) >>= id) = xs >>= (\x -> (return . f) x >>= id) = (xs >>= return . f) >>= id = (fmap f xs) >>= id = join (fmap f xs) = fmap f xs = xs`
2024-02-11 16:21:09 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 16:23:18 +0100 <ncf> what?
2024-02-11 16:23:19 +0100 <haskellbridge> <i​rregularsphere> (join's expected behaviour is id because join has type `Const (Product Integer) (Const (Product Integer) a) -> Const (Product Integer) a`, which is saying `\(Const x) -> ...`, in which it is most reasonable to be `\(Const x) -> Const x = id`
2024-02-11 16:23:41 +0100 <haskellbridge> <i​rregularsphere> ncf: I fear that `xs >>= f = xs` for all `xs` and `f`.
2024-02-11 16:24:08 +0100 <haskellbridge> <i​rregularsphere> ok gn
2024-02-11 16:24:14 +0100 <ncf> "most reasonable" isn't a proof
2024-02-11 16:25:01 +0100 <haskellbridge> <i​rregularsphere> fair
2024-02-11 16:25:08 +0100 <ncf> you have to show that whatever you pick for join (which is a function m → m where m is a monoid), the laws can't be satisfied
2024-02-11 16:26:00 +0100 <ncf> there are as many functions forall m. Monoid m => m → m as there are natural numbers, can you see why?
2024-02-11 16:26:05 +0100 <haskellbridge> <i​rregularsphere> actually you can reverse define `xs >>= f = join (fmap f xs)` which all laws will automatically be satisfied
2024-02-11 16:26:16 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2024-02-11 16:26:30 +0100 <haskellbridge> <i​rregularsphere> but `fmap f xs = xs` by definition
2024-02-11 16:26:38 +0100 <haskellbridge> <i​rregularsphere> so `xs >>= f = join xs`
2024-02-11 16:27:14 +0100 <ncf> yes, it's usually easier to reason about join than >>=
2024-02-11 16:27:25 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-02-11 16:27:32 +0100 <haskellbridge> <i​rregularsphere> what i'm trying to point out is that
2024-02-11 16:27:37 +0100 <haskellbridge> <i​rregularsphere> `f` is discarded
2024-02-11 16:28:15 +0100 <ncf> sure
2024-02-11 16:28:41 +0100 <haskellbridge> <i​rregularsphere> so with all definitions of `join`, `>>=` is already useless
2024-02-11 16:29:20 +0100 <haskellbridge> <i​rregularsphere> yeah in my super long explanation you can omit last step
2024-02-11 16:29:29 +0100 <haskellbridge> <i​rregularsphere> and apply `fmap f xs = xs`
2024-02-11 16:29:40 +0100 <ski> irregularsphere : the point was to use refutable patterns, not `MonadFail' per se
2024-02-11 16:30:06 +0100 <haskellbridge> <i​rregularsphere> (most of the blob of text is me proving `xs >>= f = join (fmap f xs)`)
2024-02-11 16:30:10 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-02-11 16:30:20 +0100euleritian(~euleritia@dynamic-046-114-170-060.46.114.pool.telefonica.de)
2024-02-11 16:30:25 +0100 <ncf> that's the definition of >>=
2024-02-11 16:30:40 +0100euleritian(~euleritia@dynamic-046-114-170-060.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 16:30:41 +0100 <haskellbridge> <i​rregularsphere> ski: oh, huh
2024-02-11 16:30:57 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 16:33:10 +0100 <haskellbridge> <i​rregularsphere> ncf: unfortunately it isn't like that in haskell source :( would like to push a pr though, but it's currently half past ten at night for me
2024-02-11 16:33:20 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Ping timeout: 255 seconds)
2024-02-11 16:33:24 +0100 <haskellbridge> <i​rregularsphere> gn everyone!
2024-02-11 16:33:51 +0100 <ncf> ok if you take >>= as primitive and define join as _>>= id then you do have to prove that, but it should just be an application of naturality
2024-02-11 16:34:15 +0100 <ncf> in particular there's no reason to involve return
2024-02-11 16:34:25 +0100rscastilho2024(~rscastilh@189.61.140.215)
2024-02-11 16:34:45 +0100 <haskellbridge> <i​rregularsphere> `return` was simply part of my proof that `xs >>= f = join (fmap f xs)`
2024-02-11 16:36:04 +0100 <ncf> i'm saying you don't need to mention return to prove that
2024-02-11 16:36:12 +0100Midjak(~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
2024-02-11 16:36:45 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 16:36:46 +0100 <haskellbridge> <i​rregularsphere> different proofs same conclusion hehe
2024-02-11 16:39:05 +0100 <haskellbridge> <i​rregularsphere> yea what i'm trying to detail is that no matter how hard you try while adhering to laws you'd always do `xs >>= f` = `xs >>= id` in some way or another
2024-02-11 16:40:17 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-02-11 16:40:31 +0100 <haskellbridge> <i​rregularsphere> (the case for trying to define `Monad (Const a)` by the way)
2024-02-11 16:41:27 +0100 <ski> i've before pondered having operations like `forall a b. m a -> (a -> n b) -> n b'. e.g. `m = State sr',`n = Reader sr', or `m = []',`n = Count' (`Const (Product Integer))' above)
2024-02-11 16:41:52 +0100 <haskellbridge> <i​rregularsphere> *meanwhile me saying "gn" 11 minutes ago
2024-02-11 16:42:29 +0100 <ski> btw, your `id' has type `(forall a. Const c a) -> (forall a. Const c a)'
2024-02-11 16:42:41 +0100 <haskellbridge> <i​rregularsphere> yup
2024-02-11 16:42:47 +0100 <haskellbridge> <i​rregularsphere> what's wrong about that
2024-02-11 16:42:51 +0100Midjak(~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
2024-02-11 16:42:53 +0100 <ski> @src (>>=) Either
2024-02-11 16:42:53 +0100 <lambdabot> Source not found. This mission is too important for me to allow you to jeopardize it.
2024-02-11 16:43:05 +0100 <ski> @src Either (>>=)
2024-02-11 16:43:05 +0100 <lambdabot> Left l >>= _ = Left l
2024-02-11 16:43:05 +0100 <lambdabot> Right r >>= k = k r
2024-02-11 16:43:08 +0100 <ncf> ski: isn't that just a left n-module?
2024-02-11 16:43:27 +0100 <ncf> i.e. mn ~> n
2024-02-11 16:43:27 +0100 <haskellbridge> <i​rregularsphere> (wait lambdabot can _do_ that?)
2024-02-11 16:43:31 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 16:43:42 +0100 <ski> ncf : i was thinking about something like actions, or perhaps retract situations, yea
2024-02-11 16:44:18 +0100 <ski> (i also had `forall a. n a -> m a', and some laws relating the operations)
2024-02-11 16:44:20 +0100 <geekosaur> irregularsphere, it has a small database of sources which is sometimes inaccurate for ghc (it's mostly cribbed from the haskell 2010 report)
2024-02-11 16:44:28 +0100 <ski> irregularsphere : do what ?
2024-02-11 16:44:35 +0100 <geekosaur> it doesn't know how to search for actual source code, sadly
2024-02-11 16:44:39 +0100 <haskellbridge> <i​rregularsphere> the @src command
2024-02-11 16:44:46 +0100 <ski> anyway, imagine if it was defined like
2024-02-11 16:45:07 +0100 <ski> Right a >>= k = k a
2024-02-11 16:45:16 +0100 <ski> m >>= _ = m
2024-02-11 16:45:49 +0100 <ski> and now imagine if this `m' had type `forall b. Either a b' (due to `m' not matching `Right a')
2024-02-11 16:47:32 +0100 <ski> or, if you prefer
2024-02-11 16:47:41 +0100 <ski> m@(Left _) >>= _ = m
2024-02-11 16:47:49 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
2024-02-11 16:49:31 +0100son0p(~ff@186.121.50.114)
2024-02-11 16:50:50 +0100 <ski> irregularsphere : oh, and types are not inferred for higher-rank operations
2024-02-11 16:51:03 +0100 <ski> (iow, that `id' won't be inferred)
2024-02-11 17:09:10 +0100target_i(~target_i@217.175.14.39)
2024-02-11 17:12:54 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-02-11 17:15:20 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2024-02-11 17:21:32 +0100Pixi`(~Pixi@user/pixi)
2024-02-11 17:24:35 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 252 seconds)
2024-02-11 17:31:05 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-02-11 17:33:26 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-02-11 17:33:32 +0100euleritian(~euleritia@77.22.252.56)
2024-02-11 17:34:58 +0100jargon(~jargon@157.sub-174-205-162.myvzw.com)
2024-02-11 17:46:15 +0100AlexZenon(~alzenon@94.233.241.194) (Ping timeout: 256 seconds)
2024-02-11 17:51:23 +0100AlexZenon(~alzenon@94.233.241.194)
2024-02-11 18:06:04 +0100AstraGravityGirl(~astra@181.42.52.150)
2024-02-11 18:08:16 +0100alexherbo2(~alexherbo@2a02-8440-3341-cfe3-0966-2558-23d8-f964.rev.sfr.net) (Remote host closed the connection)
2024-02-11 18:11:07 +0100alexherbo2(~alexherbo@143.132.22.93.rev.sfr.net)
2024-02-11 18:11:28 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2024-02-11 18:11:56 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-02-11 18:15:37 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-11 18:15:48 +0100alexherbo2(~alexherbo@143.132.22.93.rev.sfr.net) (Remote host closed the connection)
2024-02-11 18:15:53 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-02-11 18:17:16 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com) (Remote host closed the connection)
2024-02-11 18:28:11 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 256 seconds)
2024-02-11 18:28:26 +0100euleritian(~euleritia@dynamic-176-005-134-152.176.5.pool.telefonica.de)
2024-02-11 18:28:55 +0100yotta(~cha0s@14.191.144.106) (Quit: WeeChat 4.2.1)
2024-02-11 18:29:49 +0100 <noumenon> what's a "rank"?
2024-02-11 18:31:41 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-02-11 18:33:40 +0100 <monochrom> https://wiki.haskell.org/Rank-N_types may help
2024-02-11 18:36:02 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-02-11 18:36:15 +0100myxos(~myxos@065-028-251-121.inf.spectrum.com)
2024-02-11 18:39:13 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 276 seconds)
2024-02-11 18:40:11 +0100AstraGravityGirl(~astra@181.42.52.150) (Ping timeout: 264 seconds)
2024-02-11 18:40:27 +0100euleritian(~euleritia@dynamic-176-005-134-152.176.5.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 18:40:34 +0100yoo(~yo0O0o@130.105.162.162) (Changing host)
2024-02-11 18:40:34 +0100yoo(~yo0O0o@user/mobivme)
2024-02-11 18:40:38 +0100 <ncf> rank(a -> b) = 1 + rank a; rank _ = 0
2024-02-11 18:40:44 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 18:40:58 +0100 <ncf> er no
2024-02-11 18:46:20 +0100AstraGravityGirl(~AstraGrav@181.42.52.150)
2024-02-11 18:46:23 +0100 <ncf> i guess it's slightly tricky to define by induction on types. two mutually recursive functions should do it
2024-02-11 18:46:30 +0100 <APic> Indeed.
2024-02-11 18:46:56 +0100Midjak(~MarciZ@82.66.147.146) (Read error: Connection reset by peer)
2024-02-11 18:47:30 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 18:47:56 +0100rvalue(~rvalue@user/rvalue)
2024-02-11 18:51:55 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-02-11 18:52:35 +0100euleritian(~euleritia@dynamic-176-005-134-152.176.5.pool.telefonica.de)
2024-02-11 18:55:26 +0100euleritian(~euleritia@dynamic-176-005-134-152.176.5.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 18:55:43 +0100euleritian(~euleritia@77.22.252.56)
2024-02-11 19:01:01 +0100AstraGravityGirl(~AstraGrav@181.42.52.150) (Quit: AstraGravityGirl)
2024-02-11 19:05:47 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-02-11 19:07:13 +0100Midjak(~MarciZ@82.66.147.146) (Ping timeout: 255 seconds)
2024-02-11 19:13:35 +0100AstraGravityGirl(~AstraGrav@181.42.52.150)
2024-02-11 19:15:04 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-11 19:15:47 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 256 seconds)
2024-02-11 19:15:47 +0100AstraGravityGirl(~AstraGrav@181.42.52.150) (Client Quit)
2024-02-11 19:18:32 +0100euleritian(~euleritia@dynamic-176-005-134-152.176.5.pool.telefonica.de)
2024-02-11 19:25:40 +0100 <ski> noumenon : briefly, it's when a function take a polymorphic operation as *argument*, or when a function takes such a function as argument, &c.
2024-02-11 19:26:07 +0100 <ski> so `(forall a. ..a..) -> ...' or `((forall a. ..a..) -> ...) -> ...' or ..
2024-02-11 19:27:41 +0100 <ski> (some people say "higher-rank polymorphism", but i don't think the first of those examples is like polymorphism at all (more like existentials, cf. `... -> (exists a. ..a..)'. the next one is "kinda like polymorphism", though, so we alternate between "kinda existential" and "kinda universal")
2024-02-11 19:30:10 +0100 <ski> (oh, and "higher-rank" means rank greater than one. rank one is plain polymorphism, values of type `forall a. ..a..'. sometimes people call (ordinary, without `forall' and `exists') monomorphic operations, "rank zero")
2024-02-11 19:31:39 +0100 <ski> (and that issue with "non-ranked" operations is what ncf ran into above)
2024-02-11 19:43:54 +0100coot(~coot@89.69.206.216)
2024-02-11 19:47:02 +0100pyooque(~puke@user/puke)
2024-02-11 19:47:02 +0100pukeGuest9035
2024-02-11 19:47:02 +0100Guest9035(~puke@user/puke) (Killed (tungsten.libera.chat (Nickname regained by services)))
2024-02-11 19:47:02 +0100pyooquepuke
2024-02-11 19:47:30 +0100alexherbo2(~alexherbo@2a02-8440-3341-cfe3-f821-77e5-e4a1-a519.rev.sfr.net)
2024-02-11 19:47:39 +0100 <noumenon> ski: so, can you rank ranks?
2024-02-11 19:53:05 +0100euleritian(~euleritia@dynamic-176-005-134-152.176.5.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 19:53:22 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 19:56:34 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2024-02-11 19:57:11 +0100Midjak(~MarciZ@82.66.147.146)
2024-02-11 19:57:59 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-02-11 19:59:42 +0100euleritian(~euleritia@dynamic-046-114-170-184.46.114.pool.telefonica.de)
2024-02-11 20:00:09 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 272 seconds)
2024-02-11 20:02:26 +0100Guest33(~Guest33@2804:7f7:ddab:a8cd:9c91:258e:279f:d997)
2024-02-11 20:03:59 +0100Guest33(~Guest33@2804:7f7:ddab:a8cd:9c91:258e:279f:d997) (Client Quit)
2024-02-11 20:06:49 +0100coot(~coot@89.69.206.216) (Quit: coot)
2024-02-11 20:07:56 +0100ursa-major(~ursa-majo@c-174-63-24-92.hsd1.co.comcast.net)
2024-02-11 20:08:11 +0100rvalue(~rvalue@user/rvalue)
2024-02-11 20:10:44 +0100euleritian(~euleritia@dynamic-046-114-170-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 20:11:02 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 20:12:34 +0100 <ski> noumenon : how do you mean ?
2024-02-11 20:14:38 +0100 <noumenon> ski: oh, nvm, I was confusing it with "kind"
2024-02-11 20:15:37 +0100 <noumenon> something about forming a fractal hierarchy
2024-02-11 20:16:36 +0100 <noumenon> having sorts of kinds, and so on
2024-02-11 20:17:04 +0100 <noumenon> species of sorts
2024-02-11 20:17:09 +0100 <noumenon> varieties of species
2024-02-11 20:17:33 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-11 20:17:39 +0100 <noumenon> I wonder if you can abstract even that fractal nesting somehow
2024-02-11 20:19:23 +0100 <EvanR> you run out of jargon so fast, might as well call the type universes by number
2024-02-11 20:19:39 +0100 <EvanR> Type 1 : Type 2 : Type 3, etc
2024-02-11 20:20:52 +0100euleritian(~euleritia@dynamic-046-114-170-184.46.114.pool.telefonica.de)
2024-02-11 20:21:03 +0100 <noumenon> sounds more reasonable
2024-02-11 20:21:06 +0100 <ncf> it's called agda
2024-02-11 20:24:55 +0100alexherbo2(~alexherbo@2a02-8440-3341-cfe3-f821-77e5-e4a1-a519.rev.sfr.net) (Remote host closed the connection)
2024-02-11 20:30:34 +0100rscastilho2024(~rscastilh@189.61.140.215) (Remote host closed the connection)
2024-02-11 20:31:02 +0100euleritian(~euleritia@dynamic-046-114-170-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 20:31:24 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 20:35:10 +0100rscastilho2024(~rscastilh@189.61.140.215)
2024-02-11 20:37:52 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-02-11 20:39:37 +0100ld(~ld@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 20:39:45 +0100ld(~ld@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Remote host closed the connection)
2024-02-11 20:40:16 +0100 <noumenon> lol
2024-02-11 20:40:18 +0100 <noumenon> https://iohk.io/en/research/library/papers/reasonable-agda-is-correct-haskell-writing-verified-has…
2024-02-11 20:40:20 +0100euleritian(~euleritia@dynamic-046-114-170-184.46.114.pool.telefonica.de)
2024-02-11 20:40:25 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 20:40:28 +0100 <noumenon> and just when I thought Haskell was the biggest shark in the water
2024-02-11 20:40:52 +0100 <Rembane> noumenon: There are always bigger sharks. :)
2024-02-11 20:41:13 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Remote host closed the connection)
2024-02-11 20:41:56 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 20:41:59 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Remote host closed the connection)
2024-02-11 20:42:31 +0100 <ncf> haskell is nothing
2024-02-11 20:42:38 +0100 <ncf> -- bob harper, probably
2024-02-11 20:42:42 +0100 <noumenon> Rembane: there has to be some ultimate language, one which perfectly abstracts anything; the biggest shark
2024-02-11 20:43:12 +0100 <Rembane> noumenon: Maybe. Lambda calculus perhaps?
2024-02-11 20:43:34 +0100Guest92(~Guest92@97-120-50-87.ptld.qwest.net)
2024-02-11 20:43:37 +0100 <noumenon> maybe that's what we should be programming with
2024-02-11 20:44:33 +0100 <ncf> it's called agda (bis)
2024-02-11 20:44:50 +0100 <ncf> cubical agda, even
2024-02-11 20:45:14 +0100euleritian(~euleritia@dynamic-046-114-170-184.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-02-11 20:45:16 +0100 <probie> Is cubical agda the hott extension to agda?
2024-02-11 20:45:32 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-02-11 20:45:45 +0100 <noumenon> >open import Cubical.Core.Everything
2024-02-11 20:45:55 +0100 <noumenon> well, that does sound like something you'd write before coding the universe
2024-02-11 20:45:59 +0100 <ncf> the *computational* hott extension to agda
2024-02-11 20:47:24 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 20:47:38 +0100 <geekosaur> noumenon: abstracts how? there are multiple kinds of abstraction
2024-02-11 20:47:39 +0100 <ncf> (you don't need any extensions to do hott; in fact you need to *remove* an axiom (--without-K). but if you want your proofs to actually compute, then you need a metric shitton of complicated stuff)
2024-02-11 20:48:39 +0100 <geekosaur> LC is one form of abstraction. the Ωmega language abstracts in a different way. etc.
2024-02-11 20:50:22 +0100 <noumenon> geekosaur: something that abstracts abstraction itself, the ultimate abstraction, the Megalodon of languages
2024-02-11 20:50:51 +0100 <noumenon> hopefully with intuitive syntax
2024-02-11 20:51:02 +0100 <geekosaur> didn't Gödel have something to say about that?
2024-02-11 20:51:34 +0100 <noumenon> until Gödel proves his theorems with Agda I don't believe them
2024-02-11 20:53:22 +0100pmk(6afe4476a1@2a03:6000:1812:100::26d)
2024-02-11 20:58:33 +0100Guest92(~Guest92@97-120-50-87.ptld.qwest.net) (Quit: Client closed)
2024-02-11 21:02:52 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Remote host closed the connection)
2024-02-11 21:04:29 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-02-11 21:08:20 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 21:08:35 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Remote host closed the connection)
2024-02-11 21:09:07 +0100finsternis(~X@23.226.237.192)
2024-02-11 21:09:09 +0100bzm3r(~bzm3r@d205-250-253-229.bchsia.telus.net)
2024-02-11 21:09:12 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 21:09:26 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Remote host closed the connection)
2024-02-11 21:10:06 +0100rscastilho2024(~rscastilh@189.61.140.215) (Remote host closed the connection)
2024-02-11 21:16:07 +0100Achylles(~Achylles_@45.182.57.125)
2024-02-11 21:20:21 +0100 <EvanR> noumenon, haskell is the gateway drug of advanced programming languages
2024-02-11 21:20:44 +0100 <EvanR> you may never heard of what's out there until you do haskell and then people tell you that's nothing
2024-02-11 21:22:02 +0100Sgeo(~Sgeo@user/sgeo)
2024-02-11 21:23:15 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-02-11 21:41:11 +0100noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer)
2024-02-11 21:48:45 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-11 21:52:06 +0100ricardo_1(~ricardo@shabang.toppoint.de) (Read error: Connection reset by peer)
2024-02-11 21:54:55 +0100michalz(~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in)
2024-02-11 21:55:17 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0)
2024-02-11 21:55:31 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-02-11 21:56:45 +0100hamster(~ham@user/ham)
2024-02-11 21:58:23 +0100Achylles(~Achylles_@45.182.57.125) (Quit: Leaving)
2024-02-11 21:58:49 +0100Achylles(~Achylles_@45.182.57.125)
2024-02-11 21:59:03 +0100Achylles(~Achylles_@45.182.57.125) (Max SendQ exceeded)
2024-02-11 21:59:13 +0100ham2(~ham@user/ham) (Ping timeout: 264 seconds)
2024-02-11 22:01:16 +0100 <TMA> well, Gödel theorems are just the tip of the iceberg. if you happen to have a "nice" theory of first order logic [nice ~ consistent, complete] the axioms are not recursively enumerable
2024-02-11 22:03:03 +0100 <TMA> there cannot be the biggest shark
2024-02-11 22:05:23 +0100raoul(~raoul@95.179.203.88) (Quit: Ping timeout (120 seconds))
2024-02-11 22:05:42 +0100raoul(~raoul@95.179.203.88)
2024-02-11 22:07:26 +0100target_i(~target_i@217.175.14.39) (Quit: leaving)
2024-02-11 22:08:13 +0100 <haskellbridge> <L​iamzee> hi noumenon, I'm phenomenon, how are you doing? :)
2024-02-11 22:11:22 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds)
2024-02-11 22:11:57 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2024-02-11 22:14:19 +0100RaspbellySwirl(~Raspbelly@host-213-235-142-6.ip.topnet.cz) (Ping timeout: 246 seconds)
2024-02-11 22:16:33 +0100ursa-major(~ursa-majo@c-174-63-24-92.hsd1.co.comcast.net) (Quit: WeeChat 4.2.1)
2024-02-11 22:17:11 +0100hololeap(~quassel@user/hololeap) (Quit: Bye)
2024-02-11 22:18:17 +0100hololeap(~quassel@user/hololeap)
2024-02-11 22:24:05 +0100skiidly ponders time cubical agda
2024-02-11 22:25:07 +0100 <ski> noumenon left, about half an hour ago
2024-02-11 22:26:13 +0100 <EvanR> is that what dr gene ray used. Time is cubic: top bottom and two sides
2024-02-11 22:28:20 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-02-11 22:33:51 +0100ski. o O ( "The 4-equidistant time points can be considered as Time Square imprinted upon the circle of Earth. In a single rotation of the Earth sphere, each Time corner point rotates through the other 3-corner Time points, thus creating 16 corners, 96 hours and 4-simultaneous 24-hour Days within a single rotation of Earth – equated to a Higher Order of Life Time Cube." )
2024-02-11 22:34:08 +0100 <ski> clearly this is talking about suspensions and stuff
2024-02-11 22:34:30 +0100 <EvanR> you're somehow right
2024-02-11 22:34:40 +0100azr4e1(~azr4e1@2a01:4b00:8438:1700:eee4:f118:781d:97a0) (Ping timeout: 255 seconds)
2024-02-11 22:39:12 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2024-02-11 22:39:32 +0100 <ncf> suspensions of disbelief
2024-02-11 22:43:35 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-02-11 22:56:11 +0100 <ncf> ski: surely "time cubical agda" would implement guarded cubical type theory (https://agda.readthedocs.io/en/latest/language/guarded.html)
2024-02-11 23:00:03 +0100 <ski> hm, that's modal stuff, yes ?
2024-02-11 23:00:38 +0100ski's reminded of Nanevski's "Contextual Modal Type Theory"
2024-02-11 23:01:45 +0100 <ncf> there's a "later" modality, clock quantification...
2024-02-11 23:02:25 +0100 <ski> .. i wonder how (if) this relates to MetaML/MetaOCaml stuff
2024-02-11 23:02:47 +0100Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no)
2024-02-11 23:03:43 +0100 <ski> "Application t u for t : (@tick x : A) → B is restricted so that t is typable in the prefix of the context that does not include any @tick variables in u." -- what's the type of `u', here ?
2024-02-11 23:05:17 +0100 <ncf> A
2024-02-11 23:07:55 +0100todi(~todi@p4fd1aef3.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-02-11 23:07:59 +0100dostoyevsky2(~sck@user/dostoyevsky2) (Quit: leaving)
2024-02-11 23:08:18 +0100 <haskellbridge> <i​rregularsphere> EvanR: i felt stupid searching up "gateway drug"
2024-02-11 23:08:22 +0100dostoyevsky2(~sck@user/dostoyevsky2)
2024-02-11 23:09:34 +0100 <geekosaur> gotta be careful with those English idioms…
2024-02-11 23:09:55 +0100 <EvanR> I just check urban dictionary to see if it would help. It does not
2024-02-11 23:10:06 +0100puke(~puke@user/puke) (Quit: puke)
2024-02-11 23:13:28 +0100 <haskellbridge> <i​rregularsphere> noumenon: wdym agda is a "bigger shark" than haskell
2024-02-11 23:13:44 +0100 <haskellbridge> <i​rregularsphere> it just looks like haskell but the compiler proves it
2024-02-11 23:13:51 +0100 <haskellbridge> <i​rregularsphere> either way agda2hs seems nice
2024-02-11 23:14:50 +0100 <geekosaur> noumenon left some time ago
2024-02-11 23:16:01 +0100 <geekosaur> (the bridge doesn't relay joins/parts and I Have no intention of enabling that)
2024-02-11 23:17:24 +0100 <EvanR> you do join part reporting just fine
2024-02-11 23:17:30 +0100 <EvanR> thanks
2024-02-11 23:18:47 +0100ystael(~ystael@user/ystael) (Ping timeout: 252 seconds)
2024-02-11 23:19:56 +0100 <haskellbridge> <i​rregularsphere> wait is haskell intrinsically not always type correct
2024-02-11 23:20:00 +0100 <haskellbridge> <i​rregularsphere> i hate to see it
2024-02-11 23:20:17 +0100dostoyevsky2(~sck@user/dostoyevsky2) (Quit: leaving)
2024-02-11 23:20:27 +0100 <geekosaur> it's type correct, but there are programs that are well typed that haskell's typechecker cannot so prove
2024-02-11 23:20:28 +0100 <haskellbridge> <i​rregularsphere> ~~*meanwhile me putting up `undefined` in `Instance Num`~~
2024-02-11 23:20:33 +0100dostoyevsky2(~sck@user/dostoyevsky2)
2024-02-11 23:20:44 +0100 <haskellbridge> <i​rregularsphere> type correct as in mathematically correct
2024-02-11 23:20:44 +0100 <geekosaur> because it's relatively weak
2024-02-11 23:20:45 +0100 <EvanR> well typed programs don't get stuck
2024-02-11 23:21:15 +0100puke(~puke@user/puke)
2024-02-11 23:21:34 +0100 <geekosaur> agda, idris, and coq among others have stronger type checkers
2024-02-11 23:22:26 +0100 <geekosaur> and agda and idris can translate to haskell basically by doing the typechecking and then wrapping everything in unsafeCoerce aka "just trust me on this, okay?"
2024-02-11 23:22:51 +0100 <haskellbridge> <i​rregularsphere> is unsafeCoerce basically "yeah i proved this myself"
2024-02-11 23:22:57 +0100 <geekosaur> yes
2024-02-11 23:23:07 +0100 <haskellbridge> <i​rregularsphere> oh so that's what it's for
2024-02-11 23:23:59 +0100 <EvanR> there are programs that make sense that can't be type checked in haskell. And there are type checked programs in haskell that crash disgracefully
2024-02-11 23:24:15 +0100 <haskellbridge> <i​rregularsphere> i wonder what unsafeCoerce# is up to
2024-02-11 23:24:51 +0100 <haskellbridge> <i​rregularsphere> to be put up with such funny documentation
2024-02-11 23:25:01 +0100 <haskellbridge> <i​rregularsphere> > Highly, terribly dangerous coercion from one representation type to another. Misuse of this function can invite the garbage collector to trounce upon your data and then laugh in your face. You don't want this function. Really.
2024-02-11 23:26:10 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-02-11 23:27:11 +0100 <geekosaur> unsafeCoerce reinterprets one LiftedRep as a different LiftedRep. this is somewhat dangerous if the two aren't actually representationally compatible
2024-02-11 23:28:06 +0100 <geekosaur> unsafeCoerce# reinteprets any TypeRep as a different TypeRep. this is a very good way to cause core dumps if you don't know exactly what you're doing
2024-02-11 23:32:14 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-02-11 23:33:08 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-02-11 23:34:36 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 4.2.1)
2024-02-11 23:51:38 +0100azr4e1(~azr4e1@137.220.68.193)
2024-02-11 23:51:54 +0100azr4e1(~azr4e1@137.220.68.193) (Remote host closed the connection)
2024-02-11 23:53:55 +0100JordiGH(~jordi@user/jordigh) (Ping timeout: 268 seconds)
2024-02-11 23:57:28 +0100random-jellyfish(~developer@user/random-jellyfish)