implement Tied type constraint