...
class Vehicle a wheredata Car data Truckinstance Vehicle Car whereinstance Vehicle Truck whereNow you can have things that take a Car or a Truck or they can take a Vehicle instead. moveVehicle :: Vehicle v => v -> Simulation ()
Jason