pub trait Stacklike {
type ElemSize: Copy;
type StackPtr;
// Required methods
unsafe fn new(desc: Descriptor) -> Result<Self>
where Self: Sized;
fn create_sp(&self, ptr: *mut c_void) -> Result<Self::StackPtr>;
fn set_sp(&mut self, sp: Self::StackPtr);
fn sp(&self) -> *mut c_void;
}