What does comparable mean in Elm? -


i'm having trouble understanding comparable in elm. elm seems confused am.

on repl:

> f1 = (<) <function> : comparable -> comparable -> bool 

so f1 accepts comparables.

> "a" "a" : string > f1 "a" "b" true : bool 

so seems string comparable.

> f2 = (<) 1 <function> : comparable -> bool 

so f2 accepts comparable.

> f2 "a" infer type of values flowing through program, see conflict between these 2 types:      comparable      string 

so string is , is not comparable?
why type of f2 not number -> bool? other comparables can f2 accept?

normally when see type variable in type in elm, variable unconstrained. when supply of specific type, variable gets replaced specific type:

-- says have function: foo : -> -> -> int -- once give value actual type foo, occurences of `a` replaced type: value : float foo value : float -> float -> int 

comparable type variable built-in special meaning. meaning match against "comparable" types, int, string , few others. otherwise should behave same. think there little bug in type system, given get:

> f2 "a" infer type of values flowing through program, see conflict between these 2 types:      comparable      string 

if bug weren't there, get:

> f2 "a" infer type of values flowing through program, see conflict between these 2 types:      int      string 

edit: opened issue bug


Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -