A type safe file path data structure