In article <[EMAIL PROTECTED]>, Brandon Michael Moore <[EMAIL PROTECTED]> wrote:
> Actually, I'm surprised someone else has a use for this. I wanted > circular instances for playing with the paper "Recursion Schemes from > Comonads". What are you trying to do? It's for HScheme. The Object type has a pluggable reference type, so that both IO-based and pure functional Scheme variants are possible. The general idea is something like this: data Object ref = NilObject | PairObject (ref (Object ref)) (ref Object ref)); instance (Eq (ref (Object ref))) => Eq (Object ref) where etc. newtype Constant a = MkConstant a deriving Eq; equalConstant :: Object Constant; equalConstant = (==); equalIORef :: Object IORef; equalIORef = (==); -- Ashley Yakeley, Seattle WA _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell