contextCompletedness :: (t -> (Either t (t,Maybe t))) 
                     -> Context s t 
                     -> Context (Maybe (Either t (t,Maybe t)),s) t
contextCompletedness tf (Context {completed,current,pending}) =
    Context (adapt (instants completed)) 
            (Just (tf (extract completed)),current) 
            (fmap (fmap (\s -> (Nothing,s))) pending)
contextCompletedness :: (t -> (Either t (t,Maybe t))) 
                     -> Context s t 
                     -> Context (Maybe (Either t (t,Maybe t)),s) t
contextCompletedness tf (Context {completed,current,pending}) =
    Context (adapt (instants completed)) 
            (Just (tf (extract completed)),current) 
            (fmap (fmap (\s -> (Nothing,s))) pending)
contextCompletedness tf (Context {completed,current,pending}) =
    Context (adapt (instants completed)) 
            (Just (tf (extract completed)),current) 
            (fmap (fmap (\s -> (Nothing,s))) pending)