Seidel, DanielVoigtländer, JanisFischer, StefanMaehle, ErikReischuk, Rüdiger2020-01-282020-01-282009978-3-88579-248-2https://dl.gi.de/handle/20.500.12116/31295Free theorems [Wad89] establish interesting properties of parametrically polymorphic functions, solely from their types, and serve as a nice proof tool. For pure and lazy functional programming languages, they can be used with very few preconditions. Unfortunately, in the presence of selective strictness, as provided in languages like Haskell, their original strength is reduced [JV04]. We present an approach for restrengthening them. By a refined type system which tracks the use of strict evaluation, we rule out unnecessary restrictions that otherwise emerge from the general suspicion that strict evaluation may be used at any point. Additionally, we provide an algorithm determining all refined types for a given term. The algorithm has been implemented, and a web interface to it is available.enTaming selective strictnessText/Conference Paper1617-5468