public function get() {
        if( $this->value !== null ) return $this->value;
        if( $this->error !== null ) throw $this->error;
        throw new \LogicException("Value and error cannot both be null");
    }