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 +0100 | ChaiTRex | (~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 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2025-03-27 00:01:14 +0100 | malte | (~malte@mal.tc) malte |
2025-03-27 00:03:07 +0100 | merijn | (~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 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2025-03-27 00:09:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-27 00:15:20 +0100 | dolio | (~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-03-27 00:20:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-27 00:20:56 +0100 | aetepe | (~aetepe@188.119.22.83) (Ping timeout: 252 seconds) |
2025-03-27 00:21:13 +0100 | aetepe | (~aetepe@46.154.235.16) aetepe |
2025-03-27 00:26:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-03-27 00:26:44 +0100 | dolio | (~dolio@130.44.140.168) dolio |
2025-03-27 00:27:30 +0100 | aetepe | (~aetepe@46.154.235.16) (Read error: Connection reset by peer) |
2025-03-27 00:30:26 +0100 | dolio | (~dolio@130.44.140.168) (Client Quit) |
2025-03-27 00:32:04 +0100 | dolio | (~dolio@130.44.140.168) dolio |
2025-03-27 00:35:13 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds) |
2025-03-27 00:36:12 +0100 | Googulator | (~Googulato@85-238-67-46.pool.digikabel.hu) (Quit: Client closed) |
2025-03-27 00:36:27 +0100 | Googulator | (~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) |
2025-03-27 00:36:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-27 00:39:34 +0100 | Miroboru | (~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 +0100 | Miroboru | (~myrvoll@178-164-114.82.3p.ntebredband.no) Miroboru |
2025-03-27 00:41:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-27 00:43:30 +0100 | Googulator | (~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) (Quit: Client closed) |
2025-03-27 00:43:43 +0100 | Googulator | (~Googulato@2a01-036d-0106-01d5-c415-995d-99e3-7810.pool6.digikabel.hu) |
2025-03-27 00:45:08 +0100 | malte | (~malte@mal.tc) (Ping timeout: 252 seconds) |
2025-03-27 00:45:49 +0100 | aetepe | (~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 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-27 00:57:36 +0100 | merijn | (~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 +0100 | L29Ah | (~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 +0100 | weary-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 +0100 | merijn | (~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 +0100 | aetepe | (~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 +0100 | aetepe | (~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 +0100 | jackdk | adds `if` to the pile of things that are secretly `id` |
2025-03-27 01:13:02 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-27 01:15:13 +0100 | sprotte24 | (~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 +0100 | yin | shrugs |
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 +0100 | Axman6 | would 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. |