rue_types/
types.rs

1mod alias;
2mod apply;
3mod atom;
4mod function;
5mod pair;
6mod structs;
7mod unions;
8
9pub use alias::*;
10pub use apply::*;
11pub use atom::*;
12pub use function::*;
13pub use pair::*;
14pub use structs::*;
15pub use unions::*;
16
17use id_arena::Id;
18
19pub type TypeId = Id<Type>;
20
21#[derive(Debug, Clone)]
22pub enum Type {
23    Unresolved,
24    Generic,
25    Never,
26    Ref(TypeId),
27    Atom(Atom),
28    Pair(Pair),
29    Alias(Alias),
30    Struct(Struct),
31    Function(FunctionType),
32    Apply(Apply),
33    Union(Union),
34}