Like so: foo : (c : Show a) => List a -> String This means that type classes can be used as indices/parameteres of data types (e.g. to ensure a dictionary is unchanging across a structure). Fixes #646