ref: 63ee97c65c38dfd6a8100e8386610b10cb2c0d77
dir: /test/matchptr.myr/
use std
type loop = struct
l : loop#
val : int
;;
const main = {
var x : std.option(std.option(int)#)
var y : loop
var ok
x = `std.Some &(`std.Some 123)
match x
| `std.Some &(`std.None): std.put("failed\n")
| `std.Some &(`std.Some 666): std.put("failed\n")
| `std.Some &(`std.Some 123): ok = true
| _: std.put("failed\n")
;;
y.val=666
match &y
| &[.val=777]: std.put("failed\n")
| &[.val=123]: ok = ok && true
| &[.val=999]: std.put("failed\n")
| _:
;;
if ok
std.put("worked\n")
else
std.put("failed\n")
;;
}