[Haskell-cafe] dependent types

Jason Dagit dagit at codersbase.com
Mon Apr 12 12:04:07 EDT 2010

On Mon, Apr 12, 2010 at 4:32 AM, Ben Millwood <haskell at benmachine.co.uk>wrote:

> Personally I think this approach is all rather OO. The way that seems
> most natural to me is:
> moveVehicleAcrossBridge :: Bridge -> Vehicle -> Maybe Move
> moveVehicleAcrossBridge bridge { maxWeight = max } vehicle { weight = w }
>  | w > max = Nothing
>  | otherwise = {- ... moving stuff ... -}
> so you just test the properties directly as and when they are
> interesting to you.

The problem with this is that it doesn't address the question the OP had.
The OP's question was how to enforce things at the type level, but this,
while being a valid approach, allows heavy vehicles to attempt the bridge
crossing.  I agree it's a nice way of encoding it, but if type level
enforcement is called for then I don't see how it applies.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100412/309d6ef6/attachment.html

More information about the Haskell-Cafe mailing list