PointTypeAlgebra and some side-effectful and asynchronous operations that can produce and consume those generic points PointTypeService. My entire app will be defined in terms of generic points and the app shouldn't peek at the specific point type and should be agnostic from it.layerSpecific1 and layerSpecific2) and each layer would be consistent.