# What do people mean by capabilities and capacities?

Someone made a casual remark to me about the terminology of capabilities and capacities, in the context of threads, processors and runtime systems, particularly their theoretical modelling.

For example, in Haskell, an OS thread that is started to schedule work for a single logical processor (hardware thread) is called a capability. Where does this terminology come from? I'm not sure what it really means.

The person who made the casual remark thought that there is also the related concept of capacities, but neither of us are sure.

• I think that you are talking about the GHC terminology “capability,” which has nothing to do with “capacity” as far as I know. In my opinion, the question is complicated in an unnecessary way because you are mixing two unrelated terms. – Tsuyoshi Ito Dec 20 '11 at 14:37
• Yeah, I know that it is a term used in GHC. I say that in the question. I want to know where it came from -- is it from the literature in which case does it have a formal definition, or is it just a random word that they appropriated? If so, what were they trying to say that thread wouldn't? My colleague thinks that he has seen a related term capacity in the literature, but can't remember where. – Steve Swiss Dec 20 '11 at 15:09
• Why don't you ask the Haskell people? – Raphael Dec 20 '11 at 17:23
• You only mention Haskell in the question. Do not confuse a language with one of its implementations. – Tsuyoshi Ito Dec 20 '11 at 23:11
• You thought that the term “capability” is something universal to Haskell. I claimed in my first comment that it is a GHC-specific terminology. You responded, “Yeah, I know that it is a term used in GHC. I say that in the question.” You are completely missing the point because you are confusing Haskell with GHC. – Tsuyoshi Ito Dec 21 '11 at 13:26

A comment in capability.h says

// The Task currently holding this Capability.  This task has