1-module(ktn_type). 2 3-export([ 4 get/1 5 ]). 6 7-type type() :: integer 8 | float 9 | list 10 | tuple 11 | binary 12 | bitstring 13 | boolean 14 | function 15 | pid 16 | port 17 | reference 18 | atom 19 | unknown 20 . 21 22-spec get(term()) -> type(). 23get(X) when is_integer(X) -> integer; 24get(X) when is_float(X) -> float; 25get(X) when is_list(X) -> list; 26get(X) when is_tuple(X) -> tuple; 27get(X) when is_binary(X) -> binary; 28get(X) when is_bitstring(X) -> bitstring; % will fail before e12 29get(X) when is_boolean(X) -> boolean; 30get(X) when is_function(X) -> function; 31get(X) when is_pid(X) -> pid; 32get(X) when is_port(X) -> port; 33get(X) when is_reference(X) -> reference; 34get(X) when is_atom(X) -> atom; 35 36get(_X) -> unknown. 37