Kysymys on siitä, miten todellinen, viitattu aliohjelma liitetään omaan viittausympäristöönsä, missä näkyvyysalueessa aliohjelma on.
Tarkastellaan seuraavaa esimerkkiä. (Pyrin kirjoittamaan yksityiskohdat hieman "javamaisesti" (tai "ceemäisesti"), mutta Javasta poiketen tässä metodi voi sisältää metodeita ja oletusnäkyvyys on "sisältä ulos" Algolin ja Pascalin tapaan.)
program Esimerkki { procedure A(i:int; P():procedure) { procedure B() { // A:n sisäinen aliohjelma print(i); // tämän i:n merkitys on se kiinnostava kohta } // A:n algoritmi (so. A:n "pääohjelma") if (i > 1) P(); // muodollisen proseduuriparametrin kutsu! else A(2, B); // B annetaan todellisena parametrina rekursiivisessa kutsussa } // A:n määrittely päättyy procedure C() { // C on tyhjä proseduuri, A:n kanssa rinnakkainen } // pääohjelma A(1, C); // C annetaan todellisena parametrina }Tässä esimerkissä kyse on siitä, mihin A:n muodollisen parametrin i versioon B:ssä viitataan, kun A on kutsunut itseään rekursiivisesti. A:sta on kaksi aktivointia, jotka molemmat ovat määritelleet i:n, ja siis molemmilla on oma i.
Syvässä sidonnassa (deep binding) käytetään A:n ensimmäisen aktivoinnin i:tä, matalassa sidonnassa (shallow binding) viimeisimmän aktivoinnin i:tä.
Katso myös toisten harjoitusten tehtävää 12!
Tämä saattaa näyttää äärimmäisen keinotekoiselta ongelmalta, mutta valinta on erityisesti funktionaalisten kielten kohdalla mitä merkittävin päätös!