It was a contrived example, I don't know any use to program
verification off the top of my head. However it's meaning, that I gave
in English, should be intuitively clear.

(HasTwo T) should be true, where T is a type, if and only if T has at
least two elements.
For example, (HasTwo bool) is true. (HasTwo nat) is true. (HasTwo
unit) is false. (HasTwo T), where T is an abstract type, is unknown.

I repeat that it's no big deal if your system can't express this predicate.

On Sun, Jun 14, 2015 at 1:24 AM, Keean Schupke <ke...@fry-it.com> wrote:
>
> What are you trying to do with HasTwo? Can you give me an example of its
> use?
>
> On 13 Jun 2015 10:43 pm, "Matt Oliveri" <atma...@gmail.com> wrote:
>>
>> Is this supposed to be HasTwo? I don't see how it can be right. You
>> are using type classes for predicates, correct? And HasTwo is a
>> predicate. But has_two is not a type class.
>>
>> Informally, the ingredient you seem to be leaving out is an
>> existential quantifier.
>>
>> On Sat, Jun 13, 2015 at 7:25 AM, Keean Schupke <ke...@fry-it.com> wrote:
>> > has_two :: dif a b => (a, b)
>> > has_two x y = (x, y)
>> >
>> > On 13 Jun 2015 12:14 pm, "Matt Oliveri" <atma...@gmail.com> wrote:
>> >> Although I'm still curious whether HasTwo can be defined as a type
>> >> class...
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to