supermarket

object supermarket
class Object
trait Matchable
class Any

Type members

Types

opaque type Shopping[ItemsInBasket]
opaque type Supermarket

Value members

Concrete methods

def addBeerToBasket[Items](who: String): Shopping[Items] -⚬ Shopping[Beer |*| Items]
def addToiletPaperToBasket[Items](who: String): Shopping[Items] -⚬ Shopping[ToiletPaper |*| Items]
def coinsToDrawer: One -⚬ Unlimited[-[Coin]] |*| CashDrawer
def enterAndObtainBasket(who: String): Supermarket -⚬ Shopping[One]
def makeGoodsSupply: Done -⚬ Unlimited[Beer |&| ToiletPaper] |*| Done
def makeSupermarket(capacity: Int): Done -⚬ Supermarket |*| CashDrawer
def payForBeer[Items](customer: String): Coin |*| Shopping[Beer |*| Items] -⚬ Beer |*| Shopping[Items]
def payForToiletPaper[Items](customer: String): Coin |*| Shopping[ToiletPaper |*| Items] -⚬ ToiletPaper |*| Shopping[Items]
def returnBasketAndLeave(who: String): Shopping[One] -⚬ One

Implicits

Implicits

implicit def comonoidSupermarket: Comonoid[Supermarket]