Parameterizing over finite maps
First attempt
Corresponds to the following Haskell code:
class FiniteMap fm where empty :: v -> fm k v lookup :: fm k v -> k -> v update :: k -> v -> fm k v -> fm k v
Problem: too general
No implementation can be completely polymorphic in the type of keys
Also a reminder of the problem with type classes for container types in Haskell