(t/defalias Base (t/HMap :mandatory {:s String }))
(t/defalias WithN (I Base '{:n Number}))
(t/ann my-function (t/All [[x <: Base ] [ y <: x ]] [ x -> y ])
(t/defalias Base (t/HMap :mandatory {:s String }))
(t/defalias Child1 (I Base '{n; Number}))
(t/defalias Child2 (I Base '{s2; String}))
...
(t/defalis ChildN ...
Base -> U (Child1 Child2 .... ChildN)