data SimpleData = PtrAndSize AnyPtr Int

record Complicated where
  constructor MkComplicated 
  simple : SimpleData 

record MoreComplicated where
    constructor MkMoreComplicated
    something : Complicated

record EvenMoreComplicated where
    constructor MkEvenMoreComplicated
    somethingEven : MoreComplicated 

data TooComplicatedToBeTrue : (something : EvenMoreComplicated) -> Type where
    SomethingVeryComplicatedIs :
        TooComplicatedToBeTrue
            (MkEvenMoreComplicated (MkMoreComplicated (MkComplicated (PtrAndSize addr len))))

showing  :  (something : EvenMoreComplicated) -> (TooComplicatedToBeTrue something) -> Void
showing _ SomethingVeryComplicatedIs impossible
