diff --git a/src/Agda2Lambox/Compile/Function.hs b/src/Agda2Lambox/Compile/Function.hs index 548d638..339454c 100644 --- a/src/Agda2Lambox/Compile/Function.hs +++ b/src/Agda2Lambox/Compile/Function.hs @@ -1,6 +1,6 @@ {-# LANGUAGE NamedFieldPuns, DataKinds, OverloadedStrings #-} -- | Convert Agda functions to λ□ constant declarations -module Agda2Lambox.Compile.Function +module Agda2Lambox.Compile.Function ( compileFunction ) where @@ -106,7 +106,10 @@ compileFunction (t :: Target t) defn@Defn{defType} = do builder . flip LBox.LFix k <$> forM mdefs \def@Defn{defName} -> do - body <- compileFunctionBody mnames def + body <- compileFunctionBody mnames def >>= \case + l@LBox.LLambda{} -> pure l + LBox.LBox -> pure $ LBox.LLambda LBox.Anon LBox.LBox + _ -> genericError "Fixpoint body must be Lambda." return LBox.Def { dName = qnameToName defName , dBody = body