module LinearScan.Iso where


import Debug.Trace (trace, traceShow)
import qualified Prelude
import qualified Data.IntMap
import qualified Data.IntSet
import qualified Data.List
import qualified Data.Ord
import qualified Data.Functor.Identity
import qualified LinearScan.Utils


data Isomorphism a b =
   Build_Isomorphism (a -> b) (b -> a)

iso_to :: (Isomorphism a1 a2) -> a1 -> a2
iso_to isomorphism =
  case isomorphism of {
   Build_Isomorphism iso_to0 iso_from -> iso_to0}