[Ur] folder

Adam Chlipala adamc at impredicative.com
Thu Nov 24 11:03:50 EST 2011


Gergely Buday wrote:
> why is it necessary to include the [folder] type in the type of higher
> order record functions when it is always inferred?
>
> Isn't it enough to see them as something happening behind the scene?
>    

The [folder] functionality is a convenience added on top of the core Ur 
language, which has no support for iteration over records.  A key 
feature of the Ur type system is that a record is indistinguishable from 
any permutation of its fields; in other words, records are inherently 
unordered.  Building in iteration would break this principle, so 
operations that need iteration must be parametrized over [folder] values 
that represent orderings.  Inference of [folder]s for concrete records 
is done in an ad-hoc way, but the core language stays elegant.



More information about the Ur mailing list