Verificação de tipo dinâmica Erlang com o xerife

Há transformação de análise para valores de erlang de verificação de tipo em tempo de execução.

https://github.com/extend/sheriff.git

Aqui está um exemplo:

-compile({parse_transform, sheriff}).
-type my_type() :: {integer(), binary()}.

check_some_types
(Val) ->
true = sheriff:check(Val, my_type),
true = sheriff:check(Val, {external, type}),
true = sheriff:check(Val, "external:type()"),
true = sheriff:chack(Val, "{integer(), binary()}").

sheriff:check/2Retorno de função trueou falseem caso de sucesso ou erro.
Suporta tipos internos (definidos no módulo), externos (exportados em outro módulo) e tipos inline (definidos na string).

No momento, ele não suporta tipos em variáveis ​​como: sheriff:check(Val, Type)mas estamos trabalhando nisso)