
Well, "Either" was an adhoc choice and should be application specific. Another h98 solution would be to keep the common part in a single constructor: data UserOrAppData = AppData | UserData UserId UTCTime data AccessToken = AccessToken UserOrAppData AccessTokenData or: data AccessToken a = AccessToken a AccessTokenData C. Am 14.08.2012 18:32, schrieb Felipe Almeida Lessa:
2012/8/14 Christian Maeder
: Why not use plain h98?
data UserAccessToken = UserAccessToken UserId AccessTokenData UTCTime data AppAccessToken = AppAccessToken AccessTokenData
type AccessToken = Either UserAccessToken AppAccessToken
Convenience. It's better to write
case token of UserAccessToken ... -> ... AppAccessToken ... -> ...
than
case token of Left (UserAccessToken ...) -> ... Right (UserAccessToken ...) -> ...
Also, it's easier to write
isValid token
than
isValid (Right token) -- or is it Left?
Cheers, =)