mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-11-28 11:05:17 +03:00
26 lines
670 B
Idris
26 lines
670 B
Idris
import Data.Vect
|
|
|
|
record Person where
|
|
constructor MkPerson
|
|
firstName, middleName, lastName : String
|
|
age : Int
|
|
|
|
record SizedClass (size : Nat) where
|
|
constructor SizedClassInfo
|
|
students : Vect size Person
|
|
className : String
|
|
|
|
record Class where
|
|
constructor ClassInfo
|
|
students : Vect n Person
|
|
className : String
|
|
|
|
addStudent : Person -> Class -> Class
|
|
addStudent p c = { students := p :: students c } c
|
|
|
|
addStudent' : Person -> SizedClass n -> SizedClass (S n)
|
|
addStudent' p c = SizedClassInfo (p :: students c) (className c)
|
|
|
|
addStudent'' : Person -> SizedClass n -> SizedClass (S n)
|
|
addStudent'' p c = { students := p :: students c } c
|