freesDefEqn :: DefEqn BitSet -> BitSet
freesDefEqn (DefEqn pl rhs) = 
    bitwiseOrOf folded (freesPat <$> pl) .|. rhs `shiftR` pc
  where pc = sum (patBoundVarCount <$> pl) 
freesDefEqn :: DefEqn BitSet -> BitSet
freesDefEqn (DefEqn pl rhs) = 
    bitwiseOrOf folded (freesPat <$> pl) .|. rhs `shiftR` pc
  where pc = sum (patBoundVarCount <$> pl) 
freesDefEqn (DefEqn pl rhs) = 
    bitwiseOrOf folded (freesPat <$> pl) .|. rhs `shiftR` pc
  where pc = sum (patBoundVarCount <$> pl) 