2025/01/10

Newest at the top

2025-01-10 12:15:49 +0100mari-estel(~mari-este@user/mari-estel) (Ping timeout: 252 seconds)
2025-01-10 12:15:15 +0100 <hellwolf> say [forall a. D a] vs. [AnyD] where data AnyD = forall a. D a
2025-01-10 12:14:37 +0100 <hellwolf> They look very similar to me, in forms and shapes. But probably someone here knows more can answer immediately, is ImpredicativeType possible to replace the common usage of existential types?
2025-01-10 12:13:45 +0100mari47944(~mari-este@user/mari-estel) mari-estel
2025-01-10 12:07:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2025-01-10 11:58:33 +0100alist(~alist@user/alist) (Quit: Leaving)
2025-01-10 11:53:02 +0100 <alist> i think i can parse it but. idk sorry to flood the chat with like this one obsession i have
2025-01-10 11:52:46 +0100 <alist> the paper is also sort of doubly confusing because it seems to use like an old version of set-builder notation? and it sometimes uses lambdas to describe set-theoretic functions haha
2025-01-10 11:50:15 +0100 <alist> to be honest it seems to really have worked, ive been here for two days and both times people were able to answer really specific questions about this paper really quickly
2025-01-10 11:49:26 +0100 <haskellbridge> <sm> haha, the old "hang out for a couple of decades" manouver eh
2025-01-10 11:46:41 +0100 <alist> im hoping for the fast track
2025-01-10 11:46:35 +0100 <alist> haha well i dont know if i have that kind of time
2025-01-10 11:46:07 +0100 <geekosaur> that said, I got there by hanging out here for a couple decades 🙂
2025-01-10 11:45:41 +0100 <geekosaur> I'm fairly weak on type theory myself but can generally follow this stuff to some extent
2025-01-10 11:45:13 +0100 <alist> geekosaur: right i understand this. i also understand how functions are relations. i have a mathematics background, but nothing related to type theory.
2025-01-10 11:44:37 +0100 <Athas> merijn: yes, or just check for the Z and pick the right function. It feels a bit dumb, though.
2025-01-10 11:44:27 +0100 <geekosaur> so, mathematically a function is exactly a mapping of values in the domain (input, with some handwaving) to values in the codomain (output, with similar handwaving)
2025-01-10 11:44:18 +0100 <alist> geekosaur: ive been staring at what you wrote for like 10 minutes now and i think maybe im starting to get it?
2025-01-10 11:43:44 +0100 <alist> merijn: i see. well thank you anyway, you have been very kind
2025-01-10 11:43:19 +0100 <merijn> alist: That's beyond what I can skim from the paper and it's lunchtime
2025-01-10 11:43:15 +0100 <geekosaur> probably easiest
2025-01-10 11:43:11 +0100 <geekosaur> ^
2025-01-10 11:43:04 +0100 <merijn> Athas: Crazy talk: Why not replace Z with offset 0:00? :)
2025-01-10 11:42:53 +0100 <alist> ah yes, but the advantage i guess is that they are not the same "kind" of set as the just collections of values. they are actual mappings?
2025-01-10 11:42:47 +0100 <geekosaur> Athas, git is the one being annoying there, it should be consistent. I think the best you can do is try both and use the one that succeeds
2025-01-10 11:42:04 +0100 <merijn> alist: Which, can be confusing, because in some sense relations are just "more sets" depending how you squint and how rigid you like your formalisms :p
2025-01-10 11:41:24 +0100 <merijn> alist: we view types of functions as *relations* between sets, that's what that bit is about
2025-01-10 11:39:48 +0100 <Athas> The ISO8601 instance for ZonedTime allows the offset (but not Z), while the instance for UTCTime allows Z (but not the offset).
2025-01-10 11:39:20 +0100 <alist> merijn: i see. and so if the "type as set" view is inconvenient, what exactly is our view? "type as ..."?
2025-01-10 11:39:07 +0100 <Athas> I need to parse git timestamps using the "strict ISO 8601 format". It produces timestamps that look like "2025-01-09T10:06:27+01:00" or "2025-01-09T10:06:27Z". That is, the timezone is either an offset or Z (which means 0). I can't find a simple way to do this with the 'time' library. Am I missing something?
2025-01-10 11:38:25 +0100 <hellwolf> hello
2025-01-10 11:37:28 +0100ubert(~Thunderbi@2a02:8109:ab8a:5a00:6af7:7356:266e:a6fb) ubert
2025-01-10 11:37:25 +0100 <Athas> Hello Haskell friends.
2025-01-10 11:35:58 +0100 <merijn> alist: And the "type as set" view is inconvenient specifically for functions
2025-01-10 11:35:30 +0100 <geekosaur> basically, to do anything with values of a type, you need relations saying what can be done with them
2025-01-10 11:35:30 +0100 <merijn> alist: ah, so I think the confusion is this: Wadler we want to specifically talk about *function* types for our theorems
2025-01-10 11:33:59 +0100 <geekosaur> types are sets, (mathematical) functions are relations between sets/types
2025-01-10 11:31:17 +0100 <alist> *values, not elements
2025-01-10 11:31:08 +0100 <alist> i thought they were relations, at first. i thought the author was saying that because just naively modeling types as sets of their elements didn't work out, so we are going to use relations
2025-01-10 11:30:35 +0100 <alist> so, what are the targets of this isomorphism you mention? what are the types mapped to?
2025-01-10 11:30:11 +0100 <alist> sorry i was just trying to understand what you wrote and what the author wrote
2025-01-10 11:28:53 +0100 <merijn> What is the source of confusion?
2025-01-10 11:27:42 +0100 <alist> lol
2025-01-10 11:26:07 +0100 <merijn> That sounds about right for reading type theory papers :D
2025-01-10 11:24:57 +0100 <alist> ok now i am confused
2025-01-10 11:23:36 +0100 <merijn> i.e. types as sets of elements and functions as relations between their input set and output set
2025-01-10 11:22:57 +0100 <merijn> alist: In section 2, on the bottom of page 4 the example is basically explaining an isomorphism between "types and functions" and "sets and relations"
2025-01-10 11:21:32 +0100 <merijn> Not that everything is built in term of those
2025-01-10 11:21:26 +0100 <merijn> alist: The identity type is only mentioned as a special relation
2025-01-10 11:21:03 +0100 <alist> i see i see