mouse{ val= x: 1000 y: 200 buttons: true fn| sub: (Num,Num)->(Num); floatify: (Num,Num)->(Float); able: (None)->(None); foo: (None)->(Num); }