[Haskell-cafe] Haskell scripting system (please help me simplify the design)

Joel Reymont joelr1 at gmail.com
Thu Oct 27 12:26:57 EDT 2005


Something else just occurred to me... How would I represent "no  
command" using the Unstuff monad? I'm returning Maybe Command right  
now, would this change?

On Oct 27, 2005, at 4:59 PM, Robert Dockins wrote:

> You could consider creating a monad for the "unstuff" part of the  
> operation that would hide dealing with the FastString, the tupling  
> and the case analysis on Maybe.
>
> Your code might then look like:
>
> class (Eq a) => Packet a where
>    unstuff :: Unstuff a
>    stuff :: a -> P.FastString
>    size :: a -> Int
>
> instance Packet BaseTableState where
>   unstuff = unstuffprops baseTableStateProps >>= return .  
> BaseTableState
>   sutff (BaseTableState a) = stuffprops a
>   size (BaseTableState a) = sizeprops a
>
>
> where Unstuff is the type constructor for your monad.

--
http://wagerlabs.com/







More information about the Haskell-Cafe mailing list