In Haskell, why is import of abstract type X not necessary, when using functions which take arguments of type A
Why is import of an abstract type not necessary, when using functions which work with values of that type