module A where
	{
	class C a where
		{
		f :: (?p :: String) => a;
		};

	instance C String where
		{
		f = ?p;
		};
	
	g :: (?p :: String) => String;
	g = ?p;
	}
