permute method
Generates another instance with some deterministic function.
The only exception is Kind.forNull (because it has no other instances).
Implementation
@override
T permute(T instance) {
final built = builtKind.permute(instanceToBuiltKind(instance));
return instanceFromBuiltKind(built);
}