content: main = do
    let xs = [-2, -1, 0, 1, 2, 6.2831853,
              16, 57.2957795, 359, 399, 6399, 1000000]
  
    -- using `to` and `angle` with type application
    putStrLn "converting to radians"
    print $ to @Rad . angle @Rad <$> xs
    print $ to @Rad . angle @Deg <$> xs
    print $ to @Rad . angle @Grad <$> xs
    print $ to @Rad . angle @Mil <$> xs
    print $ to @Rad . angle @Slope <$> xs
  
    -- using `from` with type application
    putStrLn "\nconverting to degrees"
    print $ from @Rad @Deg . angle <$> xs
    print $ from @Deg @Deg . angle <$> xs
    print $ from @Grad @Deg . angle <$> xs
    print $ from @Mil @Deg . angle <$> xs
    print $ from @Slope @Deg . angle <$> xs
  
    -- using normalization for each unit
    putStrLn "\nconverting to grads"
    print $ to @Grad . normalize . Rad <$> xs
    print $ to @Grad . normalize . Deg <$> xs
    print $ to @Grad . normalize . Grad <$> xs
    print $ to @Grad . normalize . Mil <$> xs
    print $ to @Grad . normalize . Slope <$> xs
  
    -- using implicit type annotation
    putStrLn "\nconverting to mils"
    print $ (from :: Rad -> Mil) . angle <$> xs
    print $ (from :: Deg -> Mil) . angle <$> xs
    print $ (from :: Grad -> Mil) . angle <$> xs
    print $ (from :: Mil -> Mil) . angle <$> xs
    print $ (from :: Slope -> Mil) . angle <$> xs
  