fn foo<T>(x: T)
    where
        T: Debug
    {

    fn foo<T>(x: T) where T: Debug {

    impl<T> X for T
    where
        T: Debug
    {

    impl<T> X for T where T: Debug {

    struct X<T>
    where
        T: Debug
    {

    struct X<T> where T: Debug {

    enum X<T>
    where
        T: Debug
    {

    enum X<T> where T: Debug {

    union X<T>
    where
        T: Debug
    {

    union X<T> where T: Debug {