Newest at the top
2024-09-30 19:11:16 +0200 | merijn | (~merijn@204-220-045-062.dynamic.caiway.nl) merijn |
2024-09-30 19:10:03 +0200 | <haskellbridge> | <sm> If so - nothing to see there, yet anyway |
2024-09-30 19:09:41 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 265 seconds) |
2024-09-30 19:09:26 +0200 | <haskellbridge> | <sm> A Burrito Is a Monad ? |
2024-09-30 19:09:00 +0200 | <haskellbridge> | <sm> what's the title ? |
2024-09-30 19:07:12 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-09-30 19:05:39 +0200 | <monochrom> | Yeah :) |
2024-09-30 19:05:16 +0200 | <cheater> | maybe it's better you remain oblivious |
2024-09-30 19:04:35 +0200 | <cheater> | oh, summer child |
2024-09-30 19:04:26 +0200 | <monochrom> | Sorry, what is the orange site? |
2024-09-30 19:04:07 +0200 | <cheater> | *sigh* haskell is on the front page of the orange site again |
2024-09-30 19:00:47 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit) |
2024-09-30 18:59:03 +0200 | anpad | (~pandeyan@user/anpad) anpad |
2024-09-30 18:58:04 +0200 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-09-30 18:56:14 +0200 | briandaed | (~root@185.234.210.211) (Quit: Lost terminal) |
2024-09-30 18:50:11 +0200 | misterfish | (~misterfis@84.53.85.146) misterfish |
2024-09-30 18:46:12 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-09-30 18:44:13 +0200 | <tomsmeding> | the typical tradeoff for me is: do I want a compiler error if the number of fields of this constructor changes? |
2024-09-30 18:43:30 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-09-30 18:42:48 +0200 | athan | (~athan@syn-098-153-145-140.biz.spectrum.com) (Ping timeout: 276 seconds) |
2024-09-30 18:40:43 +0200 | <Inst> | insofar as you want to signify the arity polymorphism |
2024-09-30 18:39:56 +0200 | <Inst> | you have trade-offs over that, it's more expressive than Foo _ _ etc especially since it's arity polymorphic |
2024-09-30 18:39:27 +0200 | <Inst> | c_wraith, that's interesting, but it's just something more complicated to read :( |
2024-09-30 18:39:15 +0200 | <Inst> | regarding the records abuse, c_wairth |
2024-09-30 18:34:35 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-09-30 18:25:58 +0200 | <Inst> | https://hackage.haskell.org/package/base-4.20.0.1/docs/Type-Reflection.html#t:TypeRep |
2024-09-30 18:25:57 +0200 | <Inst> | tomsmeding: I guess what I'm really looking for with all this match partially-applied constructor nonsense is |
2024-09-30 18:24:25 +0200 | <tomsmeding> | monochrom: final sentence: "more kind of bugs" -> "more kinds of bugs" |
2024-09-30 18:23:35 +0200 | <tomsmeding> | monochrom: thanks, I learned about parametricity today! |
2024-09-30 18:22:19 +0200 | <tomsmeding> | ah, and also what I said |
2024-09-30 18:21:56 +0200 | <tomsmeding> | sorry that's what I meant |
2024-09-30 18:21:50 +0200 | <yahb2> | \n -> if n == 0 then Bar 42 else Baz 100 ; :: (Eq a, Num a) => a -> Foo |
2024-09-30 18:21:50 +0200 | <tomsmeding> | % :t \n -> if n == 0 then Bar 42 else Baz 100 |
2024-09-30 18:21:48 +0200 | <yahb2> | <no output> |
2024-09-30 18:21:48 +0200 | <tomsmeding> | % data Foo = Bar Int | Baz Int |
2024-09-30 18:21:42 +0200 | <yahb2> | <interactive>:1:38: error: [GHC-39999] ; • Could not deduce ‘Num Char’ arising from the literal ‘100’ ; from the context: (Eq a, Num a) ; bound by the inferred type of it :: (Eq a... |
2024-09-30 18:21:42 +0200 | <tomsmeding> | % :t \n -> if n == 0 then Bar 42 else Baz 100 |
2024-09-30 18:21:32 +0200 | <yahb2> | <no output> |
2024-09-30 18:21:31 +0200 | <tomsmeding> | % data Foo = Bar Int | Baz Char |
2024-09-30 18:21:25 +0200 | <ski> | __monty__ : well, if you do, you can use `(<*>) = liftA2 ($)' |
2024-09-30 18:21:06 +0200 | <Inst> | the if expression isn't well-typed |
2024-09-30 18:20:31 +0200 | <__monty__> | ski: Haven't written enough liftA2s to have an opinion TBH. |
2024-09-30 18:20:24 +0200 | <tomsmeding> | and that ain't going to work |
2024-09-30 18:20:22 +0200 | <tomsmeding> | because if you'd have `data Foo = Bar Int | Baz Int`, then perhaps `f :: (Int -> Foo) -> _`, but from that type I should also be able to pass `\n -> if n == 0 then Bar 42 else Baz 100` to f |
2024-09-30 18:19:40 +0200 | andrewboltachev | (~andrey@178.141.123.3) (Quit: Leaving.) |
2024-09-30 18:19:25 +0200 | <tomsmeding> | but also the eta-expansion argument that I gave which tells you that even if you'd have a data type for which the types do line up, we still don't want this |
2024-09-30 18:19:24 +0200 | <Inst> | f Left Bar works |
2024-09-30 18:19:09 +0200 | <Inst> | That said: |
2024-09-30 18:19:03 +0200 | <Inst> | f Bar = ...; f Baz = ...; f :: ??? |
2024-09-30 18:18:59 +0200 | <tomsmeding> | that syntax is indeed free, but typing indeed presents a problem |