คำตอบสั้น ๆ คือ "เพื่อตรวจสอบคุณสมบัติเพิ่มเติมของรหัสที่มีอยู่" คำตอบอีกต่อไปนี้
ฉันไม่แน่ใจว่า "นัย" กับ "ชัดเจน" เป็นคำศัพท์ที่ดี ความแตกต่างนี้บางครั้งเรียกว่า subtyping "โครงสร้าง" กับ "เล็กน้อย" จากนั้นยังมีความแตกต่างที่สองในการตีความที่เป็นไปได้ของการพิมพ์ย่อยโครงสร้าง (อธิบายสั้น ๆ ) โปรดทราบว่าการตีความ subtyping ทั้งสามนั้นเป็น orthogonal ดังนั้นจึงไม่สมเหตุสมผลที่จะเปรียบเทียบมันกับแต่ละอื่น ๆ แทนที่จะเข้าใจการใช้ของแต่ละคน
ความแตกต่างในการปฏิบัติงานหลักในการตีความความสัมพันธ์ของประเภทย่อยของโครงสร้าง A <: B คือไม่ว่าจะมีการข่มขู่จริงด้วยเนื้อหาการคำนวณ (รันไทม์ / คอมไพล์ไทม์) หรือไม่หรือสามารถเห็นได้ด้วยการบังคับตัวตน ถ้าในอดีตคุณสมบัติทางทฤษฎีที่สำคัญที่ต้องเก็บไว้คือ "การเชื่อมโยงกัน" เช่นถ้ามีหลายวิธีที่จะแสดงว่า A เป็นชนิดย่อย substructural ของ B, coercions ประกอบแต่ละคนจะต้องมีเนื้อหาการคำนวณเดียวกัน
ดูเหมือนว่าลิงก์ที่คุณให้จะมีการตีความที่สองเกี่ยวกับประเภทย่อยของโครงสร้างซึ่ง A <: B สามารถเห็นได้จากการข่มขู่ตัวตน บางครั้งสิ่งนี้เรียกว่า "การตีความชุดย่อย" ของการพิมพ์ย่อยการรับมุมมองที่ไร้เดียงสาว่าประเภทแสดงถึงชุดของค่าและดังนั้น A <: B ในกรณีที่ค่าทุกประเภทของ A เป็นค่าของประเภท B ด้วยเช่นกัน บางครั้งเรียกว่า "การปรับแต่งการพิมพ์" และกระดาษที่ดีในการอ่านสำหรับแรงจูงใจเดิมเป็นอิสระและ Pfenning ของประเภทการปรับแต่งสำหรับ ML สำหรับการจุติใหม่ ๆ ใน F # คุณสามารถอ่าน Bengston et al, ประเภทการปรับแต่งสำหรับการปรับใช้ที่ปลอดภัย. แนวคิดพื้นฐานคือการใช้ภาษาการเขียนโปรแกรมที่มีอยู่แล้วซึ่งอาจ (หรืออาจจะไม่) มีประเภทอยู่แล้ว แต่ในประเภทที่ไม่รับประกันว่ามาก (เช่นความปลอดภัยของหน่วยความจำเท่านั้น) และพิจารณาชั้นที่สองของประเภทย่อยเลือกโปรแกรมด้วย คุณสมบัติเพิ่มเติมที่แม่นยำยิ่งขึ้น
(ตอนนี้ฉันจะยืนยันว่าทฤษฎีทางคณิตศาสตร์ที่อยู่เบื้องหลังการตีความ subtyping นี้ยังไม่เข้าใจเท่าที่ควรและอาจเป็นเพราะการใช้งานของมันไม่ได้รับการยอมรับอย่างกว้างขวางเท่าที่ควรจะเป็นปัญหาหนึ่งคือ "ชุด ของค่า "การตีความประเภทไร้เดียงสาเกินไปและบางครั้งมันก็ถูกทอดทิ้งแทนที่จะขัดเกลาสำหรับเหตุผลอื่นที่การตีความ subtyping นี้สมควรได้รับความสนใจทางคณิตศาสตร์มากขึ้นอ่านคำแนะนำเกี่ยวกับSubspacesของ Paul Taylor ใน Abstract Stone Duality )