Emergent typing
Emergent typing is a name that was coined by Tav for a typing discipline in programming languages invented by me and him independently, a kind of blend of strong and duck typing.
It’s kind of a formalization of the type system of Scheme (and as such
can be implemented rather simply in that programming language). The idea
is that you have types that are strongly defined by their behaviours
rather than by definitions. So you can define an integer as something
which responds true to the integer?
function, and a natural number as
something which is both an integer and a value greater than zero.
Then you can also create disjoint types in any of the normal ways a programming language might provide, and on top of those disjoint types you can implement more types based on the emergent properties of instances of those types.
Emergent typing is actually just a name for gradual dependent typing?