2024/09/30

Newest at the top

2024-09-30 19:18:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-09-30 19:16:24 +0200merijn(~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-09-30 19:11:16 +0200merijn(~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 +0200machinedgod(~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 +0200peterbecich(~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 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Client Quit)
2024-09-30 18:59:03 +0200anpad(~pandeyan@user/anpad) anpad
2024-09-30 18:58:04 +0200ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-09-30 18:56:14 +0200briandaed(~root@185.234.210.211) (Quit: Lost terminal)
2024-09-30 18:50:11 +0200misterfish(~misterfis@84.53.85.146) misterfish
2024-09-30 18:46:12 +0200Tuplanolla(~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 +0200chele(~chele@user/chele) (Remote host closed the connection)
2024-09-30 18:42:48 +0200athan(~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 +0200raehik(~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 +0200andrewboltachev(~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: