2025/05/03

Newest at the top

2025-05-03 22:35:23 +0200 <EvanR> works in C xD
2025-05-03 22:35:01 +0200rachelambda8(~rachelamb@cust-95-80-25-71.csbnet.se)
2025-05-03 22:34:47 +0200 <monochrom> Really, "g :: IO (Sigma n:Nat . Vec n Foo)" is no different. If n is unknown until runtime and performing I/O, of course it can't be erased.
2025-05-03 22:34:44 +0200rachelambda8(~rachelamb@cust-95-80-25-71.csbnet.se) (Quit: β reduced)
2025-05-03 22:31:50 +0200 <monochrom> Then they speak like "f :: X -> Sigma b:bool. F b, where F False = Foo, F True = Bar, makes no sense because type erase, this is Python again". But it's isomorphic to the Either version.
2025-05-03 22:31:03 +0200 <EvanR> like a weak form of C where all these typed functions are exactly the same except for the type, because they don't have polymorphism
2025-05-03 22:30:47 +0200 <monochrom> People don't speak like "f :: X -> Either Foo Bar makes no sense because type erasure, this is Python again".
2025-05-03 22:30:30 +0200 <EvanR> with a lot of overlap
2025-05-03 22:30:16 +0200 <haskellbridge> <loonycyborg> and treat them like two different sublanguages working in concert :P
2025-05-03 22:30:00 +0200 <haskellbridge> <loonycyborg> I think it's better just to embrace this separation between term-level and type-level
2025-05-03 22:29:46 +0200P1RATEZ(piratez@user/p1ratez) P1RATEZ
2025-05-03 22:26:31 +0200 <EvanR> maybe education will improve though
2025-05-03 22:26:04 +0200 <EvanR> fundamental activities possible with dependent types won't be different
2025-05-03 22:25:54 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-05-03 22:25:47 +0200 <hellwolf> *quit
2025-05-03 22:25:44 +0200 <hellwolf> DT induced rage quite
2025-05-03 22:25:24 +0200r-sta(~r-sta@206-122-61-5.reverse.tnp.net.uk) (Quit: Client closed)
2025-05-03 22:25:21 +0200 <r-sta> cioa!
2025-05-03 22:25:19 +0200 <r-sta> sheesh, ill just check in in *another* few years to check the status of all this.
2025-05-03 22:24:14 +0200 <r-sta> ("no types at runtime!! or else!! do you want this to compile or not!?)
2025-05-03 22:23:51 +0200 <r-sta> ie im made to do the erasure myself!
2025-05-03 22:23:39 +0200 <r-sta> i have to just use Vertex :: Type
2025-05-03 22:23:12 +0200 <r-sta> if you can forgive the use of || at type level with that meaning
2025-05-03 22:22:59 +0200 <r-sta> i have like, flipFromFlat) :: Vertex Flat -> (Vertex Up || Vertex Down)
2025-05-03 22:21:56 +0200 <hellwolf> Not sure if I am explaining it well. I kept it brief.
2025-05-03 22:21:56 +0200 <hellwolf> when bridging with runtime, you just provide some witness to the otherwise already type checked DT code.
2025-05-03 22:21:47 +0200 <r-sta> like Vertex :: MarketMode -> Type
2025-05-03 22:21:33 +0200 <r-sta> and there is a Vertex UP
2025-05-03 22:21:24 +0200 <r-sta> hmm, like if my trader flips between up flat and down
2025-05-03 22:20:54 +0200 <hellwolf> no, that's not how it works. Need some inspirational example I guess.
2025-05-03 22:20:46 +0200 <r-sta> nah, singletons im fine with
2025-05-03 22:20:36 +0200 <r-sta> sounds like python...
2025-05-03 22:20:32 +0200 <hellwolf> if you use Nat/SNat, which I find very useful, that's already a tiny bit of DT.
2025-05-03 22:20:27 +0200 <r-sta> like, how does it even make sense, if i could choose to output a different type depending on runtime conditions
2025-05-03 22:19:49 +0200 <r-sta> type applications is good, not sure if i like dependant types in haskell, i found idris unusable
2025-05-03 22:19:44 +0200 <hellwolf> it reminded me to add to TODO to remove SNat usage in places I could.
2025-05-03 22:19:08 +0200 <r-sta> idk, i was ok with @
2025-05-03 22:18:38 +0200 <r-sta> that appear on the lhs of the constraint arrow, are just treated as arguments as if they were specified on the rhs of the constraint arrow
2025-05-03 22:18:33 +0200 <hellwolf> it's nice to use.
2025-05-03 22:18:03 +0200 <r-sta> mySizeOf a = sizeOf a
2025-05-03 22:18:03 +0200 <r-sta> mySizeOf :: forall a -> Sized a => Int
2025-05-03 22:18:01 +0200 <r-sta> its weird because even "arguments" (type level sytax at term level!!! :-/)
2025-05-03 22:16:53 +0200 <r-sta> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0281-visible-forall.rst
2025-05-03 22:16:45 +0200 <r-sta> "Visible forall in types of terms, and types in terms"
2025-05-03 22:16:02 +0200 <r-sta> errrr... idk which proposal is implemented, it might have just liked the dependant proposal for reference, i have too many new tabs open sorry
2025-05-03 22:15:49 +0200 <hellwolf> which ones, I have used visible forall only
2025-05-03 22:15:29 +0200 <hellwolf> I can use in 9.12?
2025-05-03 22:14:59 +0200 <r-sta> yeah it was accepted in 9.12 thats why im reading it
2025-05-03 22:14:48 +0200cyphase(~cyphase@user/cyphase) cyphase
2025-05-03 22:13:02 +0200 <hellwolf> I still think Haskell should slowly but surely add these ... despite many push backs