arbitraryPairInAreaRelatedBy ::
    (ArbitraryOrderedTuple t) =>
    Area t -> 
    PartialOrdering -> 
    Maybe (Gen (t,t))
arbitraryPairInAreaRelatedBy area rel =
    case arbitraryTupleInAreaRelatedBy area [1,2] [((1,2),[rel])] of
        Nothing -> Nothing
        Just gen -> Just $
            do
            [e1,e2] <- gen 
            return (e1,e2)
arbitraryPairInAreaRelatedBy ::
    (ArbitraryOrderedTuple t) =>
    Area t -> 
    PartialOrdering -> 
    Maybe (Gen (t,t))
arbitraryPairInAreaRelatedBy area rel =
    case arbitraryTupleInAreaRelatedBy area [1,2] [((1,2),[rel])] of
        Nothing -> Nothing
        Just gen -> Just $
            do
            [e1,e2] <- gen 
            return (e1,e2)
arbitraryPairInAreaRelatedBy area rel =
    case arbitraryTupleInAreaRelatedBy area [1,2] [((1,2),[rel])] of
        Nothing -> Nothing
        Just gen -> Just $
            do
            [e1,e2] <- gen 
            return (e1,e2)