    interpret f = f . runIdentityT

-- | A free 'Pointed'
instance Pointed f => Interpret Lift f where
    retract   = elimLift point id
    interpret f x = elimLift point f x

-- | A free 'Pointed'
instance Pointed f => Interpret MaybeApply f where
    retract     = either id point . runMaybeApply
    interpret f = either f point . runMaybeApply

instance Interpret Backwards f where