with Ada.Numerics.Generic_Complex_Types, Ada.Containers.Vectors; package Datatypes is type Quantity is digits 18; package Plane is new Ada.Numerics.Generic_Complex_Types (Real => Quantity); type Particle is record Place : Plane.Complex; Solid : Boolean; Density : Quantity := 0.0; Acceleration : Plane.Complex := Plane.Compose_From_Cartesian (0.0, 0.0); Velocity : Plane.Complex := Plane.Compose_From_Cartesian (0.0, 0.0); end record; function Create (X, Y : in Quantity; Solid : in Boolean) return Particle; package Particle_Vectors is new Ada.Containers.Vectors (Index_Type => Positive, Element_Type => Particle); subtype Particle_Vector is Particle_Vectors.Vector; end Datatypes;