joeyh at
For example, 2 lines of comments:
-- | Changes the target of a property. -- -- This can only tighten the target list to contain fewer targets.
4 lines of type information:
target
:: (combined ~ Intersect old new, CheckCombineTargets old new ~ CanCombineTargets)
=> Targeting new
-> Property (WithTypes old)
-> Property (WithTypes combined)
1 line of trivial implementation:
target new (Property old a) = Property sing a