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