adapt :: Timeline (Either t (t,t),s) t -> Timeline (Maybe (Either t (t,Maybe t)),s) t
adapt timeline = 
    let go = Bifunctor.first (Just . bimap id (fmap Just))
    in  Bifunctor.first go timeline
adapt :: Timeline (Either t (t,t),s) t -> Timeline (Maybe (Either t (t,Maybe t)),s) t
adapt timeline = 
    let go = Bifunctor.first (Just . bimap id (fmap Just))
    in  Bifunctor.first go timeline
adapt timeline = 
    let go = Bifunctor.first (Just . bimap id (fmap Just))
    in  Bifunctor.first go timeline