blob: cdcaa5f9e8275a6bdd0b5d2ee9f2f9dd70ec9699 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
|
-module(opaque_adt).
-export([atom_or_list/1]).
-opaque abc() :: 'a' | 'b' | 'c'.
-spec atom_or_list(_) -> abc() | list().
atom_or_list(1) -> a;
atom_or_list(2) -> b;
atom_or_list(3) -> c;
atom_or_list(N) -> lists:duplicate(N, a).
|