> misleading manner by labeling speculative ethical behavior as “EA” when it’s neither effective I agree that they're ineffective, but I don't see any evidence that the MIRI types are lying - they're trying to help,…
I don't know about "EA rationales", but rule utilitarianism is unpopular among philosophers largely because it's believed to collapse into act utilitarianism. The phil101 caricature is that rule utilitarianism says "no…
> what precisely has the EA movement done to reduce, even marginally, the risk of a nuclear war? Nothing that I'm aware of. In general I think that most of the current "longtermist" organizations are useless - but that…
When did I say it did?
> Consequently, we should divert money away from the welfare of people living today and towards efforts that maximize the likelihood of a galaxy filled with colonized planets. If that sounds ridiculous, it's because it…
> Haskell is basically a category theory framework. Haskell probably draws more from category theory than any other mainstream language, but in absolute terms that's still not very much. It's okayish for modelling…
> You could rephrase Lisp as a Unityped system, but I seriously doubt it would be consistent. It's not. (x -> x) is always inhabited, so if you have a fixed point combinator (x -> x) -> x then every theorem is true.
No, it isn't. A star-autonomous cartesian category is just a preorder. Chu(Set, n) is star-autonomous but not a preorder, and therefore not cartesian. Or more concretely: cartesian categories are models for type systems…
There's not really a connection here, the category of vector spaces isn't cartesian closed.
> Was Tolkien right leaning himself, I would be surprised by that but I honestly don’t know. Yes, but the small-c conservative Catholic sort of right-wing. He would have hated reactionary modernists like Thiel.
> But some sets of data and some operations on them that fulfill some formally stated requirements are just an abstract algebra, aren't they? Not quite. A variety of algebras (which is usually what people have in mind…
> Addition is move and multiplication is also a move. a + b move from 0 a step then b steps. a * b is move a step b times. By "move" do you mean adding 1? If so, then no. Consider, for instance, the complex numbers:…
> It's mentioned later, but the "math friendly" versions satisfy the axioms of a group and a field, which only works if the modulus is a prime. The integers mod n >= 1 are always a group (under addition), only the field…
> Imagine I want to test a function that operates on quite large application state but not all app state is necessary for that function If not all app state is necessary for that function, it shouldn't require the whole…
> Whether or not a particular email address is verified or not isn't something that's generally known at compile time Yes, obviously. What is knowable at compile time is the stuff that comes after: given that the input…
> sendToEmail sends to any kind of Email. That's my point, you don't need a combinatorial explosion of behaviors for every possible most-specific-type, you can just reuse existing ones. > And if the code wants to know…
newtype ArbitrarilyLabeled x = ArbitrarilyLabeled x forgetLabel :: ArbitrarilyLabeled x -> x forgetLabel (ArbitrarilyLabeled x) = x What's the "global meaning" of `ArbitrarilyLabeled`? What control has `forgetLabel`…
Java and its consequences have been a disaster for the human race
> You'll need sendToUnverifiedEmail(email: UnverifiedEmail) and sendToVerifiedEmail(email: VerifiedEmail), and have code to get the right type to pass to the right function the in the right circumstance... Only if…
Yes, but the mapping doesn't change the relationship between the units of measure, which is the actual meaning as far as the type system is concerned. It's just a change of names.
> this is a classic case of not needing more types but needing proper names. Those are types.
> but I don't think e.g. Haskell98 can do it out of the box in an analogous way? This is basically the runtime representation of `data Email = Verified { email :: string } | Unverified { email :: string }`, but…
> That you introduce more coupling is a tradeoff. That the program (sometimes) gets harder to change is a tradeoff. You don't introduce more coupling, you document the coupling that already exists. If your program is…
> since the shared libs have generics and I'm always casting things. This indicates to me that you're trying to write code that isn't correct (not doesn't work, but rather only works because of implicit couplings…
It's about the meaning, not the raw bits. I might be able to duplicate your signature, but that doesn't mean I can sign documents for you.
> misleading manner by labeling speculative ethical behavior as “EA” when it’s neither effective I agree that they're ineffective, but I don't see any evidence that the MIRI types are lying - they're trying to help,…
I don't know about "EA rationales", but rule utilitarianism is unpopular among philosophers largely because it's believed to collapse into act utilitarianism. The phil101 caricature is that rule utilitarianism says "no…
> what precisely has the EA movement done to reduce, even marginally, the risk of a nuclear war? Nothing that I'm aware of. In general I think that most of the current "longtermist" organizations are useless - but that…
When did I say it did?
> Consequently, we should divert money away from the welfare of people living today and towards efforts that maximize the likelihood of a galaxy filled with colonized planets. If that sounds ridiculous, it's because it…
> Haskell is basically a category theory framework. Haskell probably draws more from category theory than any other mainstream language, but in absolute terms that's still not very much. It's okayish for modelling…
> You could rephrase Lisp as a Unityped system, but I seriously doubt it would be consistent. It's not. (x -> x) is always inhabited, so if you have a fixed point combinator (x -> x) -> x then every theorem is true.
No, it isn't. A star-autonomous cartesian category is just a preorder. Chu(Set, n) is star-autonomous but not a preorder, and therefore not cartesian. Or more concretely: cartesian categories are models for type systems…
There's not really a connection here, the category of vector spaces isn't cartesian closed.
> Was Tolkien right leaning himself, I would be surprised by that but I honestly don’t know. Yes, but the small-c conservative Catholic sort of right-wing. He would have hated reactionary modernists like Thiel.
> But some sets of data and some operations on them that fulfill some formally stated requirements are just an abstract algebra, aren't they? Not quite. A variety of algebras (which is usually what people have in mind…
> Addition is move and multiplication is also a move. a + b move from 0 a step then b steps. a * b is move a step b times. By "move" do you mean adding 1? If so, then no. Consider, for instance, the complex numbers:…
> It's mentioned later, but the "math friendly" versions satisfy the axioms of a group and a field, which only works if the modulus is a prime. The integers mod n >= 1 are always a group (under addition), only the field…
> Imagine I want to test a function that operates on quite large application state but not all app state is necessary for that function If not all app state is necessary for that function, it shouldn't require the whole…
> Whether or not a particular email address is verified or not isn't something that's generally known at compile time Yes, obviously. What is knowable at compile time is the stuff that comes after: given that the input…
> sendToEmail sends to any kind of Email. That's my point, you don't need a combinatorial explosion of behaviors for every possible most-specific-type, you can just reuse existing ones. > And if the code wants to know…
newtype ArbitrarilyLabeled x = ArbitrarilyLabeled x forgetLabel :: ArbitrarilyLabeled x -> x forgetLabel (ArbitrarilyLabeled x) = x What's the "global meaning" of `ArbitrarilyLabeled`? What control has `forgetLabel`…
Java and its consequences have been a disaster for the human race
> You'll need sendToUnverifiedEmail(email: UnverifiedEmail) and sendToVerifiedEmail(email: VerifiedEmail), and have code to get the right type to pass to the right function the in the right circumstance... Only if…
Yes, but the mapping doesn't change the relationship between the units of measure, which is the actual meaning as far as the type system is concerned. It's just a change of names.
> this is a classic case of not needing more types but needing proper names. Those are types.
> but I don't think e.g. Haskell98 can do it out of the box in an analogous way? This is basically the runtime representation of `data Email = Verified { email :: string } | Unverified { email :: string }`, but…
> That you introduce more coupling is a tradeoff. That the program (sometimes) gets harder to change is a tradeoff. You don't introduce more coupling, you document the coupling that already exists. If your program is…
> since the shared libs have generics and I'm always casting things. This indicates to me that you're trying to write code that isn't correct (not doesn't work, but rather only works because of implicit couplings…
It's about the meaning, not the raw bits. I might be able to duplicate your signature, but that doesn't mean I can sign documents for you.