Skip to content

Zero or Logic class constraint causes ambiguous inferred type #491

@auricratio

Description

@auricratio

Here's a bit of code I wrote:

// zeros entries above main diagonal, doubles entries below and leaves main alone

doubleOver : {m, n, a} (fin a) => [m][n][a] -> [m][n][a]
doubleOver xss = [[f x | f <- fs | x <- xs] | fs <- fss | xs <- xss]
 where
  t0 x = 0
  t1 x = x
  t2 x = x << 1
  fs0 = [t1] # [t0 | _ <- zero]
  fss = [fs0] # [[t2] # fs | fs <- fss]

that works fine for me with Cryptol version 2.5.0 (901a1d1), but chokes for @weaversa who has a more recent version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    UXIssues related to the user experience (e.g., improved error messages)typecheckerIssues related to type-checking Cryptol code.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions