import PaversFRP
import PaversUI
import UIKit
import PlaygroundSupport

let str = "Hello"
//
//let transactionConf =
//  CATransaction.classLens.animationDuration .~ 5
//  >>> CATransaction.classLens.value(forKey: "myName") .~ "Keith"


//let view = UIView()
//let c = NSLayoutConstraint(item: view, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 12, constant: 21)
//view.addConstraint(c)
//
//
//print(view.layoutReport)

//let hhLens = UIView.lens.contentHuggingPriorityForAxis(.horizontal).view
//let hvLens = UIView.lens.contentHuggingPriorityForAxis(.vertical).view
//let chLens = UIView.lens.contentCompressionResistancePriorityForAxis(.horizontal).view
//let cvLens = UIView.lens.contentCompressionResistancePriorityForAxis(.vertical).view
//
//let hhP = view |> hhLens



let identityMatrix = CGAffineTransform.identity
//identityMatrix.translatedBy(x: 20, y: 20).rotated(by: 10).scaledBy(x: 20, y: 20)
//
//func affineTransformTranslation(x: CGFloat, y: CGFloat) -> (CGAffineTransform) -> CGAffineTransform {
//  return {
//    $0.translatedBy(x: x, y: y)
//  }
//}
//
//func affineTransformRotation(angle: CGFloat) -> (CGAffineTransform) -> CGAffineTransform {
//  return {
//    $0.rotated(by: angle)
//  }
//}
//
//func affineTransformScale(x: CGFloat, y: CGFloat) -> (CGAffineTransform) -> CGAffineTransform {
//  return {
//    $0.scaledBy(x: x, y: y)
//  }
//}
//
//let translation = affineTransformTranslation(x: 20, y: 20)
//let rotation = affineTransformRotation(angle: 20)
//let scale = affineTransformScale(x: 20, y: 20)
//
//let triple = translation >>> rotation >>> scale
//
//
//let transformed = identityMatrix |> triple

















