Data.UnitsOfMeasure
template haskellを用いて単位となる型を定義する
code:hs
{-# LANGUAGE DataKinds #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TypeOperators #-} import Data.UnitsOfMeasure
import Data.UnitsOfMeasure.Convert
-- 単位の定義
-- 速度の量を定義
-- 時間の量を定義
time :: Quantity Double u| s | -- 距離を計算
distance :: Quantity Double u| m | distance = convert speed * time
main :: IO ()
main = print distance -- 60kmを表示するはず