В F# есть такая возможность, определить типа наподобие интерфейса и указывать различные реализации
type Db<'a> = { Save : 'a -> unit } // <=!!!
let mock = { Db.Save = fun (x:string) -> printfn $"{x} is saved" }
mock.Save "ok"
Пробовал аналогично определить поле в структуре раста, но не получается.
Принципиально не возможно? Как тогда гибко менять реализации в расте?