Implement structural types