use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("not implemented yet: {0}")]
NotImplemented(&'static str),
#[error("parse error: {0}")]
Parse(String),
#[error("verify error: {0}")]
Verify(String),
#[error("runtime error: {0}")]
Runtime(String),
#[error("type error: expected {expected}, got {got}")]
TypeMismatch { expected: String, got: String },
#[error("io: {0}")]
Io(#[from] std::io::Error),
#[error("channel closed")]
ChannelClosed,
}