@@ -25,6 +25,7 @@ import Data.Data
2525import Data.Graph
2626import Data.Generics
2727import Data.List (nub, intersect)
28+import Data.Maybe (mapMaybe)
2829import Control.Applicative ((<$>), (<*>), pure)
2930
3031import Language.PureScript.Declarations
@@ -89,6 +90,10 @@ usedProperNames :: (Data d) => ModuleName -> d -> [ProperName]
8990usedProperNames moduleName = nub . everything (++) (mkQ [] usedNames)
9091 where
9192 usedNames :: Type -> [ProperName]
93+ usedNames (ConstrainedType constraints _) = flip mapMaybe constraints $ \qual ->
94+ case qual of
95+ (Qualified (Just moduleName') name, _) | moduleName == moduleName' -> Just name
96+ _ -> Nothing
9297 usedNames (TypeConstructor (Qualified (Just moduleName') name)) | moduleName == moduleName' = [name]
9398 usedNames _ = []
9499