fix logic #-}