Following a suggestion from Cale Gibbard I added a convenient feature to Djinn.
You can now define type classes and have contexts on functions.
As with Djinn in general there is no polymorphic instantiation, so the methods of a class must not mention any type variables, but the class parameters. This makes the whole thing rather limited, but it was a quick hack.
Sample session
Welcome to Djinn version 2007-04-20.
Type :h to get help.
Djinn> f ? (Eq a) => a -> a -> (b,c) -> Either b c
f :: (Eq a) => a -> a -> (b, c) -> Either b c
f a b =
case a == b of
False -> \ (c, _) -> Left c
True -> \ (_, d) -> Right d
The Djinn source is at darcs.augustsson.net/Darcs/Djinn as usual.
Thanks Cale!
No comments:
Post a Comment