Explicit result/failure type
cleaned up composition operators