
hi, just out of curiosity, have you found any uses for the adjunction class? i spent quite a bit of time playing with adjunctions and they are very useful, but i haven't been able to find particulalry appealing programming examples. this is how i formulated them in haskell: class Functor u => Adjunction f u | f -> u, u -> f where ret :: a -> u (f a) bind :: f a -> (a -> u b) -> b run :: Adjunction f u => f (u a) -> a run m = m `bind` id liftF :: Adjunction f u => (a -> b) -> f a -> f b liftF f m = m `bind` \a -> ret (f a) cobind :: Adjunction f u => a -> (f a -> b) -> u b a `cobind` f = fmap f (ret a) -iavor Shae Matijs Erisson wrote:
In the true spirit of wikiwiki comes PreludeExts, all the tiny useful bits of code you think should be in the Prelude, but aren't.
http://www.haskell.org/hawiki/PreludeExts
Anyway, this started when someone on #haskell wanted a permutations function for the Nth time. I read Koen's "this should be in the Prelude" comment for the Nth time, and PreludeExts was born.
If you have small (or not so small) generally useful bits of code, you are invited to put them onto the PreludeExts page.
-- ================================================== | Iavor S. Diatchki, Ph.D. student | | Department of Computer Science and Engineering | | School of OGI at OHSU | | http://www.cse.ogi.edu/~diatchki | ==================================================