added ordering at the type level, i.e. iso and galois. TimeStateMonad is proper in that it respects galois connections (the way HoTT function morphisms respect iso)