Se controlli il tipo che inferisce il compilatore con il comando :type vedrai che e` (RealFrac a, Integral a) => a -> [a]. Il problema e` che ovviamente non trova un tipo che sia sia un'istanza di RealFrac e di Integral.
Per risolvere il problema devi riscrivere la funzione usando delle funzioni della classe Integral, ovvero
il cui tipo e` (Integral a) => a -> [a]codice:bConv x | x == 0 = [0] | x == 1 = [1] | otherwise = (mod x 2) : bConv (div x 2)
Non prenderlo per oro colato, ma il principio a grandi linee dovrebbe essere questo.