2025/03/27

2025-03-27 00:00:05 +0100 <jle`> ah then i should probably file a report, i've run into two different ado related bugs recently i think
2025-03-27 00:00:33 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2025-03-27 00:00:41 +0100 <jle`> one using NamedFieldPuns/RecordWildCards and one with existential types/type abstractions
2025-03-27 00:00:56 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-03-27 00:01:14 +0100malte(~malte@mal.tc) malte
2025-03-27 00:03:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 00:03:34 +0100 <jle`> i have been getting around it by manually >>=-ing at the points that cause issues
2025-03-27 00:03:53 +0100 <jle`> at the cost of a layer of indentation :')
2025-03-27 00:05:59 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-03-27 00:09:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-27 00:15:20 +0100dolio(~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
2025-03-27 00:20:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 00:20:56 +0100aetepe(~aetepe@188.119.22.83) (Ping timeout: 252 seconds)
2025-03-27 00:21:13 +0100aetepe(~aetepe@46.154.235.16) aetepe
2025-03-27 00:26:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-03-27 00:26:44 +0100dolio(~dolio@130.44.140.168) dolio
2025-03-27 00:27:30 +0100aetepe(~aetepe@46.154.235.16) (Read error: Connection reset by peer)
2025-03-27 00:30:26 +0100dolio(~dolio@130.44.140.168) (Client Quit)
2025-03-27 00:32:04 +0100dolio(~dolio@130.44.140.168) dolio
2025-03-27 00:35:13 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds)
2025-03-27 00:36:12 +0100Googulator(~Googulato@85-238-67-46.pool.digikabel.hu) (Quit: Client closed)
2025-03-27 00:36:27 +0100Googulator(~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu)
2025-03-27 00:36:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 00:39:34 +0100Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no) (Ping timeout: 260 seconds)
2025-03-27 00:39:35 +0100 <yin> did i dream that we could turn off if ... then ... else syntax?
2025-03-27 00:40:35 +0100 <yin> or was it an april's fool joke?
2025-03-27 00:40:48 +0100 <geekosaur> you dreamed it, I think. maybe you were thinking of RebindableSyntax translating it into a user-supplied ifThenElse function?
2025-03-27 00:41:02 +0100Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no) Miroboru
2025-03-27 00:41:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-27 00:43:30 +0100Googulator(~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) (Quit: Client closed)
2025-03-27 00:43:43 +0100Googulator(~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu)
2025-03-27 00:45:08 +0100malte(~malte@mal.tc) (Ping timeout: 252 seconds)
2025-03-27 00:45:49 +0100aetepe(~aetepe@46.154.235.16) aetepe
2025-03-27 00:48:45 +0100 <haskellbridge> <Bowuigi> I get why one would want to rebind it, but why removing it? yin
2025-03-27 00:52:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 00:57:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-03-27 00:58:52 +0100 <yin> just purism
2025-03-27 01:00:02 +0100 <yin> syntactic sugar allergy
2025-03-27 01:00:20 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2025-03-27 01:04:21 +0100 <geekosaur> you're going to have to delete most of Haskell if you don't like syntactic sugar. even standard Haskell is full of it
2025-03-27 01:04:39 +0100 <yin> True
2025-03-27 01:05:28 +0100 <jackdk> yin: you mean `\a b -> a`
2025-03-27 01:05:57 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-03-27 01:06:41 +0100 <yin> jackdk: const?
2025-03-27 01:07:14 +0100 <yin> or "anonymous lambdas" in general?
2025-03-27 01:07:18 +0100 <jackdk> Desugaring `True` into a Church-encoded boolean, and making the tongue-in-cheek claim that even algebraic data types are syntactic sugar
2025-03-27 01:07:27 +0100 <yin> ah i see
2025-03-27 01:08:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 01:09:09 +0100 <jackdk> At which point you can get rid of `if..then..else` expressions by directly applying the "then" and the "else" directly to your Church boolean and letting it pick which one to return
2025-03-27 01:09:29 +0100aetepe(~aetepe@46.154.235.16) (Read error: Connection reset by peer)
2025-03-27 01:09:35 +0100 <yin> jackdk: if you go down that route you'll have interesting discussions with the type system when you get into things like the Y combinator
2025-03-27 01:10:16 +0100 <geekosaur> you're going to have interesting discussions with it about the Y combinator anyway 🙂
2025-03-27 01:10:20 +0100aetepe(~aetepe@46.154.235.16) aetepe
2025-03-27 01:11:30 +0100 <yin> jackdk: if = id -- ;)
2025-03-27 01:11:52 +0100 <yin> geekosaur: not False
2025-03-27 01:12:03 +0100jackdkadds `if` to the pile of things that are secretly `id`
2025-03-27 01:13:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-27 01:15:13 +0100sprotte24(~sprotte24@p200300d16f097d007520d57df2b917ec.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-03-27 01:16:06 +0100 <yin> newtype Mu a = Mu (Mu a -> a)
2025-03-27 01:16:26 +0100 <yin> is this right?
2025-03-27 01:17:12 +0100 <yin> y f = (\x -> f (x (Mu x))) (\(Mu x) -> f (x (Mu x)))
2025-03-27 01:17:57 +0100 <yin> > let y f = (\x -> f (x (Mu x))) (\(Mu x) -> f (x (Mu x))) in take 10 $ y (1:)
2025-03-27 01:17:58 +0100 <lambdabot> error:
2025-03-27 01:17:58 +0100 <lambdabot> Not in scope: data constructor ‘Mu’
2025-03-27 01:17:58 +0100 <lambdabot> Perhaps you meant one of these:
2025-03-27 01:18:22 +0100 <yin> > newtype Mu a = Mu (Mu a -> a); let y f = (\x -> f (x (Mu x))) (\(Mu x) -> f (x (Mu x))) in take 10 $ y (1:)
2025-03-27 01:18:23 +0100 <lambdabot> <hint>:1:1: error: parse error on input ‘newtype’
2025-03-27 01:18:33 +0100yinshrugs
2025-03-27 01:18:34 +0100 <geekosaur> use @let for the newtype
2025-03-27 01:18:51 +0100 <geekosaur> (and for let in general)
2025-03-27 01:18:56 +0100Axman6would argue that in Haskell, the proper church encoding of True would be \a b -> b given the order of Bool's constructors
2025-03-27 01:19:25 +0100 <yin> :t bool
2025-03-27 01:19:26 +0100 <lambdabot> a -> a -> Bool -> a
2025-03-27 01:19:40 +0100 <Axman6> > bool "a" "b" True
2025-03-27 01:19:41 +0100 <lambdabot> "b"
2025-03-27 01:20:16 +0100 <yin> geekosaur: can you show me how to do that?
2025-03-27 01:20:29 +0100 <Axman6> @let newtype Mu a = Mu (Mu a -> a)
2025-03-27 01:20:30 +0100 <lambdabot> Defined.
2025-03-27 01:20:40 +0100 <Axman6> > let y f = (\x -> f (x (Mu x))) (\(Mu x) -> f (x (Mu x))) in take 10 $ y (1:)
2025-03-27 01:20:41 +0100 <lambdabot> [1,1,1,1,1,1,1,1,1,1]
2025-03-27 01:21:14 +0100 <yin> nice. didn't know we could pollute lambdabot
2025-03-27 01:22:24 +0100 <geekosaur> "@undefine" clears it
2025-03-27 01:22:31 +0100 <geekosaur> (but it's all or nothing)
2025-03-27 01:23:48 +0100yin@let if = id
2025-03-27 01:24:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 01:24:39 +0100 <Axman6> denied
2025-03-27 01:25:06 +0100Googulator(~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) (Quit: Client closed)
2025-03-27 01:25:15 +0100 <yin> i remember one of my first questions in #haskell-beginners being about some mess i got into because i had overloaded (+) in ghci
2025-03-27 01:25:19 +0100 <yin> fun times
2025-03-27 01:25:20 +0100Googulator(~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu)
2025-03-27 01:27:56 +0100 <jackdk> Axman6: what else is on the `id` list? I can think of `($)` and lens's `traversal`, `(%%~)`, `simply`, `simple`, `equality Refl Refl` and `equality' Refl`
2025-03-27 01:28:19 +0100 <yin> i also cherish the first time someone answered me a (simple, i thought) question with a link to a white paper
2025-03-27 01:28:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-03-27 01:29:03 +0100 <Axman6> You'd probably find two dozen foo = id in lens
2025-03-27 01:29:12 +0100 <Axman6> how good are types
2025-03-27 01:29:31 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-03-27 01:30:30 +0100acidjnk(~acidjnk@p200300d6e71c4f691c99ba8b65f3988d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2025-03-27 01:30:52 +0100aetepe(~aetepe@46.154.235.16) (Read error: Connection reset by peer)
2025-03-27 01:31:27 +0100 <yin> :t flip
2025-03-27 01:31:28 +0100 <lambdabot> (a -> b -> c) -> b -> a -> c
2025-03-27 01:31:29 +0100 <yin> :t flip flip
2025-03-27 01:31:30 +0100 <lambdabot> b -> (a -> b -> c) -> a -> c
2025-03-27 01:31:34 +0100 <yin> :t flip flip flip
2025-03-27 01:31:35 +0100 <lambdabot> (a1 -> ((a2 -> b -> c1) -> b -> a2 -> c1) -> c2) -> a1 -> c2
2025-03-27 01:31:36 +0100 <yin> :t flip flip flip flip
2025-03-27 01:31:37 +0100 <lambdabot> (a1 -> ((a2 -> b -> c1) -> b -> a2 -> c1) -> c2) -> a1 -> c2
2025-03-27 01:31:40 +0100 <yin> :t flip flip flip flip flip
2025-03-27 01:31:41 +0100 <lambdabot> (a1 -> ((a2 -> b -> c1) -> b -> a2 -> c1) -> c2) -> a1 -> c2
2025-03-27 01:31:45 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-03-27 01:31:53 +0100 <yin> one of my favourites
2025-03-27 01:32:50 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-03-27 01:33:05 +0100 <yin> took me half an afternoon to understand this back in the day
2025-03-27 01:34:50 +0100 <Axman6> this one surprises me, I guess I'd need to sit down and figure it out too
2025-03-27 01:37:16 +0100 <yin> the function type always trips me up
2025-03-27 01:38:46 +0100 <yin> type level fixed point
2025-03-27 01:39:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 01:43:51 +0100malte(~malte@mal.tc) malte
2025-03-27 01:44:53 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Remote host closed the connection)
2025-03-27 01:45:16 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2025-03-27 01:45:25 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-03-27 01:46:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-03-27 01:48:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 01:48:26 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-03-27 01:48:26 +0100ljdarj1ljdarj
2025-03-27 01:53:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-03-27 02:04:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-03-27 02:07:54 +0100xff0x(~xff0x@2405:6580:b080:900:d2df:bcfa:d5c3:4ebd) (Ping timeout: 268 seconds)