Defaulting?
上記のHypersetを試していて発見したGHCiの挙動。
*Hyperset> :t let x = singleton (Right x) in x let x = singleton (Right x) in x :: forall a. (Ord a) => Set a *Hyperset> let x = singleton (Right x) *Hyperset> :t x x :: Set Integer *Hyperset> let x :: Set Char; x = singleton (Right x) *Hyperset> :t x x :: Set Char