mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-22 11:13:36 +03:00
4f10bfcfd2
This is referred to in the documentation, so should be there
26 lines
682 B
Idris
26 lines
682 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 = record { 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 = record { students = p :: students c } c
|