WIP
WIP
WIP: experimenting with member types instead of type parameters for Witness.