less than serious - PreludeExts

Iavor S. Diatchki diatchki at cse.ogi.edu
Fri Jan 16 10:00:44 EST 2004

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 
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)


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.
>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               |

More information about the Libraries mailing list