type saison = Hiver | Été | Printemps | Automne; let x = Été; let x = {été|xxx|été}; let x = {%été|xxx|}; let là = (ça) => ça; let _ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŠšŽžŒœŸ = "ok"; type t = Æsop | Âcre | Ça | Élégant | Öst | Œuvre; let été = "summer"; let ça = "that"; let straße = "street"; let øre = "ear"; /* NFD representation */ let f = fun | Æsop => 1 | Âcre => 2 | Ça => 3 | Élégant => 4 | Öst => 5 | Œuvre => 6; let l = [été, ça, straße, øre]; let s = _ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŠšŽžŒœŸ; let () = assert (f(Élégant) /* NFC encoded */ == 4); let () = { let called = ref(false); let élégant /* NFC encoded */ () = called := true; élégant /* NFD encoded */ (); assert (!called); }; /* The following two defs should error with 'Multiple definition…' */ module Élégant /* NFC encoded */ = {}; module Élégant /* NFD encoded */ = {}; /** Quoted strings and extensions */ let x = {où|x|où}; let ko = {%Là |x|}; let x = {%âcre.name été|x|été}; let x = {%Âcre.sub été|x|été}; let x = {%âcre.m|x|}; let%À.ça x = (); let x = /* {été|*)|été}*/ (); let y = /* This is not a valid quoted string delimiter: {Été|*/ ();