Arc Forumnew | comments | leaders | submitlogin
1 point by absz 6128 days ago | link | parent

But if you think about it as an abstract base class/mixin/interface, then the standard terminology is "is-a". For instance, in Ruby:

  module MyMixin # Like an interface
    ...
  end
  
  class MyClass
    includes MyMixin # Like "implements MyMixin"
    ...
  end
  
  foo = MyClass.new
  if foo.is_a? MyMixin
    puts "is-a"
  else
    puts "has-a"
  end
  # Output: "is-a"
I'd rather see the "basic types" not as a collection of basic components, but as a collection of basic interfaces one can implement, or basic type classes one can be a member of, or what-have-you; what I'd really rather do is duck most of it, like Ruby does. If I can define car and cdr for my type, map should work seamlessly.

Regardless, it sounds like a lot of the voices here are in agreement over some common set of the features this plan proposes, which is a good thing. Perhaps we should set the naming quibbles aside for now and try to flesh that out. Or perhaps we should settle on a name for what we are about to flesh out. Either way, it looks like something good could well emerge from this thread.



2 points by almkglor 6127 days ago | link

I vote we settle on a name first, because we need it to refer to stuff when we talk about it ^^

-----