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