The only reasonable default assumption is that even "idiot" parents have more interest in the survival and well-being of their own children than the vaccination industry equivalent of the Sackler family.
> All of your data structures have types ... Static typing just means that you annotate ...
Programs have (static) types, data does not. Static typing removes correct programs from the language. Try this in some ML-like language:
let selfapply f = (f f) in
let identity x = x in
selfapply identity 42
If you transcribe this to (e.g.) Lisp, it will return the number 42. The program is short, simple, and safe, but well-regarded static type systems can't cope.
> traits that are highly correlated with climate denialism
Sure. Since it is socially so much easier to be a secretly skeptic climate congregationist than an open climate denier, I'd bet one such correlated trait would be extreme honesty.
The search engine coughed up a PDF. I randomly opened it (p. 173) and read up to this author-provided "TL;DR" on p.176:
The main reason, however, for thinking that sociobiology is false, is the simple
one I gave at the beginning: that it is obvious that human beings are the most
intelligent and capable things on earth. But genes are not human. Therefore (etc.).
True if you don't cooperate at all with the collector, but easily avoided in many cases. E.g., when using Boehm, try using gc_malloc_atomic() for data that you know cannot contain pointers, like your encryption buffers.
> semantically inaccessible, not syntactically inaccessible.
You can give the semantics of everything that happens in a safe d-t language in terms of church encoded tag-value pairs and yet the programmer can't break the abstraction because abstraction-breaking operations are syntactically unavailable.
It should count as testament to the success of dynamic typing that the abstractions are so safely enforced that you can squint and suddenly the whole language is semantically founded on them.
> "A type system is a syntactic method for enforcing levels of abstraction in programs. " [1]
> What syntactic methods are used in dynamically "typed" languages?
Interesting. You may have unwittingly provided one of the best justifications for the term "dynamically typed" I've seen so far.
That's because operations that violate a (safe) dynamically typed language's chosen set of abstractions (built using bits, church encoding, whatever) are syntactically inaccessible.
Maybe that's partly because Haskell can easily become a bit too elegant. Between all the currying and combinators, the type helps to understand code "top down", i.e. when you don't have studied and memorized all "bottom up" component parts.
Certainly not in the way "statically typed" is usually understood.
Containers (outside of specialized arrays) aren't parameterized, so every time you extract a value from a list or map, the "static type" is the top type. SBCL remains essentially unityped with islands of type propagation for better performance of (mostly) numeric code.
The only reasonable default assumption is that even "idiot" parents have more interest in the survival and well-being of their own children than the vaccination industry equivalent of the Sackler family.