Указание инвариантов для конструкторов значений

Рассмотрим следующее

data Predicate = Pred Name Arity Arguments

type Name      = String
type Arity     = Int
type Arguments = [Entity]
type Entity    = String

Это позволило бы создать

Pred "divides" 2 ["1", "2"]
Pred "between" 3 ["2", "1", "3"]

, но также "незаконное"

Pred "divides" 2 ["1"]
Pred "between" 3 ["2", "3"]

"Illegal", потому что арность не соответствует длина списка аргументов.

Если не использовать такую ​​функцию

makePred :: Name -> Arity -> Arguments -> Maybe Predicate
makePred n a args | a == length args = Just (Pred n a args)
                  | otherwise = Nothing

и экспортировать makePred только из модуля Predicate, есть ли способ s можно указать Facebook использовать определенное изображение при публикации страницы, добавив метатег. Но мне было интересно, возможно ли обратное: сказать facebook НЕ использовать определенное изображение в качестве эскиза при совместном использовании страницы.

Я задаю этот вопрос, потому что, когда я делюсь ссылкой с моего сайта, он всегда показывает какое-то изображение, которое я использую сначала в нижнем колонтитуле (как эскиз по умолчанию), что плохо :) поэтому я хочу, чтобы Facebook игнорировал это конкретное изображение при публикации.

Заранее спасибо!

5
задан Wouter DB 26 January 2011 в 22:03
поделиться