2024/05/14

Newest at the top

2024-05-14 21:07:46 +0200 <mauke> blame the original rust code :-)
2024-05-14 21:07:32 +0200 <yin> have you considered 0.37 ?
2024-05-14 21:06:34 +0200 <yin> mauke: 0.234 doesn't seem random at all
2024-05-14 21:01:34 +0200 <raehik> understandable
2024-05-14 21:01:24 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
2024-05-14 21:01:23 +0200 <raehik> > :k! TypeError (Text "test")
2024-05-14 21:00:46 +0200 <raehik> do type families trip up TypeError printing for `:k!`...?
2024-05-14 20:55:31 +0200 <mauke> if you want to go mad with power, there is also https://hackage.haskell.org/package/base-4.19.1.0/docs/Data-Dynamic.html
2024-05-14 20:53:55 +0200 <ph88> mauke, Thanks ! i will try this
2024-05-14 20:51:43 +0200 <cheater> yes, i agree on that
2024-05-14 20:51:31 +0200 <yin> i don't think i can help you
2024-05-14 20:50:58 +0200 <cheater> not at all
2024-05-14 20:50:50 +0200 <yin> cheater: i feel like you're being purposefuly obtuse. this might be a good place to end the conversation
2024-05-14 20:50:47 +0200 <cheater> vim
2024-05-14 20:50:19 +0200 <yin> cheater: are you using vim or neovim?
2024-05-14 20:50:02 +0200 <cheater> cabal files already have lots of such advanced flags. there's no reason to turn our language into the Fischer Price version of itself just because of some conceived notion of "this might be difficult to explain to a newbie"
2024-05-14 20:49:44 +0200 <mauke> ph88: https://play.haskell.org/saved/9CUzFQLl
2024-05-14 20:49:20 +0200 <yin> anyways, it's one of many possible solutions for your problem. i don't think an ecosystem's consistency should suffer by trying to solve problems beyond its scope
2024-05-14 20:49:19 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2024-05-14 20:48:14 +0200 <ph88> ncf, i think i need existential types. I only used them once before, still not entirely sure how they work
2024-05-14 20:47:59 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 264 seconds)
2024-05-14 20:47:33 +0200 <ncf> ph88: that describes an existential type, but i can't tell if it's what you actually need
2024-05-14 20:47:12 +0200 <yin> cheater: now see it from my side, the side of a person who is trying to help another person solve a problem: you can add a field to a cabal file that will cause inumerous headaches for everyone when normal paths don't work until you find that there's some obscure line hidden in the middle of a project's cabal OR type fzf instead of cd (i actually have it aliased to just 'z')
2024-05-14 20:46:55 +0200 <ph88> ncf, similar to this https://stackoverflow.com/questions/5699427/what-does-it-mean-for-a-function-to-return-an-interface i don't know how to explain it better. It's an opaque piece of data other than you know what interface methods you can call on it. In haskell it's an opaque piece of data other than you know which typeclass methods you can call on it
2024-05-14 20:44:41 +0200 <raehik> How can I get GHCi to pretty print my TypeErrors on :k! invocations ? It just prints `= (TypeError ...)` :(
2024-05-14 20:43:34 +0200 <ncf> ph88: i still have no idea what you're trying to do
2024-05-14 20:43:03 +0200 <cheater> yin: what i'm trying to do here is to contrast for you, on one side, typing one line into a cabal file and that's it, and on the other side, having to invoke an extra tool every single of the thousands of thousands of times you want to do something related to file paths
2024-05-14 20:42:54 +0200 <ph88> data Box (c :: Type -> Constraint) = forall a. (c a) => MkBox a like this ?
2024-05-14 20:41:54 +0200 <yin> no, but GADTs imply existential types i'm pretty sure
2024-05-14 20:41:49 +0200 <cheater> yin: that is not the only line one has to type to use fzf for opening every single file.
2024-05-14 20:41:48 +0200 <ncf> no
2024-05-14 20:41:32 +0200 <mauke> I don't think so
2024-05-14 20:41:24 +0200 <ph88> do i need GADT for existential types ?
2024-05-14 20:41:01 +0200 <mauke> yes
2024-05-14 20:40:58 +0200 <ph88> mauke, what's that, existential types?
2024-05-14 20:40:32 +0200 <yin> cheater: apt is a popular package manager used on debian distros. that command installs fzf from the official repositories. you should of course use the appropriate command for your system
2024-05-14 20:40:15 +0200 <ph88> I don't want to hardcode my schema as haskell types, please don't suggest it
2024-05-14 20:39:52 +0200 <ph88> i have a typeclass for database entities, the functions are enough to save each entity separately. But i need a function to get the relations (dependencies) from one entity to another.
2024-05-14 20:39:46 +0200 <mauke> it would have to be (c :: Type -> Constraint) or something
2024-05-14 20:39:37 +0200 <mauke> ah, no
2024-05-14 20:39:32 +0200 <cheater> yin: what is 'apt i fzf'?
2024-05-14 20:39:13 +0200 <mauke> data Box (c :: Constraint) = forall a. (c a) => MkBox a -- is that legal?
2024-05-14 20:38:52 +0200 <cheater> ph88: the question is why you want that
2024-05-14 20:38:46 +0200 <mauke> hmm, actually ...
2024-05-14 20:38:39 +0200 <cheater> ph88: yes, that is something that is done
2024-05-14 20:38:25 +0200demon-cat(~demon-cat@dund-15-b2-v4wan-169642-cust1347.vm6.cable.virginm.net)
2024-05-14 20:38:17 +0200 <ph88> cheater, `getSomething :: forall b. Something b => a -> Maybe b`
2024-05-14 20:38:15 +0200 <yin> cheater: if you're using vim and think 'apt i fzf' is adding too much complexity to your life, the :find and :vim commands are your friends
2024-05-14 20:38:14 +0200 <mauke> data Box = forall a. (Animal a) => MkBox a
2024-05-14 20:37:58 +0200 <cheater> this type signature tells you that the return type, a, will implement MyClass