pub fn split_app<'a, Id, T>(self_: &'a T) -> (Option<&'a T>, Cow<'_, [T]>)where T: Deref<Target = Type<Id, T>> + Clone, Id: 'a,