stak_vm/type.rs
1use crate::Tag;
2
3/// A type in Scheme.
4#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
5pub enum Type {
6 /// A pair.
7 #[default]
8 Pair,
9 /// A null.
10 Null,
11 /// A boolean.
12 Boolean,
13 /// A procedure.
14 Procedure,
15 /// A symbol.
16 Symbol,
17 /// A string.
18 String,
19 /// A character.
20 Character,
21 /// A vector.
22 Vector,
23 /// A byte vector.
24 ByteVector,
25 /// A record.
26 Record,
27 /// A foreign object
28 Foreign = Tag::MAX as _,
29}