https://alesr.github.io/posts/go-errors/
Go Error Handling: Sentinel vs Custom Types - alesr