2024/11/14

Newest at the top

2024-11-14 23:41:52 +0100 <geekosaur> I do sometimes wonder what the Haskell ecosystem would look like now if monads-tf had won out over monads-fd as the successor to mtl1
2024-11-14 23:41:50 +0100xff0x(~xff0x@ai080132.d.east.v6connect.net) (Ping timeout: 255 seconds)
2024-11-14 23:40:56 +0100 <shapr> yeah, just curious what you thought
2024-11-14 23:40:45 +0100 <geekosaur> I'm not sure they're more principled, since I'm not really a type theory or type level wonk
2024-11-14 23:40:32 +0100shaprthinks about that
2024-11-14 23:40:22 +0100 <geekosaur> I think in some sense they fit Haskell better, because fundeps are a chunk of Prolog imported into the type system
2024-11-14 23:39:47 +0100 <shapr> geekosaur: do you think type families are more principled?
2024-11-14 23:38:08 +0100 <geekosaur> many people consider the latter mroe principled, but functional dependencies have been around longer and most standard libraries still use them
2024-11-14 23:37:39 +0100 <geekosaur> they are, and yes, they're essentially identical. one uses a functional dependency to establish a relationship between types, the other a type family that is associated with the typeclass ("associated type family")
2024-11-14 23:24:36 +0100emfrom(~emfrom@78.243.183.111) (Remote host closed the connection)
2024-11-14 23:23:09 +0100CoolMa7_(~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2024-11-14 23:22:02 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-11-14 23:21:47 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-11-14 23:19:37 +0100gorignak(~gorignak@user/gorignak) gorignak
2024-11-14 23:19:15 +0100CoolMa7(~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2024-11-14 23:17:36 +0100CoolMa7_(~CoolMa7@ip5f5b8957.dynamic.kabel-deutschland.de) CoolMa7
2024-11-14 23:16:00 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2024-11-14 23:13:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-14 23:12:41 +0100 <carbolymer> what's the difference between Foo1 and Foo2 here: https://paste.tomsmeding.com/HEZo1ic4 ? aren't they expressing the same thing basically?
2024-11-14 23:06:47 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-14 23:06:25 +0100Everything(~Everythin@178-133-104-20.mobile.vf-ua.net) Everything
2024-11-14 22:58:54 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-11-14 22:58:28 +0100gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-11-14 22:57:14 +0100dolio(~dolio@130.44.140.168) dolio
2024-11-14 22:52:25 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-11-14 22:51:46 +0100 <haskellbridge> <Bowuigi> Yeah you definitely need a blog lol
2024-11-14 22:51:00 +0100 <haskellbridge> <Bowuigi> Hmmm I think I get it now
2024-11-14 22:46:42 +0100dolio(~dolio@130.44.140.168) (Ping timeout: 252 seconds)
2024-11-14 22:45:10 +0100guy(~guy@2a01:4b00:d007:ed00:81c3:85aa:e2c9:6027) (Quit: Client closed)
2024-11-14 22:44:04 +0100 <guy> https://chatgpt.com/share/67366f04-9d30-800b-82c2-fe23ab9d5e09
2024-11-14 22:44:03 +0100 <guy> chatGPT does an okish job of groking the summary. but i think its way infirior to the voice note
2024-11-14 22:43:53 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-11-14 22:39:34 +0100guy(~guy@2a01:4b00:d007:ed00:81c3:85aa:e2c9:6027)
2024-11-14 22:38:42 +0100guy_(~guy@2a01:4b00:d007:ed00:81c3:85aa:e2c9:6027) (Quit: Client closed)
2024-11-14 22:38:41 +0100 <guy_> peace x
2024-11-14 22:38:39 +0100 <guy_> stopping now for the deluge.
2024-11-14 22:38:34 +0100 <guy_> woot, i think i gave the text based version
2024-11-14 22:38:27 +0100 <guy_> breaks the traversal laws and introduces the concept of "nonlinearity"
2024-11-14 22:38:13 +0100 <guy_> this is where the idea of "functor scheduling" which might not have visitation of each element only once
2024-11-14 22:37:54 +0100 <guy_> the point here is that you can also overwrite data ie, have the same position mentioned several times
2024-11-14 22:37:36 +0100 <guy_> so when you put it into a list, with each value having the structure directing information aswell, then you can put it back from a list and rebuild the graph. like folding through the list with the seti constructor
2024-11-14 22:37:00 +0100 <guy_> seti+geti are abstractions extending around pattern matching on (:) where you get an extra piece of data
2024-11-14 22:36:28 +0100 <guy_> its more like basically "because its foldable there is a toList" so its "linearizable"
2024-11-14 22:36:10 +0100 <guy_> but yeah, totally different concept of linearity
2024-11-14 22:36:02 +0100 <guy_> i think basically, because the state is updated each time, thats where the linearity comes in
2024-11-14 22:35:34 +0100 <guy_> and then its weird because your functions are replaced by something that has concrete and variable data associated
2024-11-14 22:35:16 +0100 <guy_> (s,s->a->(s,b)) actually, since you need the state aswell
2024-11-14 22:34:29 +0100 <guy_> i think the "type theoretic linearity" can be used to great effect here, but i forget how!
2024-11-14 22:34:13 +0100 <guy_> since you can always have s~() you can basically make a totally stateful language
2024-11-14 22:33:53 +0100 <guy_> but now instead of a bivariate function a -> b, its the stateful function; s -> a -> (s,b)