blob: da5d61b7c4f3e0d8b8cb361535b7618163f73b90 [file]
bad : <X Buf|Y U8> -> {one : <X Buf|Y U8>,two : <X Buf|Y U8>}#;
foo : <X Buf|Y U8>
-> <C Buf|D {one : <X Buf take|Y U8>,two : <X Buf take|Y U8>}#>;
foo v = case v : <X Buf|Y U8> of
X b -> C (b : Buf) : <C Buf
|D {one : <X Buf take|Y U8>
,two : <X Buf take|Y U8>}#>
| z -> D ({one = z : <X Buf take|Y U8>
,two = z : <X Buf take|Y U8>} : {one : <X Buf take|Y U8>
,two : <X Buf take
|Y U8>}#) : <C Buf
|D {one : <X Buf take
|Y U8>
,two : <X Buf take
|Y U8>}#>
end : <C Buf|D {one : <X Buf take|Y U8>,two : <X Buf take|Y U8>}#>;
okay : <X U8|Y U8> -> {one : <X U8|Y U8>,two : <X U8|Y U8>}#;
okay z = {one = z : <X U8|Y U8>,two = z : <X U8|Y U8>} : {one : <X U8|Y U8>
,two : <X U8|Y U8>}#;