In this case you can leave generic definitions in the -callback attributes and write the fully specified specs in the callback module:<div><br></div><div>%% Behaviour module:</div><div><span style="line-height: 18px; ">...</span></div><div><span style="line-height: 18px; ">-callback step(State :: term()) -> NewState :: term().</span></div><div><span style="line-height: 18px;">...</span></div><div><span style="line-height: 18px;"><br></span></div><div><span style="line-height: 18px;">%% Callback module:</span></div><div><span style="line-height: 18px;">...</span></div><div><span style="line-height: 18px;">-type state() :: #state{}.</span></div><div><span style="line-height: 18px;">...</span></div><div><span style="line-height: 18px;">-spec step(state()) -> state().<br></span>...</div><div><br></div><div>Dialyzer will check that your specs are subtypes of the corresponding callback attributes. What added benefit would you gain from your suggestion?</div><div><br></div><div>Stavros</div><div><br>On Tuesday, April 24, 2012 10:26:08 PM UTC+3, Francesco Mazzoli wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On 24/04/12 19:10, Stavros Aronis wrote:<br>> Hi Francesco,<br>><br>> Do you mean that after your update these types have to be moved within<br>> the behaviour file itself? If this is the case, you could export them<br>> using the "-export_type" attribute and then use them as remote types:<br>> "behaviour_module:type_name()"<wbr>. You can use them in this way in both<br>> specs and other -type definitions and at least Dialyzer won't have any<br>> problem at all.<br>><br>> Stavros<p>No, that's not what I want.</p><p>To give a small example of what I want to do, a behaviour might define</p><p>    -callback step(state()) -> state().</p><p>where `state()' is not define locally in the behaviour, but in each <br>implementing module.</p><p>I hope I made myself more clear.</p><p>Francesco.<br>______________________________<wbr>_________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br></p><p></p><p></p><p></p><p></p><p></p></blockquote></div>