
Hi Leza,
You can make a closed type family (not associated with the class as you have):
type family ComplexSignalType e where
ComplexSignalType [C e] = [C e]
ComplexSignalType [e] = [C e]
But then you pretty much have to define all instances in the same
module. If you instead use functional dependencies (FDs):
class Complexable s cs | s -> cs
instance Complexable [e] [C e]
instance Complexable [C e] [C e]
you can put these instances in separate modules. But the disadvantage
is that you have to deal with more type variables.
Regards,
Adam
On Mon, Jul 21, 2014 at 5:29 PM, Leza Morais Lutonda
Hello haskell-café,
I just started working with type families, and come with some difficulties. Now I have a class:
class (...) ⇒ Complexable s where type ComplexSignalType s ...
Is there a possibility to have this two instances (in any way)?
instance (RealFloat e) ⇒ Complexable [e] where type ComplexSignalType [e] = [ℂ e]
instance (RealFloat e) ⇒ Complexable [ℂ e] where type ComplexSignalType [ℂ e] = [ℂ e]
Thanks. -- Leza Morais Lutonda, Lemol-C http://lemol.github.io
50 Aniversario de la Cujae. Inaugurada por Fidel el 2 de diciembre de 1964 http://cujae.edu.cu
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe