трейт (интерфейс) в одном месте, тип во втором, реализация (имплементация) в третьем
Ну в хаскелле есть с этим траблы, в расте пока ограничение есть: для своего типа мы можем реализовать любой трейт, для чужой структуры только свой, и если трейт реализован сбоку, то это надо явно импортить