{-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Abstractions.Force where import Funcons.EDSL import Funcons.Types library = libFromList [ ("force", StrictFuncon stepForce) ] force_ = applyFuncon "force" stepForce [Thunk f] = compstep (stepTo f) stepForce vs = sortErr (force_ (fvalues vs)) "cannot force a non-thunk"