structural subtypingってどうゆう時に使うものなんですか?