#include "control-context.lp".

%body
    function(a).
    function(b).
    function(c).

    scope(0..3).
    cfa_call(0, c).
    cfa_call(1, c).
    cfa_parent(0, function(a)).
    cfa_parent(1, function(b)).
    cfa_parent(2, function(c)).
    cfa_parent(3, scope(2)).

    bind_scope(0, weak(a)).
    bind_scope(1, weak(b)).

    bind_scope(0, hard).
    bind_scope(1, hard).

%test weak and hard context
    :- bind_scope(2, weak(_)).
    :- not bind_scope(2, hard).

%test rules:
    bind_scope(X, rule) :- bind_scope(X, hard), context_rule_visibility(X, 2).
    :- not bind_scope(3, rule).
