public struct Coordinate { /// Should default to public. let latitude: Double /// Should default to public. let longitude: Double /// Should default to public init?(latitude: Double, longitude: Double) { guard validate(latitude: latitude, longitude: longitude) else { return nil } … } } internal extension Coordinate { /// Convenience initialiser to me used internally within the module. init(coordinate: CLLocationCoordinate2D) { … } }