<div dir="ltr">%% I apologize if you get this message second time, but initially I posted it through google-groups<br>%% interface and discovered that it is not replicated to this mailing list.<br><br>Is there any way to write a spec for dialyzer that will tell that I expect module of certain behaviour?<br>
<br>Simplified example:<br><br>-module(my_db)<br><br>-callback table() -> iolist().<br><br>%% Instead of `Mod :: atom()' I want something that will reflect that only<br>%% modules which implements `my_db' behaviour are allowed.<br>
-spec create(Mod :: atom(), Vals :: [iolist(), ...]) -> iolist().<br>create(Mod, Vals) -><br>    Table = Mod:table(),<br>    ["INSERT INTO ", Table, " VALUES (", string:join(Vals, ", "), ");"].<br>
</div>