Behavioural implementation concepts for nondeterministic data types