TY - CPAPER
AU - Jan Christiansen
AU - Daniel Seidel
AB - In this paper we show how to efficiently check whether a polymorphic function is minimally strict. A function is minimally strict if it is the minimal element of a specific less-strict ordering. We prove that we can check whether two polymorphic functions are related by the less-strict ordering by either checking it a) for an arbitrary monomorphic instance of the functions or b) for all shapes of the functionsâ€™ argument type. A shape is a value of a monomorphic instance of a polymorphic data type where each polymorphic component is replaced by an element that identifies its position in the data structure. In contrast to recent publications that characterize polymorphic functions by monomorphic instances we consider non-termination and selective strictness, i.e., a language closer to Haskell.
BT - Proceedings of the 13th International ACM SIGPLAN Symposium on Principles and Practices of Declarative Programming - PPDP 11
DO - 10.1145/2003476.2003487
N2 - In this paper we show how to efficiently check whether a polymorphic function is minimally strict. A function is minimally strict if it is the minimal element of a specific less-strict ordering. We prove that we can check whether two polymorphic functions are related by the less-strict ordering by either checking it a) for an arbitrary monomorphic instance of the functions or b) for all shapes of the functionsâ€™ argument type. A shape is a value of a monomorphic instance of a polymorphic data type where each polymorphic component is replaced by an element that identifies its position in the data structure. In contrast to recent publications that characterize polymorphic functions by monomorphic instances we consider non-termination and selective strictness, i.e., a language closer to Haskell.
PB - ACM Press
PY - 2011
SN - 978-1-4503-0776-5
EP - 53
T2 - Proceedings of the 13th International ACM SIGPLAN Symposium on Principles and Practices of Declarative Programming - PPDP 11
TI - Minimally Strict Polymorphic Functions
ER -