package monocle.std import monocle.Prism import monocle.function.Index import monocle.internal.{Bits, Bounded} import scalaz.std.anyVal._ object long extends LongInstances trait LongInstances { implicit val longBitIndex: Index[Long, Int, Boolean] = Bits.bitsIndex[Long] val longToInt: Prism[Long, Int] = Bounded.orderingBoundedSafeCast[Long, Int](_.toInt)(_.toLong) val longToChar: Prism[Long, Char] = Bounded.orderingBoundedSafeCast[Long, Char](_.toChar)(_.toLong) val longToByte: Prism[Long, Byte] = Bounded.orderingBoundedSafeCast[Long, Byte](_.toByte)(_.toLong) val longToBoolean: Prism[Long, Boolean] = longToByte composePrism byte.byteToBoolean }