package Ġk iger . abs yn Ċ Ċ import Ġk iger . lexer . Source Location Ċ Ċ sealed Ġclass ĠType Ref Ġ{ ĊĊĠĠĠ Ġclass ĠName ( val Ġname : ĠSymbol , Ġval Ġpos : ĠSource Location ) Ġ: ĠType Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġname . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠRecord ( val Ġfields : ĠList < Field >) Ġ: ĠType Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġfields . join ToString (", Ġ", Ġ"{ ", Ġ" }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠArray ( val Ġelement Type : ĠSymbol , Ġval Ġpos : ĠSource Location ) Ġ: ĠType Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" array Ġof Ġ$ elementType " ĊĠĠĠ Ġ} Ċ } Ċ