{-# LANGUAGE NoMonomorphismRestriction #-} module DDF.FreeVector (module DDF.FreeVector, module DDF.DBI) where import DDF.DBI import qualified DDF.Meta.FreeVector as M class DBI r => FreeVector r where freeVector :: r h ((b -> d) -> M.FreeVector b d) runFreeVector :: r h (M.FreeVector b d -> (b -> d)) freeVector1 = app freeVector runFreeVector1 = app runFreeVector runFreeVector2 = app2 runFreeVector