subExpForName ::  [Name] -> Expression -> Expression -> Expression
subExpForName names subExp  = let
    subAll = everywhere (mkT $ subOneLevel names subExp)
    fixAllForalls = everywhere (mkT $ fixForall subExp )
  in (subAll . fixAllForalls)
subExpForName ::  [Name] -> Expression -> Expression -> Expression
subExpForName names subExp  = let
    subAll = everywhere (mkT $ subOneLevel names subExp)
    fixAllForalls = everywhere (mkT $ fixForall subExp )
  in (subAll . fixAllForalls)
subExpForName names subExp  = let
    subAll = everywhere (mkT $ subOneLevel names subExp)
    fixAllForalls = everywhere (mkT $ fixForall subExp )
  in (subAll . fixAllForalls)