A program or patch can be more or less complex, and comprise one or several components "layers", like a tree structure. Such structures consist of patches embedded into other patches. Processes embedded in higher-level programs are called abstractions.
Abstraction aims at using a program as a function within another program.
Abstractions allow to :
define and visualize the structure of a complex program,
bring modularity in a program,
control the development of a compositional architecture and processes, or considering it from another prospect,
gain space in a patch editor...
Abstraction is a very convenient procedure – an abstracted program can be complex and "bulky". Its representation as an object also shows what an abstraction actually is : a coherent and delineated function inside another program. This is the crucial, essential property of functional abstraction.