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}