Skip to content

List order makes types different #3

@ppiotrow

Description

@ppiotrow

The same values in HList (Nominator or Denominator) makes different types if they are present in different order(eg. Kilogram :: Meter is not Meter :: Kilogram)

object Foo {
  import UnitSupport._
  type Momentum = Units[Kilogram :: Meter :: HNil, Second :: HNil]
  object Momentum extends ComplexUnit[Kilogram :: Meter :: HNil, Second :: HNil]

  type MomentumAlias = Units[Meter :: Kilogram :: HNil, Second :: HNil]
  object MomentumAlias extends ComplexUnit[Meter :: Kilogram :: HNil, Second :: HNil]

  val momentum: MomentumAlias = 1.as(Momentum) //will not compile
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions