[Haskell-cafe] ANN: Buster 0.99.1, a library for application
orchestration that is not FRP
Jules Bean
jules at jellybean.co.uk
Thu Apr 2 11:22:37 EDT 2009
Jeff Heard wrote:
> It is parametrically polymorphic in a. And no, it's an arbitrary
> decision, BUT... it allows me and other users to define generally
> useful behaviours and widgets to package with the library using the
> basic types without locking down 'a'. The EventData type looks like
> this:
>
> data Event a { ..., edata :: EData a, ... }
>
> data EData a = EChar Char
> | EString String
> | EStringL [String]
> | EByteString ByteString
> | EByteStringL [ByteString]
> | EInt Int
> | EIntL [Int]
> | EDouble Double
> | EDoubleL [Double]
> | EBool Bool
> | EBoolL [Bool]
> | EOther a
> | EOtherL [a]
Maybe I wasn't clear, and probably I'm being dense. I understand what
you've done - I looked at the type declarations before commenting - but
I don't understand why.
Why is it useful to be able to use basic types without locking down 'a'?
Why is it useful to have a value of type "Event FooBar" which, in
apparent defiance of the FooBar parameter, actually contains a value of
type Double?
Jules
More information about the Haskell-Cafe
mailing list