Skip to content

Panic with Arrow Kinds in Parameterized Modules #1834

Open
@j-christensen1

Description

@j-christensen1

I was trying to generalize the behavior of something like this:

module NotParameterized where

  type Arrow n = n + 1

  f: {n} () => [n] -> [Arrow n]
  f x = [True] # x

by leaving Arrow and f parameters.

module Parameterized where

    parameter
        type Arrow: # -> #

        f: {n} () => [n] -> [Arrow n]

This panics, however:

version 3.3.0 (285c30d)
https://cryptol.net  :? for help

Loading module Cryptol
Loading interface module Parameterized__parameter
cryptol: You have encountered a bug in Cryptol's implementation.
*** Please create an issue at https://github.com/GaloisInc/cryptol/issues

%< --------------------------------------------------- 
  Revision:  285c30d32e38ba50476260f7d5b4fac6afd16471
  Branch:    release-3.3.0 (uncommited files present)
  Location:  Kind.checkTUser.checkModuleParam
  Message:   Unexpected parameters
CallStack (from HasCallStack):
  panic, called at src/Cryptol/Utils/Panic.hs:21:9 in cryptol-3.3.0-inplace:Cryptol.Utils.Panic
  panic, called at src/Cryptol/TypeCheck/Kind.hs:394:10 in cryptol-3.3.0-inplace:Cryptol.TypeCheck.Kind
%< --------------------------------------------------- 

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething not working correctlytypecheckerIssues related to type-checking Cryptol code.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions