Skip to content

Extracting function-argument as type-alias is a API-breaking change #1978

Open
@ghost

Description

Quick Summary:
elm diff outputs that my function signature is a breaking the API of my package if I redefine its arguments as a type alias. I think this is related to #1895.

SSCCE

1.0 API

module packageApi exposing (foo)

foo : { bar : String } -> ()
foo = always ()

2.0 API, but could be 1.1.0?

module packageApi exposing (Bar, foo)

type alias Bar = 
    { bar : String
    }

foo : Bar -> ()
foo = always ()

But this doesn't seem breaking, and could probably be 1.1.0 with some changes to elm diff?

  • Elm: 0.19.0
  • Browser: No browser
  • Operating System: MacOS Mojave v10.14.6 (18G87)

Additional Details

I wouldn't mind taking a stab at implementing this into elm diff, but I'm not fluent in Haskell and dunno if this is trivial or complicated. Let me know if I should give it a try! ☀️

I haven't tested this with arguments that isn't records, but I assume this would be the same.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions