2. Idris
depType : Int -> Type
depType 0 = Int
depType 1 = String
depType = Bool
Dmytro Mitin Dependent types
3. Scala. ProvingGround
git clone https://github.com/siddhartha-gadgil/ProvingGround.git
cd ProvingGround
sbt mantle/test:console
val A = "A" :: Type
val a = "a" :: A
val B = "B( : U 0)" :: Type ->: Type // type family
val b = "b" :: B(A)
val C = "C( : A)" :: A ->: Type // dependent type
val c = "c" :: C(a)
Dmytro Mitin Dependent types