structural typing