sourceContractMini.tri (649B)
1 -- An independent tiny Result protocol: checks use only withContract and 2 -- matchResult, rather than importing the huge base closure into the Zig gate. 3 err msg rest = (onFail onOk : onFail msg rest) 4 ok value rest = (onFail onOk : onOk value rest) 5 matchResult onFail onOk result = result onFail onOk 6 withContract contract value = contract value 7 accept value = ok value t 8 reject value = err "denied" t 9 replace value = ok 2 t 10 checked @accept =@replace (value : value) 11 checkedNamed value@accept =@replace value 12 both @accept @accept =@replace (a b : a) 13 first @reject @accept =@replace (a b : a) 14 second @accept @reject =@replace (a b : a) 15 main = __EXPR__