joeyh

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