অনুকরণকারী প্রকারগুলি যখন, সংকলকটি প্রায়শই প্রকারের তালিকার সর্বনিম্ন উচ্চতম বাউন্ড (LUB) গণনা করতে হবে। উদাহরণস্বরূপ, ধরণ if (cond) e1 else e1
ধরনের Lub হয় e1
এবং e1
।
এই প্রকারগুলি বেশ বড় আকার ধারণ করতে পারে, উদাহরণস্বরূপ একটি রিপল চেষ্টা করুন:
:type Map(1 -> (1 to 10), 2 -> (1 to 10).toList)
scala.collection.immutable.Map[Int,scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int] with Serializable{def reverse: scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]{def reverse: scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]{def reverse: scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.Seq[Int]...
এই প্রতিশ্রুতিবদ্ধকরণগুলি এই জাতীয় অনুমানযুক্ত ধরণের গভীরতা সীমাবদ্ধ করার জন্য কিছু বিচক্ষণতার পরীক্ষা করে।
গণনা করতে দীর্ঘ সময় নেয় এমন অনুমানকৃত ধরণগুলি সনাক্ত করতে সংকলন প্রক্রিয়াটিতে প্লাগইন করার জন্য সাম্প্রতিক কিছু কাজ হয়েছে এবং যেখানে স্পষ্টত প্রকারের টীকাগুলি বুদ্ধিমান হতে পারে সেই জায়গাগুলির পরামর্শ দেয়।