module Structures type public StructureType = struct val x: float end // or [] type public StructureType2 = val x: float // In Point3D, three immutable values are defined. // x, y, and z will be initialized to 0.0. type Point3D = struct val x: float val y: float val z: float end // In Point2D, two immutable values are defined. // Point2D has an explicit constructor. // You can create zero-initialized instances of Point2D, or you can // pass in arguments to initialize the values. type Point2D = struct val X: float val Y: float new(x: float, y: float) = { X = x; Y = y } end