2024/12/29

2024-12-29 00:05:02 +0100cowboy8625(~cowboy@2605-4A80-7405-640-B51A-FA7D-9084-E360-dynamic.midco.net)
2024-12-29 00:09:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 00:10:10 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-12-29 00:11:07 +0100Xe(~Xe@perl/impostor/xe) Xe
2024-12-29 00:12:54 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 260 seconds)
2024-12-29 00:13:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 00:23:44 +0100 <haskellbridge> <thirdofmay18081814goya> hm, anyone has some insight about why the indexed monad's "bind" has that type?
2024-12-29 00:24:35 +0100 <haskellbridge> <thirdofmay18081814goya> "(a -> m j k b) -> m i j a -> m i k b", the two last types makes sense, but the first type "(a -> m j k b)" I'm not too sure about
2024-12-29 00:25:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 00:26:13 +0100housemate(~housemate@pa49-185-30-217.pa.vic.optusnet.com.au) (Ping timeout: 248 seconds)
2024-12-29 00:26:21 +0100 <haskellbridge> <thirdofmay18081814goya> I'm reading "m i j a" as, the monad indexed by "i", such that "j" depends on "i"
2024-12-29 00:26:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-29 00:30:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 00:30:30 +0100 <geekosaur> looks like a straightforward generalization of (a -> m b) -> m a -> m b, with an assumption that the action produces both a new value type and a new index type to go with it, and the result type encodes the initial and final index types while discarding the intermediate one (j) because it becomes k when the action is run
2024-12-29 00:32:01 +0100 <geekosaur> the initial state encodes i->j, then the action gives you j->k, meaning the result is i->k
2024-12-29 00:32:41 +0100 <haskellbridge> <thirdofmay18081814goya> hm I'll think about the idea of discarding the intermediate index type, ty
2024-12-29 00:33:10 +0100 <haskellbridge> <thirdofmay18081814goya> right ok
2024-12-29 00:33:13 +0100 <haskellbridge> <thirdofmay18081814goya> that makes more sense, ok ty
2024-12-29 00:33:21 +0100 <geekosaur> there isn't much to think about, any more than it's worth thinking about 2+3+4 giving you an intermediate 5
2024-12-29 00:33:42 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 00:35:40 +0100 <geekosaur> AIUI the whole point is that the indexed monad tracks an initial and a final index. individual actions within it produce new "final" indexes which aren't the final index of the entire computation because the next action maps from the first "final" index to a new one
2024-12-29 00:39:35 +0100 <haskellbridge> <thirdofmay18081814goya> ok right, I wasn't quite getting that in "m i j a", both "i" and "j" are indextypes
2024-12-29 00:43:50 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 00:45:37 +0100foul_owl(~kerry@193.42.0.124) (Ping timeout: 252 seconds)
2024-12-29 00:46:55 +0100 <haskellbridge> <thirdofmay18081814goya> they are from the same indexing type*
2024-12-29 00:47:36 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-12-29 00:47:51 +0100 <haskellbridge> <thirdofmay18081814goya> was reading that wrong
2024-12-29 00:48:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 00:52:35 +0100 <haskellbridge> <thirdofmay18081814goya> next question is... why two indexes?
2024-12-29 00:53:11 +0100 <haskellbridge> <thirdofmay18081814goya> the usage of one index is understandable, e.g. the type of lists with a given length
2024-12-29 00:54:10 +0100 <haskellbridge> <thirdofmay18081814goya> hm but maybe you'll two indexes if you're mapping from lists of length n to lists of length m?
2024-12-29 00:54:22 +0100 <haskellbridge> <thirdofmay18081814goya> you'll want two indexed*
2024-12-29 00:55:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 00:56:00 +0100gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-12-29 00:59:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 00:59:55 +0100 <geekosaur> think a and b having different Ord instances
2024-12-29 01:00:21 +0100 <geekosaur> so it tracks the original and final Ord instances
2024-12-29 01:00:36 +0100foul_owl(~kerry@174-21-81-201.tukw.qwest.net) foul_owl
2024-12-29 01:01:27 +0100lol_jcarpenter2
2024-12-29 01:01:59 +0100gentauro(~gentauro@user/gentauro) gentauro
2024-12-29 01:02:18 +0100 <geekosaur> (since one of the uses of indexed monads is to allow things like an indexed monad instance for Set, which normally isn't possible because changing the key type alters the structure to reflect a different Ord instance. AIUI at least)
2024-12-29 01:02:54 +0100 <geekosaur> (meaning i, j, k are the key types since those specify the Ord instances, again AIUI)
2024-12-29 01:05:17 +0100 <haskellbridge> <thirdofmay18081814goya> hm right
2024-12-29 01:06:39 +0100iteratee(~kyle@162.218.222.207) (Remote host closed the connection)
2024-12-29 01:07:45 +0100 <geekosaur> more generally, a would be Map k v, b would be Map k' v', i is k and j is k'
2024-12-29 01:08:22 +0100 <geekosaur> and I think mathematically (but sadly not in Haskell's type system) if i == j then it should reduce to a normal non-indexed monad
2024-12-29 01:09:58 +0100todi1(~todi@p57803331.dip0.t-ipconnect.de)
2024-12-29 01:10:48 +0100todi(~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-12-29 01:11:01 +0100alp(~alp@128-79-174-146.hfc.dyn.abo.bbox.fr) (Ping timeout: 248 seconds)
2024-12-29 01:12:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 01:15:16 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-29 01:15:48 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-12-29 01:16:18 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-12-29 01:18:37 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-12-29 01:18:37 +0100ljdarj1ljdarj
2024-12-29 01:19:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-29 01:25:43 +0100 <hololeap> it reminds me of (.|) :: Monad m => ConduitT a b m () -> ConduitT b c m r -> ConduitT a c m r
2024-12-29 01:27:21 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Quit: pillow time)
2024-12-29 01:32:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 01:36:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 01:37:53 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
2024-12-29 01:38:30 +0100 <ncf> geekosaur: i don't think Set is an indexed monad?
2024-12-29 01:40:15 +0100 <geekosaur> maybe I'm completely confused, that was what I thought (part of) the point of it was
2024-12-29 01:40:41 +0100 <ncf> are you thinking of exofunctors or something
2024-12-29 01:42:05 +0100 <ncf> there's some motivation here https://stackoverflow.com/questions/28690448/what-is-indexed-monad
2024-12-29 01:42:11 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-12-29 01:42:13 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-12-29 01:43:41 +0100Everything(~Everythin@195.138.86.118) (Quit: leaving)
2024-12-29 01:49:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 01:53:49 +0100foul_owl(~kerry@174-21-81-201.tukw.qwest.net) (Ping timeout: 252 seconds)
2024-12-29 01:54:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 02:01:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 02:06:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 02:08:03 +0100foul_owl(~kerry@193.42.0.124) foul_owl
2024-12-29 02:17:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 02:18:58 +0100sprotte24(~sprotte24@p200300d16f0bfe00711e65c2b30202f1.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2024-12-29 02:22:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-29 02:23:31 +0100 <ncf> i guess the one-sentence definition of an indexed monad is "category enriched in the monoidal category of endofunctors with composition"
2024-12-29 02:23:42 +0100 <ncf> (the one that monads are just monoids in)
2024-12-29 02:25:55 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-29 02:26:37 +0100 <hololeap> "with composition" seems like it would be redundant. isn't that implied by it being a category?
2024-12-29 02:27:14 +0100 <ncf> with composition as the monoidal product
2024-12-29 02:27:24 +0100 <ncf> composition of endofunctors
2024-12-29 02:28:29 +0100 <ncf> i.e. the endomorphism monoidal category on Set in the bicategory of categories
2024-12-29 02:30:10 +0100 <hololeap> isn't that usually just referred to as "the category of endofunctors"
2024-12-29 02:31:29 +0100 <hololeap> (I barely understand this stuff so don't take me too seriously)
2024-12-29 02:31:34 +0100 <ncf> well that doesn't tell you which monoidal structure you put on it
2024-12-29 02:32:11 +0100 <ncf> i.e. applicative functors are monoids in the category of endofunctors *with Day convolution as the monoidal product*
2024-12-29 02:35:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 02:36:55 +0100 <hololeap> ok I think I see what you mean
2024-12-29 02:37:53 +0100acidjnk_new3(~acidjnk@p200300d6e7283f42bc4ebb891d7561a4.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-12-29 02:39:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 02:44:58 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-29 02:47:33 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
2024-12-29 02:52:22 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-12-29 02:53:02 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 02:54:03 +0100comonad(~comonad@p200300d0270bcb00d2bd35ff80c069c9.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2024-12-29 02:54:07 +0100Square(~Square@user/square) (Ping timeout: 264 seconds)
2024-12-29 02:55:47 +0100comonad(~comonad@p200300d027182d00bcfd40be9d94d2dc.dip0.t-ipconnect.de)
2024-12-29 03:00:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-29 03:03:11 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 03:04:56 +0100thatonelutenist(8216c46202@2a03:6000:1812:100::fb3) thatonelutenist
2024-12-29 03:06:24 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2024-12-29 03:11:40 +0100 <Leary> @tell prsteele https://play.haskell.org/saved/J7bdQ5zn
2024-12-29 03:11:41 +0100 <lambdabot> Consider it noted.
2024-12-29 03:12:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 03:16:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-29 03:24:00 +0100 <Leary> thirdofmay: The Atkey indexed monad has two indices for the same reason `Category` arrows do; its bind performs a kind of composition. Simple examples include the indexed writer monad, which writes category arrows rather than monoids, and the indexed state monad which has distinct types for the initial and final state.
2024-12-29 03:27:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 03:27:53 +0100 <Leary> This is clearer when looking at a corresponding indexed applicative: `unit :: f i i (); fuse :: f i j a -> f j k b -> f i k (a, b)`
2024-12-29 03:32:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 03:44:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 03:45:04 +0100notzmv(~umar@user/notzmv) (Ping timeout: 265 seconds)
2024-12-29 03:52:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 03:59:50 +0100 <haskellbridge> <thirdofmay18081814goya> hm
2024-12-29 04:00:07 +0100 <haskellbridge> <thirdofmay18081814goya> we want there to be a strict ordering in the indexing type/sort right?
2024-12-29 04:00:27 +0100notzmv(~umar@user/notzmv) notzmv
2024-12-29 04:02:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 04:05:03 +0100op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-12-29 04:05:34 +0100op_4(~tslil@user/op-4/x-9116473) op_4
2024-12-29 04:07:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 04:07:23 +0100 <haskellbridge> <thirdofmay18081814goya> thinking about specifically the case where the indexes are given by "Finite n"
2024-12-29 04:07:49 +0100 <haskellbridge> <thirdofmay18081814goya> well
2024-12-29 04:08:25 +0100 <haskellbridge> <thirdofmay18081814goya> there is no type that can carry more information that either "Finite n" or "Nat", so I think it is a good starting point
2024-12-29 04:08:43 +0100 <haskellbridge> <thirdofmay18081814goya> there is no type that can carry more information as an indexing type***
2024-12-29 04:10:30 +0100prasad(~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net) (Ping timeout: 260 seconds)
2024-12-29 04:11:00 +0100 <haskellbridge> <thirdofmay18081814goya> i.e. any work that can done by a type, as an indexing type, will be the same as can be done by either "Finite n" or the type of natural numbers
2024-12-29 04:13:37 +0100 <haskellbridge> <thirdofmay18081814goya> simply because the work of an indexing type is delimited simply by how many ways you can pattern match on it. i.e. this completely specifies the extent of the work an indexing type can do
2024-12-29 04:14:23 +0100 <haskellbridge> <thirdofmay18081814goya> pattern matching, that is
2024-12-29 04:16:00 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-12-29 04:17:05 +0100 <haskellbridge> <Bowuigi> Wait how?
2024-12-29 04:18:13 +0100 <Leary> I don't see what an ordering on the index kind has to do with anything.
2024-12-29 04:18:33 +0100 <haskellbridge> <thirdofmay18081814goya> Bowuigi: the extent of the work that can be done by an indexing type is that of specifying another type, so it has type "IndexType -> Type", where "IndexType : Type"
2024-12-29 04:19:15 +0100 <haskellbridge> <thirdofmay18081814goya> uh
2024-12-29 04:19:18 +0100 <haskellbridge> <thirdofmay18081814goya> wait
2024-12-29 04:20:08 +0100 <haskellbridge> <thirdofmay18081814goya> that's not the type it has, the choice function in which it serves as the indexing type has that type
2024-12-29 04:20:32 +0100 <haskellbridge> <thirdofmay18081814goya> "choiceFunction :: IndexType -> Type", where "IndexType :: Type"
2024-12-29 04:20:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 04:21:17 +0100 <haskellbridge> <thirdofmay18081814goya> Leary: not sure either, just threw that out there to make the problem more concrete
2024-12-29 04:21:19 +0100dsrt^(dsrt@c-98-242-74-66.hsd1.ga.comcast.net)
2024-12-29 04:22:24 +0100 <haskellbridge> <Bowuigi> I still don't understand how does that limit you to Nat/Fin
2024-12-29 04:25:11 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 04:28:58 +0100 <haskellbridge> <thirdofmay18081814goya> Bowuigi: well, there is nothing in "IndexType :: Type" that can be used to make a value of "Type". so it can only allow you to choose a value. i.e., the term that will result from applying "choiceFunction :: IndexType -> Type" will not contain any term from "IndexType"
2024-12-29 04:29:25 +0100 <haskellbridge> <thirdofmay18081814goya> the argument also follows from considering that any term (e.g. in System F) has finitely many symbols and therefore can only have finitely many differences with any other term
2024-12-29 04:30:28 +0100 <haskellbridge> <thirdofmay18081814goya> so if you have "someTerm :: Type", it has at most finitely many differences with "anotherTerm :: Type", which means these can be indexed by a function on the naturals
2024-12-29 04:30:38 +0100 <haskellbridge> <thirdofmay18081814goya> these differences*
2024-12-29 04:31:21 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 276 seconds)
2024-12-29 04:34:35 +0100td_(~td@i5387093F.versanet.de) (Ping timeout: 244 seconds)
2024-12-29 04:35:02 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-12-29 04:35:22 +0100 <haskellbridge> <thirdofmay18081814goya> not sure if the same argument could be used for dependent types. for non-dependent types I think it is enough
2024-12-29 04:36:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 04:36:43 +0100td_(~td@i5387092B.versanet.de) td_
2024-12-29 04:37:52 +0100 <haskellbridge> <thirdofmay18081814goya> i.e. we use the fact that "choiceFunction :: IndexType -> Type" applied to "index :: IndexType" will produce a term "resultingTerm :: Type" which has no subterms like "someSubterm :: IndexType"
2024-12-29 04:38:09 +0100 <haskellbridge> <thirdofmay18081814goya> because of non-dependent types
2024-12-29 04:39:01 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-29 04:39:04 +0100Typedfern(~Typedfern@106.red-83-37-34.dynamicip.rima-tde.net) (Remote host closed the connection)
2024-12-29 04:39:04 +0100typedfern_(~Typedfern@106.red-83-37-34.dynamicip.rima-tde.net) (Remote host closed the connection)
2024-12-29 04:41:38 +0100Typedfern(~Typedfern@106.red-83-37-34.dynamicip.rima-tde.net) typedfern
2024-12-29 04:43:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 04:46:01 +0100 <haskellbridge> <thirdofmay18081814goya> so that means the only "value" or only "worth" of "IndexType" is how many ways it can be different, i.e., its cardinality
2024-12-29 04:46:08 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 04:46:49 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-29 04:47:46 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 04:48:13 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-29 04:51:06 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 04:51:31 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-29 04:56:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 04:59:16 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 05:01:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 05:08:41 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) (Ping timeout: 265 seconds)
2024-12-29 05:13:23 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 05:14:26 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) euandreh
2024-12-29 05:17:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 05:29:13 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 05:29:24 +0100 <haskellbridge> <Bowuigi> That makes sense I guess
2024-12-29 05:30:48 +0100 <haskellbridge> <Bowuigi> Tho Nat may not be enough, unsure if larger infinities can be represented without dependent types
2024-12-29 05:32:09 +0100 <haskellbridge> <thirdofmay18081814goya> Bowuigi: this is probably taken care of if the alphabet is assumed to be countable. cannot have uncountably-many terms arising from countable alphabet
2024-12-29 05:33:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 05:35:51 +0100 <haskellbridge> <Bowuigi> Dedekind/Cauchy reals don't seem to require infinite alphabets
2024-12-29 05:47:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 05:51:01 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 248 seconds)
2024-12-29 05:51:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 06:03:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 06:04:16 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (Ping timeout: 265 seconds)
2024-12-29 06:05:04 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) Raito_Bezarius
2024-12-29 06:06:46 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-12-29 06:08:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-29 06:18:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 06:23:26 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) Raito_Bezarius
2024-12-29 06:24:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-29 06:37:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 06:42:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 06:53:23 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 06:54:48 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) (Remote host closed the connection)
2024-12-29 06:55:08 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) euandreh
2024-12-29 06:55:57 +0100vanishingideal(~vanishing@user/vanishingideal) (Quit: leaving)
2024-12-29 06:57:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 07:09:31 +0100notzmv(~umar@user/notzmv) (Ping timeout: 265 seconds)
2024-12-29 07:10:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 07:14:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 07:20:04 +0100alp(~alp@2001:861:8ca0:4940:cce8:4f56:ac90:1a49)
2024-12-29 07:28:22 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) (Ping timeout: 265 seconds)
2024-12-29 07:28:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 07:29:35 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) euandreh
2024-12-29 07:35:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 07:41:42 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-12-29 07:42:06 +0100stiell(~stiell@gateway/tor-sasl/stiell) stiell
2024-12-29 07:44:36 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-12-29 07:48:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 07:51:39 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-12-29 07:53:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-29 07:54:41 +0100j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2024-12-29 07:58:19 +0100j1n37(~j1n37@user/j1n37) j1n37
2024-12-29 07:59:28 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-29 07:59:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 08:03:50 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 08:08:06 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-29 08:10:40 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-12-29 08:16:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 08:17:29 +0100euphores(~SASL_euph@user/euphores) euphores
2024-12-29 08:21:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 08:32:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 08:33:39 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-29 08:37:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 08:39:53 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2024-12-29 08:40:48 +0100CiaoSen(~Jura@2a05:5800:2df:5d00:ca4b:d6ff:fec1:99da) CiaoSen
2024-12-29 08:48:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 08:53:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 09:00:02 +0100tt12310978324354(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Quit: The Lounge - https://thelounge.chat)
2024-12-29 09:00:02 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-12-29 09:00:39 +0100caconym(~caconym@user/caconym) caconym
2024-12-29 09:04:00 +0100tt12310978324354(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) tt1231
2024-12-29 09:05:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 09:12:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 09:18:46 +0100notzmv(~umar@user/notzmv) notzmv
2024-12-29 09:18:56 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-29 09:20:50 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 09:23:51 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-29 09:25:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 09:27:34 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 09:29:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 09:41:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 09:45:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 09:59:16 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 244 seconds)
2024-12-29 09:59:23 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 09:59:56 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2024-12-29 10:01:00 +0100mesaoptimizer(~mesa@user/PapuaHardyNet) (Quit: WeeChat 4.0.4)
2024-12-29 10:04:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-29 10:05:07 +0100acidjnk_new3(~acidjnk@p200300d6e7283f8900a2a0b37ea8fce4.dip0.t-ipconnect.de) acidjnk
2024-12-29 10:05:46 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2024-12-29 10:17:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 10:20:41 +0100mreh(~matthew@host86-146-25-121.range86-146.btcentralplus.com) mreh
2024-12-29 10:21:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-29 10:21:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 10:22:35 +0100 <mreh> why is there no standard library instance of Foreign.Storable (a, b)?
2024-12-29 10:23:11 +0100 <mreh> is it too inflexible to have only one?
2024-12-29 10:24:31 +0100 <c_wraith> I think it's more ideological. Storable is originally intended for things that map to C type, and (,) does not do that.
2024-12-29 10:25:03 +0100 <mreh> c_wraith: gotcha, sounds about right
2024-12-29 10:25:34 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-29 10:27:03 +0100CiaoSen(~Jura@2a05:5800:2df:5d00:ca4b:d6ff:fec1:99da) (Ping timeout: 246 seconds)
2024-12-29 10:30:35 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2024-12-29 10:34:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 10:37:17 +0100Square(~Square@user/square) Square
2024-12-29 10:38:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 10:41:21 +0100mesaoptimizer(~mesa@user/PapuaHardyNet) PapuaHardyNet
2024-12-29 10:42:36 +0100__monty__(~toonn@user/toonn) toonn
2024-12-29 10:42:59 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 10:52:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 10:54:18 +0100sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-12-29 10:54:46 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-29 10:58:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 11:08:45 +0100acidjnk_new3(~acidjnk@p200300d6e7283f8900a2a0b37ea8fce4.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-12-29 11:16:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 11:20:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 11:21:04 +0100alp(~alp@2001:861:8ca0:4940:cce8:4f56:ac90:1a49) (Ping timeout: 272 seconds)
2024-12-29 11:23:17 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89a9548a55d3d0f0c2.dip0.t-ipconnect.de) acidjnk
2024-12-29 11:26:09 +0100miris(~miris@user/miris) miris
2024-12-29 11:32:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 11:33:29 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2024-12-29 11:37:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 11:44:50 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) (Remote host closed the connection)
2024-12-29 11:45:13 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) euandreh
2024-12-29 11:49:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 11:53:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 12:01:00 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:4a35:c1dc:b9b7:67d8) billchenchina
2024-12-29 12:01:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 12:05:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 12:13:25 +0100Digitteknohippie(~user@user/digit) Digit
2024-12-29 12:14:59 +0100Digit(~user@user/digit) (Ping timeout: 265 seconds)
2024-12-29 12:16:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 12:18:50 +0100sprotte24(~sprotte24@p200300d16f115c0064019873c2fc968e.dip0.t-ipconnect.de)
2024-12-29 12:21:22 +0100sawilagar(~sawilagar@user/sawilagar) (Quit: Leaving)
2024-12-29 12:21:40 +0100euandreh(~Thunderbi@2804:d59:8929:cc00:c70d:53a7:f44e:6c64) (Quit: euandreh)
2024-12-29 12:21:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 12:26:35 +0100sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-12-29 12:33:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 12:35:28 +0100 <haskellbridge> <thirdofmay18081814goya> for anyone interested in the indexed monad discussions above, the following article clarifies a lot: https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=58bbf3f9381b1c08035b18b5e36bf15eb7c…
2024-12-29 12:36:05 +0100DigitteknohippieDigit
2024-12-29 12:36:16 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2024-12-29 12:36:18 +0100 <haskellbridge> <thirdofmay18081814goya> notably, why two indexes, and how to encode non-indexed functors (they use the Unit type as the two indexes)
2024-12-29 12:37:19 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 264 seconds)
2024-12-29 12:37:20 +0100tnt2tnt1
2024-12-29 12:37:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-29 12:38:00 +0100rvalue-(~rvalue@user/rvalue) rvalue
2024-12-29 12:38:42 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 244 seconds)
2024-12-29 12:42:18 +0100rvalue-rvalue
2024-12-29 12:49:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 12:50:36 +0100 <haskellbridge> <thirdofmay18081814goya> (the citation cluster around this article discusses the topic extensively too and most articles are freely available)
2024-12-29 12:56:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 12:59:15 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89a9548a55d3d0f0c2.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-12-29 12:59:41 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-12-29 13:00:17 +0100alp(~alp@2001:861:8ca0:4940:dcd7:67cc:75e1:172c)
2024-12-29 13:02:07 +0100 <ncf> a monad is just a one-object enriched category :)
2024-12-29 13:02:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 13:05:00 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-12-29 13:07:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-29 13:08:03 +0100sprotte24(~sprotte24@p200300d16f115c0064019873c2fc968e.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2024-12-29 13:11:24 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89a9548a55d3d0f0c2.dip0.t-ipconnect.de) acidjnk
2024-12-29 13:12:33 +0100rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-12-29 13:13:03 +0100rvalue(~rvalue@user/rvalue) rvalue
2024-12-29 13:13:15 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-12-29 13:18:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 13:20:17 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-12-29 13:23:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 13:26:44 +0100poscat(~poscat@user/poscat) (Quit: Bye)
2024-12-29 13:27:03 +0100poscat(~poscat@user/poscat) poscat
2024-12-29 13:29:25 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2024-12-29 13:32:48 +0100notzmv(~umar@user/notzmv) (Ping timeout: 265 seconds)
2024-12-29 13:35:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 13:40:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 13:40:48 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-29 13:42:15 +0100Digit(~user@user/digit) (Ping timeout: 244 seconds)
2024-12-29 13:43:54 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-29 13:51:24 +0100ionut_f(~ionut_f@user/ionut-f:27329) ionut_f
2024-12-29 13:51:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 13:55:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 13:59:09 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 245 seconds)
2024-12-29 14:00:43 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 14:01:21 +0100sprotte24(~sprotte24@p200300d16f115c0064019873c2fc968e.dip0.t-ipconnect.de)
2024-12-29 14:03:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 14:07:02 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-12-29 14:08:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 14:10:48 +0100alp(~alp@2001:861:8ca0:4940:dcd7:67cc:75e1:172c) (Ping timeout: 272 seconds)
2024-12-29 14:18:32 +0100Digit(~user@user/digit) Digit
2024-12-29 14:18:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 14:19:21 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 14:24:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-29 14:26:39 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 272 seconds)
2024-12-29 14:27:47 +0100 <kaol> :t \f g -> f <=< fmap g
2024-12-29 14:27:47 +0100 <lambdabot> Monad m => (b -> m c) -> (a -> b) -> m a -> m c
2024-12-29 14:27:51 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-12-29 14:28:25 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2024-12-29 14:28:37 +0100 <kaol> I used that but putting kleisli and fmap together felt odd, is there something obvious I missed?
2024-12-29 14:33:10 +0100 <int-e> :t \f g -> (>>= f . g)
2024-12-29 14:33:11 +0100 <lambdabot> Monad m => (b1 -> m b2) -> (a -> b1) -> m a -> m b2
2024-12-29 14:34:08 +0100 <int-e> :t \f g -> (>>= fmap f g) {- scnr -}
2024-12-29 14:34:09 +0100 <lambdabot> Monad m => (a1 -> m b) -> (a2 -> a1) -> m a2 -> m b
2024-12-29 14:35:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 14:35:42 +0100 <kaol> Thanks, I knew there was something off.
2024-12-29 14:42:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 14:45:29 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-12-29 14:47:32 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89a9548a55d3d0f0c2.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-12-29 14:49:15 +0100Digitteknohippie(~user@user/digit) Digit
2024-12-29 14:50:45 +0100Digit(~user@user/digit) (Ping timeout: 248 seconds)
2024-12-29 14:55:16 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-12-29 14:55:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 15:00:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 15:04:01 +0100Digitteknohippie(~user@user/digit) (Ping timeout: 248 seconds)
2024-12-29 15:04:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 15:05:27 +0100troydm(~troydm@user/troydm) troydm
2024-12-29 15:08:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-12-29 15:21:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 15:23:37 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 15:25:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-29 15:29:43 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-12-29 15:29:47 +0100ionut_f(~ionut_f@user/ionut-f:27329) (Remote host closed the connection)
2024-12-29 15:36:42 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de)
2024-12-29 15:38:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 15:40:42 +0100notzmv(~umar@user/notzmv) notzmv
2024-12-29 15:45:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 15:45:41 +0100euleritian(~euleritia@dynamic-176-006-135-074.176.6.pool.telefonica.de) (Ping timeout: 248 seconds)
2024-12-29 15:45:56 +0100euleritian(~euleritia@dynamic-176-006-141-198.176.6.pool.telefonica.de)
2024-12-29 15:47:54 +0100alp(~alp@2001:861:8ca0:4940:b0e2:6a53:aa07:4647)
2024-12-29 15:53:38 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89a9548a55d3d0f0c2.dip0.t-ipconnect.de) acidjnk
2024-12-29 15:56:40 +0100euleritian(~euleritia@dynamic-176-006-141-198.176.6.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-12-29 15:58:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 15:59:29 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-29 16:02:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 16:02:41 +0100euleritian(~euleritia@dynamic-176-003-015-198.176.3.pool.telefonica.de)
2024-12-29 16:05:04 +0100ephilalethes(~noumenon@2001:f40:908:735:aa7e:eaff:fede:ff94) noumenon
2024-12-29 16:05:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 16:06:51 +0100divya(divya@140.238.251.170) (Ping timeout: 276 seconds)
2024-12-29 16:09:35 +0100Digit(~user@198.144.208.46.dyn.plus.net)
2024-12-29 16:10:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 16:10:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-29 16:13:45 +0100 <haskellbridge> <hellwolf> > sequence $ Left [1,2,3,4]
2024-12-29 16:14:08 +0100 <haskellbridge> <hellwolf> _
2024-12-29 16:14:08 +0100 <haskellbridge> > sequence $ Left [1,2,3,4]
2024-12-29 16:14:09 +0100 <geekosaur> sneak a garbage line before it, from matrix
2024-12-29 16:14:10 +0100 <lambdabot> error:
2024-12-29 16:14:10 +0100 <lambdabot> • Ambiguous type variables ‘m0’,
2024-12-29 16:14:10 +0100 <lambdabot> ‘a0’ arising from a use of ‘show_M18904948350...
2024-12-29 16:15:51 +0100 <dminuoso> mreh: Besides, without a link to C representation the matter of "how to represent some arbitrary data" becomes a mess. Should (a, b) have some TLV representation? This rapidly swirls into encoding/decoding arbitrary payloads.
2024-12-29 16:21:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 16:25:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-29 16:31:48 +0100divya(divya@140.238.251.170) divya
2024-12-29 16:34:23 +0100ephilalethes(~noumenon@2001:f40:908:735:aa7e:eaff:fede:ff94) (Quit: Leaving)
2024-12-29 16:35:10 +0100driib318(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-12-29 16:37:10 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89a9548a55d3d0f0c2.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-12-29 16:38:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 16:39:20 +0100driib318(~driib@vmi931078.contaboserver.net) driib
2024-12-29 16:42:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-29 16:47:48 +0100gorignak(~gorignak@user/gorignak) gorignak
2024-12-29 16:47:51 +0100 <haskellbridge> <hellwolf> I don't understand the documentation of sequence, where it says
2024-12-29 16:47:51 +0100 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/QUKGrvLTNZOOOHdwBvktjVmF/bVwGZIEAz8s (3 lines)
2024-12-29 16:48:45 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-29 16:53:08 +0100 <glguy> > sequence $ Left [1,2,3,4]
2024-12-29 16:53:09 +0100 <lambdabot> error:
2024-12-29 16:53:09 +0100 <lambdabot> • Ambiguous type variables ‘m0’,
2024-12-29 16:53:09 +0100 <lambdabot> ‘a0’ arising from a use of ‘show_M47049344228...
2024-12-29 16:53:25 +0100 <int-e> > sequence $ Left [1,2,3,4] :: Either Int ()
2024-12-29 16:53:27 +0100 <lambdabot> error:
2024-12-29 16:53:27 +0100 <lambdabot> • Couldn't match type ‘Either [a1] a0’ with ‘()’
2024-12-29 16:53:27 +0100 <lambdabot> Expected type: Either Int ()
2024-12-29 16:53:32 +0100 <int-e> err
2024-12-29 16:53:55 +0100 <int-e> > sequence $ Left [1,2,3,4] :: Either [Int] [()]
2024-12-29 16:53:57 +0100 <lambdabot> error:
2024-12-29 16:53:57 +0100 <lambdabot> • Couldn't match type ‘Either [a0]’ with ‘[]’
2024-12-29 16:53:57 +0100 <lambdabot> Expected type: Either [Int] [()]
2024-12-29 16:54:10 +0100 <int-e> :t sequence $ Left [1,2,3,4]
2024-12-29 16:54:11 +0100 <lambdabot> (Monad m, Num a1) => m (Either [a1] a2)
2024-12-29 16:54:18 +0100 <int-e> sorry. evidently I don't get it.
2024-12-29 16:54:59 +0100 <int-e> > sequence $ Left [1,2,3,4] :: Identity (Either [Int] ())
2024-12-29 16:55:00 +0100 <glguy> in GHCi it defaults to > sequence $ Left [1,2,3,4] :: IO (Either [Int] ())
2024-12-29 16:55:28 +0100 <lambdabot> Identity (Left [1,2,3,4])
2024-12-29 16:56:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 16:56:43 +0100 <haskellbridge> <hellwolf> Oh IO monad
2024-12-29 16:56:50 +0100 <haskellbridge> <hellwolf> that makes sense
2024-12-29 16:57:15 +0100 <haskellbridge> <hellwolf> terrible example though in the doc
2024-12-29 16:57:39 +0100 <int-e> > sequence $ Right (Idenitity ()) :: Identity (Either [Int] ())
2024-12-29 16:57:41 +0100 <lambdabot> error:
2024-12-29 16:57:41 +0100 <lambdabot> • Data constructor not in scope: Idenitity :: () -> Identity ()
2024-12-29 16:57:41 +0100 <lambdabot> • Perhaps you meant one of these:
2024-12-29 16:57:47 +0100int-egives up
2024-12-29 16:59:00 +0100 <int-e> Ah it would help if I could type.
2024-12-29 17:00:10 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Remote host closed the connection)
2024-12-29 17:00:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 17:00:32 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-29 17:00:51 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-29 17:02:18 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Max SendQ exceeded)
2024-12-29 17:02:33 +0100 <haskellbridge> <hellwolf> main = print =<< (sequence $ Left [1,2,3,4] :: IO (Either [Int] ()))
2024-12-29 17:02:45 +0100 <haskellbridge> <hellwolf> I got it in the playground eventually
2024-12-29 17:03:01 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-29 17:03:14 +0100 <haskellbridge> <hellwolf> I suspect this example helps no one but confuse people
2024-12-29 17:03:45 +0100 <int-e> hmm, where did you find this?
2024-12-29 17:06:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 17:11:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 17:11:30 +0100Digit(~user@198.144.208.46.dyn.plus.net) (Ping timeout: 244 seconds)
2024-12-29 17:17:19 +0100Digit(~user@198.144.208.46.dyn.plus.net)
2024-12-29 17:18:38 +0100Digit(~user@198.144.208.46.dyn.plus.net) (Read error: Connection reset by peer)
2024-12-29 17:21:48 +0100Digit(~user@198.144.208.46.dyn.plus.net)
2024-12-29 17:22:29 +0100prasad(~Thunderbi@c-73-75-25-251.hsd1.in.comcast.net)
2024-12-29 17:22:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 17:24:30 +0100 <haskellbridge> <hellwolf> https://hackage.haskell.org/package/base-4.21.0.0/docs/Prelude.html#v:sequence
2024-12-29 17:24:45 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-12-29 17:27:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-12-29 17:29:48 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-12-29 17:36:33 +0100annamalai(~yaaic@2409:4072:609c:96c7::1350:d8b1) (Ping timeout: 276 seconds)
2024-12-29 17:39:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 17:43:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 17:44:08 +0100rekahsoft(~rekahsoft@76.69.85.220) rekahsoft
2024-12-29 17:46:14 +0100Guest62(~Guest10@202.134.186.134)
2024-12-29 17:46:31 +0100Guest62(~Guest10@202.134.186.134) (Client Quit)
2024-12-29 17:46:51 +0100kevinz56(~kevinz56@202.134.186.134)
2024-12-29 17:47:02 +0100 <kevinz56> Hii
2024-12-29 17:47:41 +0100kevinz56(~kevinz56@202.134.186.134) (Client Quit)
2024-12-29 17:54:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 17:56:08 +0100tnt2(~Thunderbi@user/tnt1) tnt1
2024-12-29 17:57:09 +0100tnt1(~Thunderbi@user/tnt1) (Ping timeout: 246 seconds)
2024-12-29 17:57:09 +0100tnt2tnt1
2024-12-29 17:57:47 +0100acidjnk_new3(~acidjnk@p200300d6e7283f89c5dccb51c3ab6697.dip0.t-ipconnect.de) acidjnk
2024-12-29 17:59:08 +0100annamalai(~yaaic@2409:4072:609c:96c7::1350:d8b1) annamalai
2024-12-29 17:59:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-29 18:02:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds)
2024-12-29 18:07:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 18:08:27 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-12-29 18:11:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 18:12:22 +0100Square(~Square@user/square) (Remote host closed the connection)
2024-12-29 18:13:21 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds)
2024-12-29 18:18:57 +0100talismanick(~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
2024-12-29 18:20:06 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 276 seconds)
2024-12-29 18:22:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 18:27:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-29 18:33:22 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-12-29 18:35:06 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:4a35:c1dc:b9b7:67d8) (Quit: Leaving)
2024-12-29 18:37:09 +0100Digit(~user@198.144.208.46.dyn.plus.net) (Read error: Connection reset by peer)
2024-12-29 18:37:13 +0100 <ash3en> hi, can i make this a bit less repetetive? https://paste.tomsmeding.com/dQn16HaU
2024-12-29 18:37:48 +0100Digit(~user@198.144.208.46.dyn.plus.net)
2024-12-29 18:40:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 18:41:40 +0100talismanick(~user@2601:644:937c:ed10::ae5) talismanick
2024-12-29 18:43:30 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
2024-12-29 18:45:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-29 18:51:43 +0100 <glguy> ash3en, what part of it do you want to eliminate?
2024-12-29 18:52:55 +0100 <ash3en> hm, I thought maybe there is a more concise version of this. the explicit return/pure is a bit annoying imo
2024-12-29 18:53:20 +0100 <c_wraith> there's <*
2024-12-29 18:53:23 +0100 <glguy> the pure st seems pretty important because that's where you specified the return value
2024-12-29 18:53:36 +0100 <glguy> it's not obvious to me what takeRemainingNulBytes does or what it needs st
2024-12-29 18:53:41 +0100 <c_wraith> but why does takeRemainingNulBytes even have a parameter?
2024-12-29 18:54:04 +0100 <glguy> attoparsec's "skip (0==)" is shorter than that name
2024-12-29 18:54:07 +0100euleritian(~euleritia@dynamic-176-003-015-198.176.3.pool.telefonica.de) (Ping timeout: 264 seconds)
2024-12-29 18:54:20 +0100 <glguy> is that what it does?
2024-12-29 18:55:20 +0100 <c_wraith> If that's just to illustrate a common pattern... you can eliminate it, but it's... bad.
2024-12-29 18:55:24 +0100 <ash3en> takeRemainingNulBytes discards remaining nul bytes that are just used to pad the string to a multiple of 32bit. so after i have parsed the string i want to discard the remaining nul bytes. however the next value i want to parse may be a zero so i can not just discard ALL nul bytes. just the ones used for padding
2024-12-29 18:56:57 +0100 <ash3en> so parse until nul bytes; discard all padded null bytes; keep parsing
2024-12-29 18:57:18 +0100 <c_wraith> Like, you could replace the last two lines with.... (<$) <*> takeRemainingNulBytes $ st
2024-12-29 18:57:32 +0100 <c_wraith> but... don't. For the sake of anyone looking at the code in the future.
2024-12-29 18:58:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-29 18:58:41 +0100 <ash3en> yeah, that seems not too readable : )
2024-12-29 18:58:59 +0100 <c_wraith> sadly, I can read it now. :)
2024-12-29 18:59:21 +0100 <kaol> There's https://hackage.haskell.org/package/IfElse-0.85/docs/Control-Monad-IfElse.html#v:returning but that's not any library I'd consider for my usual toolbox.
2024-12-29 19:00:35 +0100 <ash3en> haha nice kaol, but I'll pass on this lib probably
2024-12-29 19:01:32 +0100Square(~Square@user/square) Square
2024-12-29 19:01:57 +0100 <kaol> Now that you mention it this is a function I've been hoping for myself more than once.
2024-12-29 19:02:11 +0100notzmv(~umar@user/notzmv) (Ping timeout: 252 seconds)
2024-12-29 19:02:19 +0100 <c_wraith> :t ((<$) <*>) -- amusingly....
2024-12-29 19:02:23 +0100 <statusbot> Maintenance update: Hackage will be offline for a redeploy -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/67718e964449ab5853e77361
2024-12-29 19:02:27 +0100 <lambdabot> Functor f => (a -> f b) -> a -> f a
2024-12-29 19:02:43 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Remote host closed the connection)
2024-12-29 19:02:57 +0100 <c_wraith> look, I rediscovered it!
2024-12-29 19:03:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-29 19:03:44 +0100 <ash3en> c_wraith: i will keep that version as a comment :D
2024-12-29 19:03:53 +0100 <kaol> Peachy. I'll start it on my personal code, haters gonna hate.
2024-12-29 19:04:40 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) TheCoffeMaker
2024-12-29 19:04:58 +0100 <kaol> Every time you name a variable god kills a kitten.
2024-12-29 19:05:28 +0100euleritian(~euleritia@dynamic-176-003-015-198.176.3.pool.telefonica.de)
2024-12-29 19:05:34 +0100 <ash3en> kaol: :'(
2024-12-29 19:05:55 +0100 <kaol> I may not be completely serious.
2024-12-29 19:06:04 +0100 <ash3en> probably
2024-12-29 19:06:10 +0100 <c_wraith> In fact, that whole thing could be written as takeWhile1 (/= nulByte) >>= (<$) <*> takeRemainingNulBytes
2024-12-29 19:06:22 +0100 <c_wraith> maximize line noise.
2024-12-29 19:06:41 +0100 <c_wraith> use a secret S combinator.
2024-12-29 19:06:45 +0100 <glguy> unreadable code isn't going to write itself
2024-12-29 19:07:21 +0100 <ash3en> it is understandable until (<$)
2024-12-29 19:07:23 +0100 <kaol> I don't even find that too bad, but I've spent an unhealthy amount of time playing around with (->).
2024-12-29 19:08:09 +0100 <glguy> If you don't want to name your variables I recommend exploring Factor. https://www.google.com/search?client=safari&rls=en&q=factorlang&ie=UTF-8&oe=UTF-8