2025/03/30

2025-03-30 00:08:45 +0100rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-19-74-12-85-11.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-30 00:15:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-30 00:16:31 +0100connrs_(~connrs@conners.plus.com) (Remote host closed the connection)
2025-03-30 00:16:39 +0100connrs_(~connrs@conners.plus.com)
2025-03-30 00:17:05 +0100connrs(~connrs@user/connrs) (Quit: ZNC 1.9.1 - https://znc.in)
2025-03-30 00:17:05 +0100connrs_connrs
2025-03-30 00:17:11 +0100connrs(~connrs@conners.plus.com) (Remote host closed the connection)
2025-03-30 00:17:19 +0100connrs(~connrs@user/connrs) connrs
2025-03-30 00:26:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 00:28:33 +0100connrs(~connrs@user/connrs) (Remote host closed the connection)
2025-03-30 00:28:41 +0100connrs(~connrs@user/connrs) connrs
2025-03-30 00:31:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-30 00:35:12 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-03-30 00:35:33 +0100peterbecich1(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 00:37:54 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-03-30 00:37:54 +0100ljdarj1ljdarj
2025-03-30 00:38:47 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-03-30 00:39:06 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 00:42:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 00:42:24 +0100peterbecich1(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-03-30 00:50:40 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-03-30 00:54:45 +0100peterbecich1(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 00:56:39 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-03-30 00:57:42 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 00:57:46 +0100peterbecich1(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Client Quit)
2025-03-30 01:02:04 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-03-30 01:04:24 +0100otto_s(~user@p4ff27624.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2025-03-30 01:06:02 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 01:06:05 +0100otto_s(~user@p5de2f2eb.dip0.t-ipconnect.de)
2025-03-30 01:12:05 +0100 <haskellbridge> <thirdofmay18081814goya> does anyone know of an invertible coding function "Int -> Int" for a value of type "Tree Int"? i.e., translate a value "Tree Int" into a value "Int" and have a unique way to translate an "Int" back into a "Tree Int"
2025-03-30 01:12:26 +0100 <haskellbridge> <thirdofmay18081814goya> does anyone know of an invertible coding function "Tree Int -> Int"*
2025-03-30 01:13:09 +0100 <haskellbridge> <thirdofmay18081814goya> suppose specifically a rose tree with values "Int"
2025-03-30 01:13:38 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds)
2025-03-30 01:16:30 +0100 <haskellbridge> <dmjio> thirdofmay18081814goya did you tree "foldTree" and "unfoldTree"
2025-03-30 01:16:43 +0100 <haskellbridge> <dmjio> * try
2025-03-30 01:18:29 +0100 <haskellbridge> <Bowuigi> thirdofmay18081814goya I don't see how that could be total, since you have to fit many values of Int in a single one, any of which can be as large as INT_MAX
2025-03-30 01:18:37 +0100causal(~eric@50.35.84.231) causal
2025-03-30 01:18:37 +0100 <Leary> thirdofmay: Impossible; |Tree Int| > |Int|. If you wanted an invertible `Tree Integer -> Integer`, then you're essentially doing de/serialisation.
2025-03-30 01:20:45 +0100 <haskellbridge> <Bowuigi> If you ignore size concerns and want an invertible "Tree Integer -> Integer", you can get one by treating the output integer as a binary file
2025-03-30 01:20:56 +0100 <geekosaur> gödel coding /s
2025-03-30 01:21:36 +0100 <haskellbridge> <thirdofmay18081814goya> Leary: this is not the case, note that any element of "Tree Int" is constructible in a finite number of steps, so can be encoded by a function "Nat -> Tree Int", and therefore "Tree Int" has the same size as "Int" (since "| Int | = | Nat |")
2025-03-30 01:22:57 +0100 <haskellbridge> <Bowuigi> Wouldn't that mean that it's possible to encode its zipper instead of the actual tree?
2025-03-30 01:23:48 +0100tromp(~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-03-30 01:25:30 +0100 <haskellbridge> <thirdofmay18081814goya> Bowuigi: yeah, am just looking for any function that can uniquely specify a tree + an ordering on "Tree Int" that we can use this function with
2025-03-30 01:26:04 +0100 <haskellbridge> <Bowuigi> Also note that finite doesn't mean it's inside an Int's bounds
2025-03-30 01:29:34 +0100 <__monty__> Int is not Integer. And neither is the same as the mathematical concept.
2025-03-30 01:30:54 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 01:31:10 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-03-30 01:32:35 +0100 <Leary> thirdofmay: |Int| = 2^64
2025-03-30 01:33:33 +0100 <Leary> (or 2^32 if you live in the past)
2025-03-30 01:34:11 +0100 <haskellbridge> <thirdofmay18081814goya> Leary: oh you're fully right then
2025-03-30 01:34:53 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2025-03-30 01:35:05 +0100 <haskellbridge> <thirdofmay18081814goya> didn't realize "Int" was finite, I thought it was the type of Nat + (Nat - 1)
2025-03-30 01:35:32 +0100 <haskellbridge> <thirdofmay18081814goya> * { 0 })
2025-03-30 01:36:05 +0100 <haskellbridge> <thirdofmay18081814goya> a type isomorphic to "Nat + (Nat - { 0 })"*
2025-03-30 01:38:34 +0100 <haskellbridge> <thirdofmay18081814goya> then as a matter of fact, "Int !! (| Int | + 1)" will not be a value of type "Int", correct?
2025-03-30 01:38:59 +0100 <monochrom> Actually in Haskell we don't have a "Nat", we have Word (Data.Word) and Natural (Numeric.Natural).
2025-03-30 01:39:30 +0100 <monochrom> Unpopular opinion: It is more consistent to s/Word/Nat/ because Int : Nat :: Integer :: Natural
2025-03-30 01:39:31 +0100 <haskellbridge> <Bowuigi> It would overflow I think, in C it is UB but not sure about it in Haskell
2025-03-30 01:40:53 +0100 <Leary> > maxBound + (1 :: Int) == minBound
2025-03-30 01:40:54 +0100 <lambdabot> True
2025-03-30 01:41:01 +0100 <haskellbridge> <Bowuigi> Word kinda makes sense because of machine words, but UInt or Nat would make more sense
2025-03-30 01:41:05 +0100 <Leary> > (succ maxBound :: Int) == minBound
2025-03-30 01:41:07 +0100 <lambdabot> *Exception: Prelude.Enum.succ{Int}: tried to take `succ' of maxBound
2025-03-30 01:41:29 +0100 <monochrom> You can always try maxBound + 1
2025-03-30 01:41:42 +0100hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-30 01:43:00 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2025-03-30 01:43:47 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-03-30 01:43:47 +0100 <haskellbridge> <thirdofmay18081814goya> hm so there's an invertible serialization/deserialization function for "Tree Natural"? (or "Tree Word", assuming I understand correctly that "| Word | = | Natural |"?)
2025-03-30 01:44:11 +0100 <haskellbridge> <thirdofmay18081814goya> and "| Natural | = | Set of natural numbers |"
2025-03-30 01:44:15 +0100 <haskellbridge> <Bowuigi> No, Natural is Integer but unsigned
2025-03-30 01:44:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-03-30 01:44:26 +0100 <monochrom> In Haskell2010 it's simulataneously "UB" and "implementation-defined". The exact quote: "The results of exceptional conditions (such as overflow or underflow) on the fixed-precision numeric types are undefined; an implementation may choose error (⊥, semantically), a truncated value, or a special value such as infinity, indefinite, etc."
2025-03-30 01:45:56 +0100 <haskellbridge> <Bowuigi> Also is Natural the same size as the set of natural numbers? It has bottoms too
2025-03-30 01:46:53 +0100 <haskellbridge> <thirdofmay18081814goya> no it seems, assuming "Natural" has the size of the set of unsigned integers, it is a finite set too
2025-03-30 01:47:06 +0100 <haskellbridge> <Bowuigi> Not only implementation-wise, but also because every computation of type Natural is a Natural, including "1 + undefined"
2025-03-30 01:47:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-30 01:48:23 +0100 <haskellbridge> <thirdofmay18081814goya> so is there no type that has the size of the set of natural numbers in haskell?
2025-03-30 01:48:30 +0100 <monochrom> > 10^100 :: Natural
2025-03-30 01:48:31 +0100 <lambdabot> 1000000000000000000000000000000000000000000000000000000000000000000000000000...
2025-03-30 01:48:33 +0100 <Leary> thirdofmay: |Word| = |Int|; |Natural| = |Integer| = omega
2025-03-30 01:48:49 +0100 <haskellbridge> <thirdofmay18081814goya> ah that clears it up, ty
2025-03-30 01:50:32 +0100 <haskellbridge> <thirdofmay18081814goya> so rephrasing: there is an invertible serialization function for "Tree Natural", correct?
2025-03-30 01:51:12 +0100 <haskellbridge> <thirdofmay18081814goya> what would be the API to access it?
2025-03-30 01:55:26 +0100 <geekosaur> that's a somewhat weird way to put it. I would say that you can define such a function, not that one exists with a particular API
2025-03-30 01:55:38 +0100 <geekosaur> how you define it would depend on what you intend to do with it
2025-03-30 01:56:20 +0100 <geekosaur> (My comment about Gödel coding was only half a joke; it would certainly work but would be overkill and probably extremely inefficient for your purpose)
2025-03-30 01:58:14 +0100 <haskellbridge> <thirdofmay18081814goya> wrt Godel coding, beginning to read http://foibg.com/ijita/vol17/ijita17-1-p02.pdf
2025-03-30 01:58:23 +0100 <haskellbridge> <thirdofmay18081814goya> not terribly preoccupied with efficiency atm
2025-03-30 01:59:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 03:00:49 +0200causal(~eric@50.35.84.231) (Quit: WeeChat 4.5.1)
2025-03-30 03:01:37 +0200sprotte24_(~sprotte24@p200300d16f1c4e0098c546d077431e36.dip0.t-ipconnect.de) (Quit: Leaving)
2025-03-30 03:03:53 +0200 <monochrom> Unpopular opinion: But Gödel numbers is terribly preoccupied with gross inefficiency.
2025-03-30 03:04:49 +0200 <geekosaur> ^
2025-03-30 03:05:43 +0200 <haskellbridge> <thirdofmay18081814goya> monochrom: what's an alternative?
2025-03-30 03:05:52 +0200 <haskellbridge> <thirdofmay18081814goya> any alternative
2025-03-30 03:06:13 +0200 <monochrom> You should look at the binary package and what it does to "instance Binary (Tree e)"
2025-03-30 03:06:20 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2025-03-30 03:06:42 +0200 <haskellbridge> <thirdofmay18081814goya> "Data.Binary" that is?
2025-03-30 03:07:23 +0200 <monochrom> Sure, if module names are still unambiguous like 20 years ago.
2025-03-30 03:07:53 +0200 <haskellbridge> <thirdofmay18081814goya> will do, thanks a lot for the reference. am literally looking for anything that works lol
2025-03-30 03:11:28 +0200 <geekosaur> heh. let's put it this way: countably infinite Gödel numbers are considered a feature for their use case
2025-03-30 03:11:51 +0200 <geekosaur> (only a slight overstatement)
2025-03-30 03:12:16 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 03:12:28 +0200 <geekosaur> well, arguably so are uncountably infinite ones, at least as results 🙂
2025-03-30 03:13:11 +0200hattckory(~hattckory@70.27.118.207)
2025-03-30 03:18:01 +0200ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-03-30 03:21:35 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
2025-03-30 03:25:46 +0200 <haskellbridge> <jv> 'd
2025-03-30 03:26:51 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2025-03-30 03:32:58 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-03-30 03:38:24 +0200toby-bro(~toby-bro@user/toby-bro) (Ping timeout: 272 seconds)
2025-03-30 03:46:27 +0200roconnor(~quassel@rocq/roconnor) (Ping timeout: 246 seconds)
2025-03-30 03:47:08 +0200roconnor(~quassel@rocq/roconnor) roconnor
2025-03-30 03:48:18 +0200 <EvanR> thirdofmay18081814goya, data Nat = Z | S !Nat
2025-03-30 03:49:01 +0200 <EvanR> ignoring bottoms
2025-03-30 03:49:03 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-03-30 03:49:10 +0200 <haskellbridge> <thirdofmay18081814goya> right
2025-03-30 03:50:48 +0200 <EvanR> data Int = Nat :- Nat
2025-03-30 03:51:50 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2025-03-30 03:51:53 +0200tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2025-03-30 03:52:58 +0200acidjnk(~acidjnk@p200300d6e71c4f5684d81f92e812b9d0.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2025-03-30 03:56:36 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
2025-03-30 03:59:51 +0200ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-03-30 04:00:40 +0200 <EvanR> data Rat = Over { numer :: Int, denomMinusOne :: Nat }
2025-03-30 04:01:46 +0200 <geekosaur> I was going to say you got that backwards, but in hindsight I guess it depends on how you interpret that name
2025-03-30 04:02:18 +0200 <EvanR> data Real = Rat Rat | Lim (Rat -> Real)
2025-03-30 04:05:04 +0200op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2025-03-30 04:05:15 +0200roconnor(~quassel@rocq/roconnor) (Ping timeout: 252 seconds)
2025-03-30 04:05:35 +0200op_4(~tslil@user/op-4/x-9116473) op_4
2025-03-30 04:05:47 +0200roconnor(~quassel@rocq/roconnor) roconnor
2025-03-30 04:07:23 +0200 <EvanR> data Surreal = Cut (Tree Surreal) (Tree Surreal)
2025-03-30 04:11:44 +0200 <JuanDaugherty> issat knuth's?
2025-03-30 04:12:51 +0200 <JuanDaugherty> https://en.wikipedia.org/wiki/Surreal_number confirmed
2025-03-30 04:13:11 +0200 <JuanDaugherty> (and credit where credit due to Conway)
2025-03-30 04:13:30 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-03-30 04:15:08 +0200 <EvanR> I will gratefully deposit 0x$1.00 ($2.56) to the account of the first person who finds and reports anything that remains technically, historically, typographically, or politically incorrect. -- knuth
2025-03-30 04:15:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-30 04:27:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 04:28:43 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 245 seconds)
2025-03-30 04:33:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-30 04:33:55 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-30 04:35:13 +0200euphores(~SASL_euph@user/euphores) euphores
2025-03-30 04:37:48 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-03-30 04:43:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 04:50:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-30 04:56:22 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-30 04:56:57 +0200 <EvanR> thirdofmay18081814goya, "any element of Tree Int can be constructed in a finite number of steps" ...
2025-03-30 04:57:16 +0200 <EvanR> what's a step
2025-03-30 04:58:15 +0200 <monochrom> A step is a finite number of substeps. >:)
2025-03-30 04:59:23 +0200 <EvanR> did I construct let xs = 1 : xs in xs in a finite number of steps, or is it even successfully constructed
2025-03-30 05:01:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 05:02:45 +0200haritz(~hrtz@user/haritz) (Remote host closed the connection)
2025-03-30 05:02:55 +0200haritz(~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737)
2025-03-30 05:02:57 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-03-30 05:03:06 +0200 <haskellbridge> <thirdofmay18081814goya> EvanR: a step is a natural number that designates a pair, given by a natural number and its successor, such that when fed into a function "Nat -> Tree Int", produce a tree that is at most different by a single application of the datatype constructor
2025-03-30 05:03:35 +0200 <haskellbridge> <thirdofmay18081814goya> (tentative definition)
2025-03-30 05:03:49 +0200 <EvanR> what
2025-03-30 05:04:26 +0200 <haskellbridge> <thirdofmay18081814goya> replace "at most one application of the datatype constructor" by "exactly one application"
2025-03-30 05:04:28 +0200 <EvanR> are you only allowing finite trees
2025-03-30 05:04:44 +0200 <haskellbridge> <thirdofmay18081814goya> yeah in this case, only inductively defined trees
2025-03-30 05:04:46 +0200haritz(~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737) (Changing host)
2025-03-30 05:04:46 +0200haritz(~hrtz@user/haritz) haritz
2025-03-30 05:05:14 +0200 <EvanR> alright so a step is a constructor
2025-03-30 05:05:38 +0200 <EvanR> and there's only finitely many of them
2025-03-30 05:05:50 +0200 <EvanR> based
2025-03-30 05:06:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-30 05:08:00 +0200 <haskellbridge> <thirdofmay18081814goya> EvanR: well, I think we need the whole thing: 1. a natural number 2. designating a natural number and its succesor 3. such that fed to a function that indexes constructor applications, 4. produce a tree different by exactly a single application of the "Branch" constructor (if our tree datatype is defined by a "Node" and "Branch" constructor)
2025-03-30 05:09:35 +0200 <EvanR> isn't the result of Branch t1 t2 always "a tree different by exactly a single application of the Branch constructor"
2025-03-30 05:10:10 +0200 <EvanR> from the pair of trees
2025-03-30 05:12:24 +0200 <haskellbridge> <thirdofmay18081814goya> hm true, but supposing the function indexing applications is "ITA" (abbreviating "IndexedTreeApplication"), we want a step to designate the difference between "Branch (ITA n) (ITA m)" and "ITA n", where "m" is strictly smaller than "n"
2025-03-30 05:13:12 +0200 <haskellbridge> <thirdofmay18081814goya> or analogously the difference between "Branch (ITA m) (ITA n)"
2025-03-30 05:13:19 +0200 <haskellbridge> <thirdofmay18081814goya> and "ITA n"
2025-03-30 05:13:41 +0200 <EvanR> I have no idea what the objective was, I just cherry picked this one idea of getting any "Tree Int" in a finite number of steps, which didn't make sense to me in general, but now it does since finite
2025-03-30 05:14:05 +0200 <haskellbridge> <thirdofmay18081814goya> heheh right
2025-03-30 05:17:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 05:18:21 +0200 <EvanR> true or false: any geometric diagram can be constructed in a finite number of steps
2025-03-30 05:19:44 +0200 <haskellbridge> <thirdofmay18081814goya> can we specify the geometric diagram as "[(Integer, Integer)]"?
2025-03-30 05:20:07 +0200 <haskellbridge> <thirdofmay18081814goya> in that case I would think so
2025-03-30 05:20:08 +0200 <EvanR> a linked list of coordinates? no
2025-03-30 05:20:20 +0200 <haskellbridge> <thirdofmay18081814goya> why not
2025-03-30 05:20:31 +0200 <EvanR> you could even draw a line that way
2025-03-30 05:20:33 +0200 <EvanR> couldn't
2025-03-30 05:20:56 +0200 <haskellbridge> <thirdofmay18081814goya> well yeah: the ordering of the linked list specifies which lines exist
2025-03-30 05:21:18 +0200 <EvanR> ok you can't draw a circle
2025-03-30 05:21:20 +0200 <haskellbridge> <thirdofmay18081814goya> so if the list is "[(0,0), (1,1), (2,2)]", we have two lines
2025-03-30 05:21:47 +0200 <haskellbridge> <thirdofmay18081814goya> EvanR: you can't draw a circle, but you can approximate a circle with abritrary precision (including to an extent indistinguishable to the human eye)
2025-03-30 05:22:18 +0200Eoco(~ian@128.101.131.218) (Quit: WeeChat 4.4.2)
2025-03-30 05:22:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-03-30 05:22:53 +0200 <geekosaur> are (visualizations of) Mandelbröt sets geometric diagrams?
2025-03-30 05:22:57 +0200 <haskellbridge> <thirdofmay18081814goya> with this idea, you can specify a circle as a function "approximate :: Nat -> CircleApproximation", where "approximate n" approximates the circle more closely than "approximate (n + 1)"
2025-03-30 05:22:57 +0200 <geekosaur> 😈
2025-03-30 05:22:58 +0200 <EvanR> this is gratuitously low quality xD
2025-03-30 05:23:28 +0200 <haskellbridge> <thirdofmay18081814goya> uh, the contrary, "approximate (n + 1)" has lower error than "approximate n"
2025-03-30 05:23:31 +0200 <EvanR> Mandelbrot "set" is actually a Locus so yes
2025-03-30 05:23:51 +0200 <haskellbridge> <thirdofmay18081814goya> then "circle = approximate" :D
2025-03-30 05:24:05 +0200 <EvanR> a theory of approximations wasn't called for
2025-03-30 05:24:35 +0200 <EvanR> actual circles have been accepted as "geometric" since forever
2025-03-30 05:25:22 +0200Eoco(~ian@128.101.131.218) Eoco
2025-03-30 05:26:47 +0200 <haskellbridge> <thirdofmay18081814goya> i secretely will use "approximate (100!^100!)" and will tell you it's a circle and you won't be able to tell it's secretly a polygon, so you'll agree with me 😈
2025-03-30 05:26:48 +0200 <EvanR> that's a good one, the mandlebrot set seems to need an infinite number of steps, to keep adding lobes
2025-03-30 05:27:14 +0200 <EvanR> (and then it would probably miss a lot in the end)
2025-03-30 05:28:24 +0200 <haskellbridge> <thirdofmay18081814goya> actually, there is an "n :: Natural" such that "approximate" cannot designate a circle that is physically closer to any other approximation (due to the size of atoms, or alternatively your screen resolution)
2025-03-30 05:28:31 +0200 <haskellbridge> <Bowuigi> Fractals in general do that AFAIK
2025-03-30 05:28:41 +0200 <EvanR> ultrafinitist confirmed
2025-03-30 05:29:28 +0200 <EvanR> straight line segments are really bad at approximating curves btw, at least use parabolic segments
2025-03-30 05:31:04 +0200 <haskellbridge> <thirdofmay18081814goya> right, well the point where mathematical and cs-theoretical perfection coincides is to consider "approximate" itself as the circle, instead of "approximate n" for a given n
2025-03-30 05:31:14 +0200Eoco(~ian@128.101.131.218) (Quit: WeeChat 4.4.2)
2025-03-30 05:31:18 +0200 <haskellbridge> <thirdofmay18081814goya> then you can do stuff by function composition
2025-03-30 05:31:42 +0200Eoco(~ian@128.101.131.218) Eoco
2025-03-30 05:31:52 +0200 <EvanR> it would be better if you do the approximation at the end of the program than at the beginning
2025-03-30 05:32:08 +0200 <haskellbridge> <thirdofmay18081814goya> yeah
2025-03-30 05:32:51 +0200 <EvanR> (if necessary)
2025-03-30 05:33:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 05:36:00 +0200infinity0(~infinity0@pwned.gg) (Ping timeout: 246 seconds)
2025-03-30 05:37:18 +0200 <EvanR> instead of "human eye" test I wonder if you could instead specify the limit of precision by saying lines and shapes have a minimum "pen size" so if you keep trying to draw the mandlebrot set you'll just start getting the same blob over again
2025-03-30 05:37:29 +0200 <EvanR> at which point you stop
2025-03-30 05:37:34 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Read error: Connection reset by peer)
2025-03-30 05:38:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-30 05:39:06 +0200infinity0(~infinity0@pwned.gg) infinity0
2025-03-30 05:41:32 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
2025-03-30 05:47:13 +0200 <haskellbridge> <thirdofmay18081814goya> speaking of which
2025-03-30 05:47:22 +0200 <haskellbridge> <thirdofmay18081814goya> is there a standard wrt rendering 2D in haskell?
2025-03-30 05:47:48 +0200 <haskellbridge> <thirdofmay18081814goya> or, how do people usually do 2D rendering in haskell
2025-03-30 05:49:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 05:50:57 +0200 <geekosaur> gloss and relativrd
2025-03-30 05:51:02 +0200 <geekosaur> *relatives
2025-03-30 05:52:40 +0200 <EvanR> there's the diagrams library
2025-03-30 05:53:02 +0200 <EvanR> there are bindings to SDL, glfw
2025-03-30 05:53:09 +0200 <EvanR> ... and gtk ...
2025-03-30 05:54:07 +0200 <EvanR> three penny gui was an early web-based thing
2025-03-30 05:54:28 +0200 <EvanR> now there's ghcjs so you can use whatever is in the browser
2025-03-30 05:54:43 +0200 <haskellbridge> <thirdofmay18081814goya> neat thanks for all the references!
2025-03-30 05:55:08 +0200 <haskellbridge> <dmjio> thirdofmay18081814goya check out diagrams
2025-03-30 05:55:41 +0200 <haskellbridge> <thirdofmay18081814goya> will do ty!
2025-03-30 05:55:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-30 05:56:24 +0200 <EvanR> diagrams is great
2025-03-30 06:01:33 +0200remexre(~remexre@user/remexre) (Ping timeout: 268 seconds)
2025-03-30 06:01:38 +0200nek0(~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
2025-03-30 06:02:48 +0200Eoco(~ian@128.101.131.218) (Ping timeout: 272 seconds)
2025-03-30 06:03:28 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
2025-03-30 06:04:30 +0200Eoco(~ian@128.101.131.218) Eoco
2025-03-30 06:07:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 06:07:30 +0200 <haskellbridge> <dmjio> Anything Brent Yorgey is great, especially the typeclassopdia
2025-03-30 06:08:21 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden
2025-03-30 06:12:03 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-03-30 06:12:04 +0200remexre(~remexre@user/remexre) remexre
2025-03-30 06:21:33 +0200talisman`(~user@2601:644:937c:ed10::ae5)
2025-03-30 06:21:57 +0200talismanick(~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
2025-03-30 06:21:57 +0200talisman`(~user@2601:644:937c:ed10::ae5) (Read error: Connection reset by peer)
2025-03-30 06:23:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 06:25:28 +0200tromp(~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8)
2025-03-30 06:26:02 +0200tromp(~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8) (Client Quit)
2025-03-30 06:28:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-03-30 06:33:48 +0200mulk(~mulk@p5b112905.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2025-03-30 06:35:44 +0200mulk(~mulk@pd95149c0.dip0.t-ipconnect.de) mulk
2025-03-30 06:38:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 06:42:13 +0200jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.0)
2025-03-30 06:43:40 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-30 06:50:34 +0200aman(~aman@user/aman) aman
2025-03-30 06:54:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 06:59:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-03-30 07:10:26 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 07:11:25 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-30 07:13:57 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
2025-03-30 07:16:33 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-03-30 07:19:46 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 07:19:55 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-03-30 07:25:04 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-03-30 07:33:15 +0200takuan(~takuan@d8D86B601.access.telenet.be)
2025-03-30 07:34:45 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2025-03-30 07:35:28 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection)
2025-03-30 07:35:52 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-03-30 07:35:53 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-03-30 07:38:12 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 07:53:12 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
2025-03-30 07:54:04 +0200tavare(~tavare@user/tavare) tavare
2025-03-30 08:14:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-30 08:16:07 +0200berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2025-03-30 08:16:35 +0200berberman(~berberman@user/berberman) berberman
2025-03-30 08:17:46 +0200 <haskellbridge> <thirdofmay18081814goya> what's a case where "Either" wasn't enough for your error handling needs?
2025-03-30 08:23:57 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 08:24:53 +0200berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2025-03-30 08:25:16 +0200berberman(~berberman@user/berberman) berberman
2025-03-30 08:26:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 08:31:24 +0200comonad(~comonad@p200300d027488b00f8b6e4e070ffbc0b.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2025-03-30 08:31:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-03-30 08:32:37 +0200comonad(~comonad@p200300d027481500ef699452775b3984.dip0.t-ipconnect.de)
2025-03-30 08:38:33 +0200zmt01(~zmt00@user/zmt00) (Remote host closed the connection)
2025-03-30 08:38:57 +0200zmt01(~zmt00@user/zmt00) zmt00
2025-03-30 08:42:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 08:42:54 +0200vgtw_(~vgtw@user/vgtw) vgtw
2025-03-30 08:43:07 +0200vgtw(~vgtw@user/vgtw) (Ping timeout: 268 seconds)
2025-03-30 08:46:12 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2025-03-30 08:47:54 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-30 09:00:02 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-03-30 09:00:02 +0200tt12310978324354(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Quit: The Lounge - https://thelounge.chat)
2025-03-30 09:00:56 +0200caconym(~caconym@user/caconym) caconym
2025-03-30 09:04:20 +0200tt12310978324354(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) tt1231
2025-03-30 09:05:11 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Read error: Connection reset by peer)
2025-03-30 09:05:43 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-03-30 09:06:52 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Read error: Connection reset by peer)
2025-03-30 09:07:09 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-03-30 09:08:05 +0200tromp(~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8)
2025-03-30 09:08:19 +0200hattckory(~hattckory@70.27.118.207) (Ping timeout: 260 seconds)
2025-03-30 09:14:47 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) oneeyedalien
2025-03-30 09:15:49 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-03-30 09:16:17 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-03-30 09:17:02 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2025-03-30 09:17:15 +0200Lord_of_Life_Lord_of_Life
2025-03-30 09:17:45 +0200oneeyedalien(~oneeyedal@user/oneeyedalien) (Remote host closed the connection)
2025-03-30 09:18:39 +0200cawfee(root@2001:19f0:4400:79a1::babe) (Quit: WeeChat 4.5.1)
2025-03-30 09:19:03 +0200cawfee(root@2001:19f0:4400:79a1::babe) qjqqyy
2025-03-30 09:43:27 +0200werneta(~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 246 seconds)
2025-03-30 09:48:12 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-03-30 09:48:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-30 09:48:53 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 244 seconds)
2025-03-30 09:51:25 +0200Digitteknohippie(~user@user/digit) Digit
2025-03-30 09:53:59 +0200Digit(~user@user/digit) (Ping timeout: 260 seconds)
2025-03-30 09:54:59 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 09:56:33 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-03-30 09:58:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 09:59:48 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-30 10:03:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-30 10:11:36 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 10:14:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 10:15:46 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds)
2025-03-30 10:20:24 +0200tavare(~tavare@user/tavare) (Remote host closed the connection)
2025-03-30 10:26:13 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 10:31:11 +0200vgtw_(~vgtw@user/vgtw) (Quit: ZNC - https://znc.in)
2025-03-30 10:33:07 +0200vgtw(~vgtw@user/vgtw) vgtw
2025-03-30 10:34:40 +0200tromp(~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-03-30 10:35:24 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2025-03-30 10:36:51 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-30 10:37:08 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-03-30 10:39:09 +0200DigitteknohippieDigit
2025-03-30 10:50:48 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-03-30 10:51:18 +0200XZDX(~xzdx@user/XZDX) XZDX
2025-03-30 11:08:27 +0200acidjnk(~acidjnk@p200300d6e71c4f61790abc3a16c69e44.dip0.t-ipconnect.de) acidjnk
2025-03-30 11:18:53 +0200XZDXXZDX_
2025-03-30 11:25:46 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-03-30 11:33:11 +0200tromp(~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8)
2025-03-30 11:39:06 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 11:43:45 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds)
2025-03-30 11:48:21 +0200 <Rembane> There's an opposite to Either that's very useful for validating e.g. forms. When there can be loads of errors in different places and execution should never stop. Just seeing the definition makes me surprisingly happy: https://hackage.haskell.org/package/validation-1.1.3/docs/Data-Validation.html#t:Validation
2025-03-30 11:48:29 +0200 <Rembane> ...for some values of opposite. :D
2025-03-30 11:48:32 +0200__monty__(~toonn@user/toonn) toonn
2025-03-30 11:48:44 +0200vgtw(~vgtw@user/vgtw) (Ping timeout: 252 seconds)
2025-03-30 11:54:18 +0200vgtw(~vgtw@user/vgtw) vgtw
2025-03-30 11:56:51 +0200ash3en(~Thunderbi@89.56.182.235) ash3en
2025-03-30 11:58:23 +0200hattckory(~hattckory@70.27.118.207)
2025-03-30 11:59:24 +0200vgtw(~vgtw@user/vgtw) (Ping timeout: 260 seconds)
2025-03-30 11:59:42 +0200vgtw(~vgtw@user/vgtw) vgtw
2025-03-30 12:11:29 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-03-30 12:14:23 +0200polyphem(~rod@p4fc2c911.dip0.t-ipconnect.de) polyphem
2025-03-30 12:15:49 +0200NewtonTrendy(~ubuntu@user/bopqod) (Quit: WeeChat 3.5)
2025-03-30 12:24:36 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-03-30 12:36:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 12:41:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-03-30 12:44:53 +0200 <[exa]> Rembane: so many opposites. Why don't we have a Up Down type?
2025-03-30 12:45:44 +0200 <Rembane> [exa]: I think we have some of those. They're usually Monoid/Semigroup newtypes.
2025-03-30 12:46:43 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2025-03-30 12:47:11 +0200 <Rembane> [exa]: Bah, they don't actually exist. The closest I can get to them is Dual. What would Up and Down do?
2025-03-30 12:47:40 +0200 <[exa]> absolutely not sure, just wanted to point out that the "opposite" is a very free definition :D
2025-03-30 12:48:15 +0200sprotte24(~sprotte24@p200300d16f1e0e006577a4ba097b8b9e.dip0.t-ipconnect.de)
2025-03-30 12:48:35 +0200 <Rembane> [exa]: Yeah, it's usually better for inspiration than a clear definition. :D
2025-03-30 12:48:47 +0200 <[exa]> what's annoying on validation and either that neither of these provides the "just shortcircuit with errory error" behavior unless you write the MonadFail yourself
2025-03-30 12:49:09 +0200 <Rembane> I thought Either did that, what does it do instead?
2025-03-30 12:51:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 12:53:42 +0200 <int-e> Either doesn't have a MonadFail instance
2025-03-30 12:54:10 +0200 <Rembane> Got it.
2025-03-30 12:54:30 +0200 <int-e> ExceptT e Foo a uses the MonadFail instance of Foo. ErrorT e Foo a was removed because it was deprecated in favor of ExceptT despite having a different MonadFail instance.
2025-03-30 12:56:39 +0200 <Rembane> That sounds potentially controversial. I never used ErrorT because of the deprecated message on top of the documentation of the module.
2025-03-30 12:56:47 +0200 <Rembane> Was it a good MonadFail instance?
2025-03-30 12:56:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-30 12:58:05 +0200 <int-e> Rembane: Well I used it before it was deprecated because it offered the behavior that Either had before the MonadFail proposal.
2025-03-30 12:59:03 +0200sprotte24(~sprotte24@p200300d16f1e0e006577a4ba097b8b9e.dip0.t-ipconnect.de) (Quit: Leaving)
2025-03-30 12:59:19 +0200 <Rembane> int-e: Ah, this has some history.
2025-03-30 12:59:26 +0200 <int-e> yes
2025-03-30 12:59:54 +0200hattckory(~hattckory@70.27.118.207) (Ping timeout: 260 seconds)
2025-03-30 13:00:31 +0200 <haskellbridge> <thirdofmay18081814goya> @Rembane neat! didn't know about it, ty
2025-03-30 13:00:33 +0200 <int-e> `fail` used to be in `Monad` and the Monad instance for Either used to be instance Error e => Monad (Either e) where `Error` had a function to convert String into an e, which was used to implement `fail`.
2025-03-30 13:01:16 +0200 <int-e> And Control.Monad.Error mimicked that after the MonadFail class was introduced.
2025-03-30 13:01:24 +0200 <Rembane> thirdofmay18081814goya: No worries! :)
2025-03-30 13:07:47 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 13:10:13 +0200connrs(~connrs@user/connrs) (Remote host closed the connection)
2025-03-30 13:10:21 +0200connrs(~connrs@user/connrs) connrs
2025-03-30 13:10:51 +0200connrs(~connrs@user/connrs) (Remote host closed the connection)
2025-03-30 13:11:07 +0200connrs(~connrs@user/connrs) connrs
2025-03-30 13:12:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-03-30 13:18:43 +0200 <haskellbridge> <thirdofmay18081814goya> hm what's the optic that will remove the elements of a list located at an even index? some combination using the enumeration "Iso' [a] [(Int, a)]" and something involving "traversed . filtered even", right?
2025-03-30 13:20:10 +0200connrs(~connrs@user/connrs) (Remote host closed the connection)
2025-03-30 13:20:18 +0200connrs(~connrs@user/connrs) connrs
2025-03-30 13:23:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-30 13:25:33 +0200acidjnk(~acidjnk@p200300d6e71c4f61790abc3a16c69e44.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2025-03-30 13:30:33 +0200astraamish
2025-03-30 13:30:42 +0200amish(sid289983@id-289983.hampstead.irccloud.com) (Changing host)
2025-03-30 13:30:42 +0200amish(sid289983@user/amish) amish
2025-03-30 13:32:03 +0200amishastra
2025-03-30 13:33:58 +0200Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-03-30 13:36:10 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
2025-03-30 13:39:01 +0200zmt00(~zmt00@user/zmt00) zmt00
2025-03-30 13:40:34 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 244 seconds)
2025-03-30 13:40:39 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-03-30 13:40:50 +0200fp(~Thunderbi@hof1.kyla.fi) fp
2025-03-30 13:40:58 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 13:45:21 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds)
2025-03-30 13:56:13 +0200fp(~Thunderbi@hof1.kyla.fi) (Read error: Connection reset by peer)
2025-03-30 13:56:25 +0200fp1(~Thunderbi@hof1.kyla.fi) fp
2025-03-30 13:57:09 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 13:57:53 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 245 seconds)
2025-03-30 13:58:57 +0200zmt00(~zmt00@user/zmt00) zmt00
2025-03-30 14:00:44 +0200fp1(~Thunderbi@hof1.kyla.fi) (Ping timeout: 252 seconds)
2025-03-30 14:03:33 +0200fp(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) fp
2025-03-30 14:05:30 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-03-30 14:08:13 +0200fp(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) (Read error: Connection reset by peer)
2025-03-30 14:08:19 +0200fp1(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) fp
2025-03-30 14:08:41 +0200fp1(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) (Client Quit)
2025-03-30 14:08:53 +0200fp(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) fp
2025-03-30 14:12:01 +0200fp(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) (Client Quit)
2025-03-30 14:12:20 +0200fp(~Thunderbi@2001:708:150:10::1d80) fp
2025-03-30 14:12:44 +0200acidjnk(~acidjnk@p200300d6e71c4f61b516a7e5c12445e3.dip0.t-ipconnect.de) acidjnk
2025-03-30 14:14:55 +0200fp(~Thunderbi@2001:708:150:10::1d80) (Read error: Connection reset by peer)
2025-03-30 14:15:04 +0200fp1(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) fp
2025-03-30 14:17:21 +0200fp1fp
2025-03-30 14:22:10 +0200Guest73(~Guest73@2409:40e0:105c:b9b8:25fd:c4d2:eee0:bc69)
2025-03-30 14:22:13 +0200fp1(~Thunderbi@2001:708:20:1406::1370) fp
2025-03-30 14:23:45 +0200fp(~Thunderbi@wireless-86-50-141-186.open.aalto.fi) (Ping timeout: 244 seconds)
2025-03-30 14:23:45 +0200fp1fp
2025-03-30 14:27:33 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-03-30 14:27:48 +0200sprotte24(~sprotte24@p200300d16f1e0e006577a4ba097b8b9e.dip0.t-ipconnect.de)
2025-03-30 14:41:53 +0200hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-03-30 14:42:54 +0200random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 252 seconds)
2025-03-30 14:44:03 +0200arahael(~arahael@user/arahael) arahael