Optional is a type alias for POptional which fixes the type arguments and restricts the POptional to monomorphic updates.