using Nemerle.IO; [Record] class A { public X : int; public SomeProp : string { get { "" } } public BoolProp : bool { set { _ = value; } } } class C { public static Main():void { match (A (42)) { | A where (X = 42, SomeProp = 42) => // E: expected int, got string in matched value print ("bad\n"); | A where (X = 42, SomeProp = 45) => // E: expected int, got string in matched value print ("good\n"); | _ => print ("wtf?\n"); } match (A (42)) { | A where (BoolProp = false) => // E: the type `A' has no field named `BoolProp' print ("great\n"); } } }