FD3.hs:15:15: error: • Occurs check: cannot construct the infinite type: a ~ (String, a) arising from a functional dependency between: constraint ‘MkA (String, a) a’ arising from a use of ‘mkA’ instance ‘MkA a1 a1’ at FD3.hs:12:10-16 • In the expression: mkA a In an equation for ‘translate’: translate a = mkA a • Relevant bindings include a :: (String, a) (bound at FD3.hs:15:11) translate :: (String, a) -> A a (bound at FD3.hs:15:1)