# The module

    <*PRAGMA LL*>

The `FilterClass` interface reveals the representation of a filter. If you are implementing a subtype of `Filter.T`, you can import `FilterClass` to gain access to the child field.

    INTERFACE FilterClass;

    IMPORT Filter, VBT;

    REVEAL Filter.T <: Public;

    TYPE Public =
      Filter.Public OBJECT <* LL >= {SELF, VBT.mu} *>
        ch: VBT.T
      END;

A filter `f` is a split with the single child `f.ch`, or with no children if `f.ch=NIL`.

The `beChild` method initializes `ch` and calls `Split.T.beChild`. The `succ`, `pred`, `nth`, `index`, and `locate` methods use the `ch` field in the obvious way. The `misc`, `key`, `read`, `write`, `reshape`, `shape`, and `axisOrder` methods forward to the child.

    END FilterClass.