- 
                Notifications
    
You must be signed in to change notification settings  - Fork 471
 
Open
Description
i guess this is pretty opinionated of me but to me, it's hard to read:
  The implementation <project path>/src/utils.res
  does not match the interface ../ocaml/utils.cmi:
  Values do not match:
    let anyToJson: (
  'a,
  ~breakCycle: ('a, array<string>) => JSON.t=?,
  ~encodeBigInt: BigInt.t => JSON.t=?,
  ~encodeSymbol: Symbol.t => JSON.t=?,
  ~encodeFunction: {..} => JSON.t=?,
) => JSON.t
  is not included in
    let anyToJson: (
  'a,
  ~breakCycle: ('a, array<string>) => JSON.t=?,
  ~encodeBigInt: BigInt.t => JSON.t=?,
  ~encodeSymbol: Symbol.t => JSON.t=?,
  ~encodeFunction: 'a => JSON.t=?,
) => JSON.t
  <project path>/src/utils.resi:1:1-7:11:
    Expected declaration
  <project path>/src/utils.res:69:5-13:
    Actual declaration
- the formatting and indentation is all weird
 - it doesn't immediately tell me what the problem is
 - it says something about Expected declaration which makes it even more confusin
 
  The implementation <project path>/src/utils.res
  does not match its expected interface:
  Implementation:
    let anyToJson: (
      'a,
      ~breakCycle: ('a, array<string>) => JSON.t=?,
      ~encodeBigInt: BigInt.t => JSON.t=?,
      ~encodeSymbol: Symbol.t => JSON.t=?,
      ~encodeFunction: {..} => JSON.t=?,
    ) => JSON.t
  Declaration:
    let anyToJson: (
      'a,
      ~breakCycle: ('a, array<string>) => JSON.t=?,
      ~encodeBigInt: BigInt.t => JSON.t=?,
      ~encodeSymbol: Symbol.t => JSON.t=?,
      ~encodeFunction: 'a => JSON.t=?,
    ) => JSON.t
  ~encodeFunction has the following type in implementation: {..} => JSON.t=?,
  but should have this type according to interface:         'a => JSON.t=?
i don't need to see something about a .cmi file, and it's always easy enough to grep that i don't need to see line and column numbers for both implementation and declaration anyway. it's probably more common that a file is so small that reading the convoluted message costs me more time than the off-chance that the module is an absolute huge monolith to the point it'd save me time, so all in all, better to remove it.
Metadata
Metadata
Assignees
Labels
No labels