is would require the above kind of instances for
deepSeq to allow use of functions in conjunction with the control
operation.
There are obviously some performance issues with this approach.
--
Esa Pulkkinen
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
Of course, this doesn't negate any other reasons you might have for
exposing the constructors [e.g. if the data type is used to represent an
interface], but if you want to build abstract data types, those should
be at higher level of abstraction than the concrete types.
--
Esa Pulkkinen
_
nc2 f) = f arg1 arg2
instance Functor ((,,) a b) where
fmap f (x,y,z) = (x,y,f z)
instance Functor (Func2 a b) where
fmap f (Func2 g) = Func2 (\a b -> f (g a b))
Here, 'leftAdjunct' is a generalization of curry and rightAdjunct is a
generalization of uncurr