class PolicyTrie {

    static PolicyTrie fromPolicy(final Iterable<PolicyEntry> policy) {
        checkNotNull(policy, "policy to interpret");
        final PolicyTrie prototype = new PolicyTrie();
        policy.forEach(prototype::addPolicyEntry);
        return prototype;
    }

    private  PolicyTrie();
    private  PolicyTrie(final GrantRevokeIndex grantRevokeIndex, final Map<JsonKey, PolicyTrie> children);

}