Hello all I've a type family DUnit that I use to allow the unit type, usually a Double, of geometric things (points, vectors...) to be parametric:
> type family DUnit a :: * E.g for Points > data Point u = P2 u u > type instance (Point u) = u I can make an type instance for Maybe like this, using DUnit on the right hand side: > type instance DUnit (Maybe a) = DUnit a But pair is a problem. Is there a way to assert both parts of a pair should have the same DUnit? The code below won't compile but it should illustrate what I'm trying to do. > type instance (DUnit a ~ DUnit b) => DUnit (a,b) = DUnit a I don't want to pick an arbitrary side, e.g: > type instance DUnit (a,b) = DUnit a or > type instance DUnit (a,b) = DUnit b Thanks Best wishes Stephen _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
