has-representation := λ(: tt Type). (: ( (let return 0_u64) (match tt ( () ( (TAnd( lt rt )) ( (set return (max( (has-representation lt) (has-representation rt) ))) )) ( (TGround( 'Constant_s _ )) (set return 1_u64) ) ( (TGround( 'Reg8_s _ )) (set return 1_u64) ) ( (TGround( 'Reg16_s _ )) (set return 1_u64) ) ( (TGround( 'Reg32_s _ )) (set return 1_u64) ) ( (TGround( 'Reg64_s _ )) (set return 1_u64) ) ( (TGround( 'StackVariable_s _ )) (set return 1_u64) ) ( _ () ) )) return ) U64);