|- |typ| = t
———————————————————
|- |(typ,o)::p| = t
|- |empty| = empty
|- |number| = number
|- |string| = string
|- |boolean| = boolean
|- |styp1| = t1 … |- |stypn| = tn
————————————————————————————————————————————————————
|- |{x1:styp1, …, xn:stypn}| = {x1:t1, …, xn:tn}
|- |styp| = t
———————————————————
|- |[styp]| = [t]