Type Driven Domain Modelling, part 1