You will write and test your solution on https://try.ocamlpro.com/. Copy your code and paste it into a text file Exercise 1: make char map: To creates a standard library map, we first have to use the Map.Make functor to produce a module that is specialized for the type of keys we want. Type the following in utop: # module CharMap = Map.Make(Char);; The output tells you that a new module named CharMap has been defined, and it gives you a signature for it. Find the values empty, add, and remove in that signature. Explain their types by your own words. Exercise 2: use char map Using the CharMap you just made, create a map that contains the following bindings: ‘A’ maps to “Alpha” ‘E’ maps to “Echo” ‘S’ maps to “Sierra” ‘V’ maps to “Victor” Use CharMap.find to find the binding for ‘E’. Now remove the binding for ‘A’. Use CharMap.mem to find whether ‘A’ is still bound. Use the function CharMap.bindings to convert your map into an association list. Exercise 3: bindings Investigate the documentation of the Map.S signature to find the specification of bindings. Which of these expressions will return the same association list? CharMap.(empty |> add ‘x’ 0 |> add ‘y’ 1 |> bindings) CharMap.(empty |> add ‘y’ 1 |> add ‘x’ 0 |> bindings) CharMap.(empty |> add ‘x’ 2 |> add ‘y’ 1 |> remove ‘x’ |> add ‘x’ 0 |> bindings) Check your answer in utop