1. Switch from dependency on package Haskell98 to the package base.

2. Add FunDep to class

3. Change from Instance to InstanceScheme
Resolve functional dependency
Some tests on functional dependency