The result of an operation that can succeed or fail. A Success holds the output of the operation, and a Failure holds the reason the operation failed.
Success
Failure
Success(a:A)
Failure(message:String, pos:Null<PosInfos>)