blob: 3cb7bf40f158610f154206d6f61f44bee8d2c494 (
plain) (
tree)
|
|
-module(predef).
-export([array/1, dict/1, digraph/1, digraph2/1, gb_set/1, gb_tree/1,
queue/1, set/1, tid/0, tid2/0]).
-export_type([array/0, digraph/0, gb_set/0]).
%% Since Erlang/OTP 18.0 array() and so on are no longer pre-defined,
%% so there is nothing special about them at all.
-opaque array() :: atom().
-opaque digraph() :: atom().
-opaque gb_set() :: atom().
-type dict() :: atom().
-type gb_tree() :: atom().
-type queue() :: atom().
-type set() :: atom().
-type tid() :: atom().
-spec array(array()) -> array:array().
array(A) ->
array:relax(A).
-spec dict(dict()) -> dict:dict().
dict(D) ->
dict:store(1, a, D).
-spec digraph(digraph()) -> [digraph:edge()].
digraph(G) ->
digraph:edges(G).
-spec digraph2(digraph:graph()) -> [digraph:edge()].
digraph2(G) ->
digraph:edges(G).
-spec gb_set(gb_set()) -> gb_sets:set().
gb_set(S) ->
gb_sets:balance(S).
-spec gb_tree(gb_tree()) -> gb_trees:tree().
gb_tree(S) ->
gb_trees:balance(S).
-spec queue(queue()) -> queue:queue().
queue(Q) ->
queue:reverse(Q).
-spec set(set()) -> sets:set().
set(S) ->
sets:union([S]).
-spec tid() -> tid().
tid() ->
ets:new(tid, []).
-spec tid2() -> ets:tid().
tid2() ->
ets:new(tid, []).
|