[Haskell-cafe] Has anyone looked into adding subtyping to Haskell?
Donald Bruce Stewart
dons at cse.unsw.edu.au
Thu May 31 21:54:03 EDT 2007
stefan:
> Al,
>
> >Has there been any work on extending Haskell's type system with
> >structural subtyping?
>
> Koji Kagawaga. Polymorphic variants in Haskell. In Andres Loeh,
> editor, Proceedings of the 2006 ACM SIGPLAN Workshop on Haskell,
> Portland, Oregon, USA, September 17, 2006, pages 37--47. ACM Press,
> 2006. [1]
>
> >What is the canonical solution to the expression problem in Haskell?
>
> Not canonical but Loeh and Hinze have proposed open data types:
>
For a short term solution, we used Typeable + type classes to provide a
open Message data type. Similar techniques are used in Simon Marlow's
extensible exceptions paper.
-- An open Message type
class Typeable a => Message a
--
-- A wrapped value of some type in the Message class.
--
data SomeMessage = forall a. Message a => SomeMessage a
--
-- And now, unwrap a given, unknown Message type, performing a (dynamic)
-- type check on the result.
--
fromMessage :: Message m => SomeMessage -> Maybe m
fromMessage (SomeMessage m) = cast m
-- Don
More information about the Haskell-Cafe
mailing list