deftype Result.Error, error: Error, as: -> defstatic new error: Error, as: -> Result.Error{ error: error } end end defimpl Result, for: Result.Error, as: -> def ok? as: -> false def error? as: -> true def unwrap as: -> Huia.Primitive.panic_process(@error) end def expect message: String, as: -> Huia.Primitive.panic_process(Error.new(message: message, cause: @error)) end end