-- | Miscellaneous utility functions module Misc ( double_just ) where -- | If given 'Nothing', return 'Nothing'. Otherwise wrap our argument -- in another 'Just'. This is used when handling optional XML -- elements that are optionally empty. If the element is missing, we -- want 'Nothing'. And if the contents are missing, we want -- 'Nothing' then too. But if something is present, we need @Just -- (Just foo)@ for the types to match up. -- -- ==== __Examples__: -- -- >>> double_just Nothing -- Nothing -- >>> double_just (Just 2) -- Just (Just 2) -- double_just :: (Maybe a) -> Maybe (Maybe a) double_just val = case val of Nothing -> Nothing just_something -> Just just_something